Programmer Competences List


  1. Desire to learn and improve
  2. Using functions, variables, if statements, and loops – any language
  3. Basic data structures: array, linked list, hash map, set, graph, tree
  4. Basic OOP concepts: object, class, inheritance, polymorphism – any language
  5. Hashing functions (message digest)
  6. Highschool-level math + limits, derivatives, and basic calculus
  7. Git
  8. 2 x effort


  1. Desire to learn and improve
  2. Algorithms: big O notation, sorting, hash functions
  3. Data structures: vector (aka array list), red–black tree
  4. Security basics: password hashing, TLS
  5. Typecasting
  6. Networking basics: IP, masks, gateways, packets, UDP, TCP
  7. Concurrency: dirty reads, non-repeatable reads, locking, races, synchronization, communication
  8. Virtualization
  9. Containerization
  10. Date and Time concepts


  1. Desire to learn and improve
  2. Computer architecture: instructions stream, branching, registers, cache lines
  3. Cloud architecture: VMs, containers, cloud functions, serverless
  4. AI: machine learning, models, neural networks
  5. At least basic principles of UI design and UX + ARIA
  6. Garbage Collectors


Fast Inverse Square Root — A Quake III Algorithm

Specifying Effective Non-Functional Requirements

Practical International Data Management