This is going to be a series of posts where I intend to dive into the stuff which "formally trained" programmers seem to know.
What do I mean by "formally trained"?
The easy way to think of it is programmers who have a university education, or similar, where the focus on theory matters a lot. It also feels to me that the old & wise men of programming all just know this and the upcoming generation doesn't seem to have this knowledge. I don't put myself in that group of formally trained, and even after 20 years, I don't know these things well enough to hold a conversation about them.
What topics will I be covering? (these will be linked to the posts go up)
The way we structure data, the advantages and disadvantages of each.
- Linked List
- Binary Tree
- Binary Search Tree
- Red/Black Tree
- Stack & Queue (coming soon)
- Heap (coming soon)
- Hash Table (coming soon)
- Trie (coming soon)
- Graph (directed or undirected) (coming soon)
- Indexes (forward & inverted) (coming soon)
Algorithms are ways of working with data and data structures in a consistent way. The advantage of knowing them is two-fold; First, it helps communication since we can all use the same names and secondly it expands our thinking about programming.
- Bubble Sort (coming soon)
- Merge Sort (coming soon)
- Quick Sort (coming soon)
- Radix Sort (coming soon)
- Depth First Search (coming soon)
- Breadth First Search (coming soon)
- Shunting Yard (coming soon)
- Dijkstra (coming soon)