The late, great Joe Armstrong gave a talk in 2018 titled, “Computer Science - A Guide for the Perplexed”. In it, he provides a list of lists consisting of 80 various things to do, be aware of, and general opinions. I wanted a reference to come back to so I could avoid having my browser tab full for the next week. So I went ahead and laid them all out. Many of the items are paired with further context in the talk so I encourage you to listen to it if you are interested.
- 2 Great papers to read
- 4 Old tools to learn
- Emacs (or vi)
- Bash
- Make
- Shell
- 4 Really bad things
- Lack of Privacy
- Attempts to manipulate us through social media
- Vendor Lock in
- Terms and Conditions
- 3 Great books to read
- 7 Reasons why software is difficult now
- Fast machines
- Huge Memory
- Hundreds of programming languages
- Distributed
- Huge programs
- No specifications
- Reuse
- 10 Reasons why software was easier back in the day
- Small machines
- Small memory
- Few languages
- Not distributed
- No reuse of code
- No Xcode etc.
- No GIT
- Complete control
- Did not communicate
- Understandable in it’s entirety
- 1 Fun programming exercise
- Meta II - A Syntax-Oriented Compiler Writing Language - D.V. Schorre (PDF link)
- 8 great machines from the past
- Baby SSEM
- PDP11
- Vax 11/750
- Cray 1
- IBM PC
- Raspberry PI
- iPhone/iPad
- Nvidia Tesla P100
- 3 Performance improvements
- Better algorithms (x6) (Interpreter -> Compiler)
- Better programming languages (x50) (Prolog -> C)
- Better Hardware (x1000 per 10 years)
- 5 YouTube videos to watch
- The computer revolution has not happened yet - Alan Kay (link)
- Computer for Cynics - Ted Nelson (link)
- Free is a lie - Aral Balkan (link)
- How a handful of tech companies control billions of minds every day - Tristan Harris (link)
- Matt Might - Winning the War on Error: Solving Halting Problem, Curing Cancer - Code Mesh 2017 (link)
- 6 Things not to do
- Backdoors
- Violate privacy
- Put microphones in everybody’s houses
- Hijack our attention system
- Hijack our social systems
- Sell crap that we don’t want or need
- 5 Sins
- Crap documentation
- Crap website
- Crap dependencies
- Crap build instructions
- Group think
- 4 Languages to learn
- C
- Prolog
- Erlang
- Javascript
- 4 Great forgotten ideas
- 6 Areas to research
- Robotics
- AI
- Programmer productivity
- Energy efficiency
- Precision medicine
- Security
- 2 Dangers
- Group think
- Bubble think
- 4 Ideas that are obvious now but strange at first
- Indentation
- Versioning
- Hypertext across machine boundaries
- Pipes
- 2 Fantastic programs to try