An article which lists the major areas of computer programming that are important for any programmer.
I find useful for any subject to revisit the fundamentals. This often allow us to find simpler and more elegant solutions, by leveraging a smaller set of basic tools in more interesting ways.
Below is a compilation of programming concepts that is useful in day-to-day programming. I hope to write something for each of them.
- Priority Queues (Heaps)
- Hash Maps
- Dynamically-sized Arrays
- Depth-First Search (DFS)
- Breadth-First Search (BFS)
- Quick sort
- Binary Search
- String Search (KMP)
- Observer/Listener/PubSub Pattern
- Command Pattern
- Dependency Injection
- Unit Testing (with Dependency Injection and Mocking)