You won’t refer to all of them, but the act of writing things down helps remember.
You should ensure that if, tomorrow, your computer were to fail, you won’t lose any data.
You probably don’t need to memorize it… but if you do, you need to work at it.
- StackOverflow
- Reddit r/programming
- Mastodon
- Discord
- Advanced search
You should be able to open some site—GitHub, Reddit, Discord, Pinterest, whatever—and be exposed to new concepts, libraries, languages, algorithms, and data structures. You should check this every day.
Practice lets you learn how to learn.
- Have it open all the time
- Customize its appearance with settings
- Save and sync your settings between computers
- Use the built-in terminal
- Learn how to use the command palette
- Extend it with the extensions library
- What is a language server?
- What are snippets?
- What is a shell?
- Basic commands: cd, ls, cat, cp, rm
- Getting help with man(1) and man pages
- What’s the deal with this (1) and (2) business
- Where does my shell configuration live?
- How can I customize it?
- Why don’t we use the shell for everything?
- How do you invoke other programming languages?
- What is a compiler? What is an interpreter?
- What is an environment variable?
- Why do we need GitHub?
- What is a pull request?
- Cloning
- Committing
- Branching
- Pushing
- Logs
- Merges
- Tags
- Rebases
- The CPU
- The instruction pipeline
- What is the heap? What is the stack?
- What is a kernel?
- What is PID 1?
- What is a memory allocator?
- Why does memory need to be allocated and freed?
- Binary, assembly
- FORTRAN/COBOL
- Lisp, Pascal, PL/1
- C
- C++
- Smalltalk
- Java
- Python/Ruby
- JavaScript
- TypeScript
- Types
- Execution model
- Static/dynamic
- Garbage collected/memory-tracked/memory-unsafe
- What is a function?
- What is an argument?
- What does it mean to call a function?
- What is iteration? What is recursion?
- What is a closure?
- What is a function literal/anonymous function/lambda?
- What does it mean for something to be “typed”?
- Why do computers need data types? Isn’t everything just binary?
- What happens when types go wrong in different languages?
- What is an integer?
- What is a signed integer? What is an unsigned integer?
- What is a decimal number?
- What is a floating-point number? What is a double-precision floating point number?
- Why do we treat floating point differently from integers?
- Why are floating-point computations inexact?
- What are they?
- How do you access one character of a string? A slice of the string?
- How do you iterate over a string’s characters?
- What is Unicode?
- What is UTF-8? ASCII? What is UTF-16?
- What is the difference between a byte, a character, and a Unicode codepoint?
- What is a regular expression?
- What are they?
- How do you access and iterate over them?
- How do you modify, append, flatten, etc. them?
- What does it mean to map, filter, and reduce them?
- Linked lists
- Arrays
- Sets
- Heaps
- Queues
- What are they?
- How do you make them?
- How do they work?
- What is a hashing algorithm?
- How do trees perform differently from arrays?
- When do you use an array vs. a tree?
- Binary tree
- Search tree
- Syntax tree
- DOM tree
- Trie
- What is an algorithm?
- What is big-O notation?
- What does it mean for an algorithm to be linear? Exponential? Quadratic?
- Bubble sort
- Insertion sort
- Quicksort, heapsort, mergesort
- Radix sort
- Linear search
- Binary search
- Xerox PARC and Smalltalk
- C++ and Java
- Python, Ruby, and JavaScript
- What is a class?
- What makes a class different from a standard data structure?
- What is a method?
- What makes a method different from a function?
- What is a superclass?
- What is a prototype class (in JavaScript)?
- What is information hiding?
- What is encapsulation?
- What is an interface?
- Why do we use them?
- When should you prefer them?
- What is single inheritance?
- What is overriding?
- What is multiple inheritance?
- Why do people often avoid multiple inheritance?
- What are the problems with inheritance?
- How do we avoid them without going crazy?
- What is a trait?
- How does it work?
- What is DNS?
- What is TCP? UDP?
- What is HTTP?
- What is the client/server model?
- What is the lifecycle of a web request?
- What is HTML?
- What is CSS?
- What is Markdown?
- What is a handler?
- What are GET, POST, PUT, and DELETE?
- What is a cookie?
- What is MVC? MVVM?
- What is a 404?
- What
- What is a database?
- Why do we use them?
- History
- SQL
- Create, read, update, delete
- Transactions
- Injections