Stuff formally trained programmers know

Submitted by Robert MacLean on Thu, 05/12/2016 - 08:23

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 biggest pain for me in 20 years of programming is not everyone speaks the same language. I am not referring to C# or JavaScript, rather terminology that we use. Is an Array always an Array? How do we talk about measuring performance?

Data Structures

The way we structure data, the advantages and disadvantages of each.


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)