The fundamental things you should know to land an amazing software job.

A sequence of characters, either as a literal constant or as some kind of variable, that can have its elements be mutated and length changed.

A basic linear data structure that holds a fixed number of containers to store data.

A data structure that maps keys to values using a hash function to compute an index of buckets.

A collection of important basic sorting algorithms to know.

A collection of nodes that are connected by links or pointers.

A data structure that models a hierarchical collection of nodes via links.

An abstract data type made up of connected vertices and edges that allows operations on those connections.

Both a mathematical optimization method and a computer programming method that breaks down complicated problems to sub-problems.

A container of objects that are inserted and removed according to the first-in, last-out principle.

A container of objects that are inserted and removed according to the first-in, first-out principle.

When a procedure is defined in terms of itself or of its type.

A type of binary trees that takes ordering into account.