The Path to Mastery

After reading Zach Wentz’s Medium post on CodeSchool, I resolved to reminding myself of the concepts I’d encountered while studying for my Computer Science degree.

Wentz’s key point is that:

To truly master the art of programming, we must learn the techniques available to us, not just the tools. Data structures, algorithms, design patterns, and computer science concepts are what I’m talking about here.

Of them, some came back incredibly quickly, while others were new - and I’m glad to have refreshed my memory, because they are genuinely interesting topics.

I’ve been drafting a series of posts that cover each of the topics Wentz suggested - I hope they’re of use.

Data Structures

  • Linked Lists (22/01)
  • Binary Trees
  • Tries
  • Stacks
  • Queues
  • Vectors/ArrayLists
  • Hash Tables


  • Breadth First Search
  • Depth First Search
  • Binary Search
  • Merge Sort
  • Quick Sort
  • Tree Insert/Find


  • Bit Manipulation
  • Singleton Design Pattern
  • Object-Orientated Programming
  • Factory Design Pattern
  • Memory (Stack vs Heap)
  • Recursion
  • Big-O Time