Sam WinslowSam Winslow

Resources for self-taught developers

ideas

Books I recommend

Stuff you should self-study

  • Von Neumann architecture
  • Latency numbers every programmer should know
  • OSI network layers
    • Application: HTTP, SSL/TLS, DNS, FTP
    • Presentation
    • Session
    • Transport: TCP, UDP
    • Network: IP
    • Link: MAC
    • Physical
  • Math and CS theory
    • Boolean algebra, set theory
    • Binary numbers, bitwise operations, base-2, base-10, base-n number systems
    • Church-Turing thesis
    • Lossy vs. lossless compression
  • A general sense of the orders of magnitude and SI units.
  • Cryptography
    • What is a hash? What is a hash collision?
    • How are passwords stored? What is a brute force attack? What is a rainbow table attack? What is a salted hash?
    • Symmetric vs. asymmetric encryption
  • Operating system principles
    • Bootloaders, BIOS, UEFI
    • What is a kernel? What is a shell?
    • What are processes and threads?
  • Creating applications
    • Programs vs. markup
    • Interpreted vs. compiled languages
    • Synchronous and asynchronous programming
    • APIs as a broad concept
    • HTTP and REST
      • Methods, headers, Content-Type
      • Securing API endpoints
        • Tokens vs. API keys
        • CORS, CSRF/XSRF