Joe Armstrong's list of 80 things
last modified: | 3 min readTribute to Joe Armstrong’s list of 80 things.
Computer Science - A Guide for the Perplexed, Joe Armstrong
A list of 80 things to do
- 2 great papers to read
- 4 old tools to learn
- 4 really bad things
- 3 great books to read
- 7 reasons why software is difficult now
- 10 reasons why software was easier back in the day
- 1 fun programming exercise
- 8 great machines from the past
- 3 performance improvements
- 5 YouTube videos to watch
- 6 things not to do
- 5 sins
- 4 great forgotten ideas
- 6 areas to research
- 2 dangers
- 4 ideas that are obvious now but strange at first
- 2 fantastic programs to try
2 great papers to read
- A Plea for Lean Software by Niklaus Wirth
- The Emperor’s old clothes, ACM Turing award lecture by Tony Hoare
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
- Algorithms + data structures = Programs by Niklaus Wirth
- The Mythical Man-month by Frederick Brooks Jr.
- How to win friends and influence people by Dale Carnagie
7 reasons why software is difficult now
- Fast machines
- Huge memory
- Hundereds 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 IDEs
- No Git
- Complete Control
- Did not communicate
- Understandable in it’s entirety
1 fun programming exercise
Meta II: A syntax-oriented compiler writing language
8 great machines from the past
- Baby SSEM
- PDP11
- Vax 11/750
- Cray 1
- IBM PC
- Raspberry Pi
- iPhone
- Nvidia Tesla P100
3 performance improvements
- Better algorithms (x6)
- Better programming language (x50)
- Better hardware (x1000 per 10 years)
5 YouTube videos to watch
- The computer revolution has not happened yet, Alan Kay
- Computers for Cynics, Ted Nelson
- Free is a lie, Aaron Balkan
- How a handful of tech companies control billions of minds every day, Tristan Harris
- Winning the war on error: solving halting problem, curing cancer, Matt Might
6 things not to do
- Backdoors
- Violate Privacy
- Put microphones in everybody’s houses
- Hijack our attention system
- Hijack our social systems
- Sell crap we don’t want and/or need
5 sins
- Crap documentation
- Crap website
- Crap dependencies
- Crap build instructions
- Group thinking
4 languages to learn
- C
- Prolog
- Erlang
- Javascript
4 great forgotten ideas
- Linda Tuple Spaces, David Gelernter and Nicholas Carriero
- Flow-based programming, John Paul Morrison
- Xanadu, Ted Nelson
- Unix Pipes
6 areas to research
- Robotics
- AI
- Programmer Productivity
- Energy Efficiency
- Precision Medicin
- Security
2 dangers
- Group thinking
- Bubble thinking
4 ideas that are obvious now but strange at first
- Indentation
- Versioning
- Hypertext accross machine boundaries
- Pipes
2 fantastic programs to try
- TiddlyWiki
- SonicPI