Fundamental concepts reading guide

This post lists out all of the posts and post ideas I have for the series on fundamental concepts. As new posts are written, I'll link them in. Posts are listed in the order I think they should be read in; as I write posts I might change up the order. Also note, I will not likely write posts in the order they should be read in. I have broken down the topics into three categories/target audiences, Beginner, Novice, and Advanced.

The idea behind the "fundamental concepts" series of posts is that it will (or at least I hope will) provide a starting point for all readers, so that any reader can start there and have enough of an understanding of key concepts that they will be able to understand any post on this site; a post on shell scripting won't make a lot of sense to someone who doesn't know what a pipeline is.

Listed below are the posts and post ideas for the series. Topics, and their order, may change at any time.



  • What is a class?
  • Object oriented, procedural, functional, and other paradigms
  • Data structures: linked lists, arrays
  • Data structures: stacks, queues
  • Data structures: trees
  • Data structures: heaps
  • Data structures: Hash map
  • Collections
  • Type checking
  • Asynchronous functions
  • Streams, pipelines
  • Function overloading
  • Modules, header files


  • Binary, bytes, bitwise operations
  • Program stack
  • GOTO statements
  • Memory, allocations
  • Pointers, references
  • Closures
  • Polymorphism
  • Operator overloading
  • Endianness
  • Caches
  • Interpreted vs compiled
  • Measuring complexity of algorithms
  • Basics of assembly
  • Operating Systems