I don’t use a bookmark manager but hate losing links to resources that have helped me write better software. This list contains some of the most important ones that I like to keep handy.
- Code is a liability, what the code does is an asset
- Dumb code is smart code
- The Grug Brained Developer
- Kernighan’s Law
Debugging is twice as hard as writing the code in the first place. Therefore, if you write the code as cleverly as possible, you are, by definition, not smart enough to debug it.
- Repeat yourself, do more than one thing, and rewrite everything
- Write code that’s easy to delete, and easy to debug too.
- Use
assert()
- Use data-oriented design
- Think what data is actually needed for the program, what minimal set of transformations are required to solve the problem.
- Storing data relationally (column-oriented) is more data oriented than OOP.
- CppCon 2014: Mike Acton “Data-Oriented Design and C++”
- Andrew Kelley - Practical DOD
- Data-oriented design book
- A relational data model is useful for most problems
- Programmer as wizard, programmer as engineer
- Different extremes of handling failures robustly: The Erlang approach or the mission critical approach
- The Erlang approach: Let it Crash
- Write the happy path, plan for failure. Minimize blast radius and restart subcomponents needed.
- The Mission Critical approach: Clean-room design, test everything, simulate the heck out of it, use formal verification
- The Erlang approach: Let it Crash
- Parsing
- Performance
- I hate slow software. Modern computers feel sluggish because they don’t optimize for low latency user input and response.
- Property-based testing
- Programming sucks
- John Carmack on Inlined Code
- Handles are the better pointers
- Game feel