New Cohort Starts:

Donate
← Back to the skill map
Engineering Practice/Systems & practice

Algorithms & Data Structures

13 micro-topics in Engineering Practice, each with the evidence that proves you have it and the written reason behind every link. Before you start, it rests on 2 other domains. Downstream, it holds up 1 domain.

13 topics  ·  depth 0–7 of 16  ·  13 internal links  ·  6 in  ·  2 out

Before you start

Load-bearing links first. Each one says what in this domain rests on what outside it, and why.

JavaScript Core

3 links

load-bearing

Solve array and string problems rests on Manipulate arrays

Array problems require array manipulation.

load-bearing

Solve problems with hash maps and sets rests on Work with objects

Hash-based solutions use objects and maps.

load-bearing

Think recursively rests on Write and call functions

Recursion is a function calling itself.

Python Core

3 links

load-bearing

Solve array and string problems rests on Work with lists and tuples

List problems require list manipulation.

load-bearing

Solve problems with hash maps and sets rests on Work with dictionaries and sets

Hash-based solutions use dictionaries and sets.

load-bearing

Think recursively rests on Define functions

Recursion is a function calling itself.

What you will be able to do

In prerequisite order. Each idea names the artifact that closes it, the market demand that put it on the map, and what it stands on.

Depth 0  ·  procedural  ·  scaffolded  ·  M08 §8.1

Work with linked lists

Traverses and rewires pointer structures

Evidence
Reverses and detects cycles in a list
Market anchor
Data structures
Rests on
supporting

Use stacks and queues

Pointer intuition builds from sequential structures.

Depth 0  ·  conceptual  ·  unassisted  ·  M08 §8.3

Analyze time and space complexity

States Big-O for a solution and defends it

Evidence
Gives correct complexity for their own code under questioning
Market anchor
Algorithms · computer science
Rests on
supporting

Solve array and string problems

Complexity is easiest to see against code you have written.

Depth 1  ·  meta  ·  unassisted  ·  M08 §8.4

Work a problem systematically

Restates, examples, plan, code, test, optimize

Evidence
Talks through an unseen problem without freezing
Market anchor
Technical interviewing
Rests on
load-bearing

Analyze time and space complexity

Optimization is a step in the strategy.

supporting

Solve problems with hash maps and sets

Pattern recognition comes from having solved with several patterns.

Depth 2  ·  procedural  ·  unassisted  ·  M08 §8.5

Solve array and string problems

Manipulates sequences under constraints

Evidence
Solves reversal, palindrome and subarray problems unaided
Market anchor
Data structures · algorithms
Rests on
load-bearing

Manipulate arrays · JavaScript Core

Array problems require array manipulation.

load-bearing

Work with lists and tuples · Python Core

List problems require list manipulation.

Depth 2  ·  procedural  ·  unassisted  ·  M08 §8.6

Solve problems with hash maps and sets

Trades space for lookup speed

Evidence
Converts a nested-loop solution to a single pass
Market anchor
Data structures · algorithms
Rests on
load-bearing

Work with objects · JavaScript Core

Hash-based solutions use objects and maps.

load-bearing

Work with dictionaries and sets · Python Core

Hash-based solutions use dictionaries and sets.

Depth 3  ·  conceptual  ·  unassisted  ·  M08 §8.1

Use stacks and queues

Chooses the structure the traversal implies

Evidence
Solves a matching or ordering problem with the right structure
Market anchor
Data structures
Rests on
load-bearing

Solve array and string problems

Stacks and queues are disciplined sequences.

Depth 3  ·  procedural  ·  unassisted  ·  M08 §8.2

Apply the two-pointer technique

Walks a sequence from both ends or at two speeds

Evidence
Reduces a quadratic scan to linear
Market anchor
Algorithms
Rests on
load-bearing

Solve array and string problems

The technique moves indices through a sequence.

Depth 4  ·  procedural  ·  scaffolded  ·  M08 §8.2

Apply sliding window

Maintains a moving range over a sequence

Evidence
Solves a contiguous-subarray problem in one pass
Market anchor
Algorithms
Rests on
load-bearing

Apply the two-pointer technique

A window is two pointers with a maintained range.

Depth 4  ·  meta  ·  scaffolded  ·  M08 §8.10

Perform under time pressure

Solves within an interview time box

Evidence
Passes a timed three-problem assessment
Market anchor
Technical interviewing
Rests on
load-bearing

Work a problem systematically

Working under time requires a method to fall back on.

load-bearing

Apply the two-pointer technique

Timed sets assume the common patterns are available.

Depth 5  ·  conceptual  ·  unassisted  ·  M08 §8.7

Think recursively

Identifies base and recursive cases

Evidence
Writes a correct recursive solution and its base case
Market anchor
Algorithms
Rests on
load-bearing

Write and call functions · JavaScript Core

Recursion is a function calling itself.

load-bearing

Define functions · Python Core

Recursion is a function calling itself.

Depth 6  ·  procedural  ·  unassisted  ·  M08 §8.7

Traverse trees

Implements depth-first and breadth-first traversal

Evidence
Solves a path or sum problem on a tree
Market anchor
Algorithms
Rests on
load-bearing

Work with linked lists

A tree is a branching pointer structure.

load-bearing

Think recursively

Traversal is naturally recursive.

Depth 6  ·  conceptual  ·  guided  ·  M08 §8.2

Apply dynamic programming basics

Memoizes overlapping subproblems

Evidence
Converts an exponential recursion to a memoized solution
Market anchor
Algorithms
Rests on
load-bearing

Think recursively

Memoization caches recursive results.

Depth 7  ·  procedural  ·  guided  ·  M08 §8.7

Apply backtracking

Explores and abandons partial solutions

Evidence
Solves a constraint problem by search
Market anchor
Algorithms
Rests on
load-bearing

Traverse trees

Backtracking is a search over a decision tree.

What rests on this domain

Everything downstream that names an idea here as a prerequisite, grouped by where it lives.

Career

2 links

supporting

Answer behavioral questions from service rests on Perform under time pressure

Interview preparation covers both halves of the same loop.

supporting

Handle a system design interview rests on Work a problem systematically

Thinking aloud under questioning transfers between formats.

Retool. Retrain. Relaunch.

375 ideas. 17 weeks. No tuition, ever.

Vets Who Code is a veteran-run 501(c)(3). The accelerator is free, remote, and we don’t take a share of your first paycheck.

Free · Remote · 17 weeks · EIN 86-2122804