Some computer based reading I have enjoyed over the years. For everything else I’m reading, see My GoodReads.
Cyberpunk & Hard Sci-Fi#
Cyberpunk#
- Akira - In the backdrop of post-WWIII Neo-Tokyo, two friends’ relationship becomes darker as one realizes their strong psychokinetic powers.
- Blade Runner / Do Androids Dream of Electric Sheep? - Backdrop is a detective in futuristic 2019 charged with killing replicants. Contrasts human vs artificial intelligence (AI), the central theme is the examination of humanity.
- CyberStorm - A massive cyberattack cuts New York off from power and communications in the middle of a blizzard, leaving one family to survive the collapse.
- Daemon and Freedom™ - After a legendary game designer dies, a distributed program he left behind starts dismantling and rebuilding society.
- The Ghost in the Shell - In the near future, humans are augmented with cybernetic improvements to traits such as vision, strength, and intelligence. Story follows counter-terrorism operative and cyborg, Major Motoko Kusanagi.
- MaddAddam Trilogy - A corporate dystopian future where civil society doesn’t exist, just the corps. The story follows multiple characters involved in a bio attack.
- Neuromancer - Set in the future, a washed-up computer hacker, Henry Case is hired for one last job. This brings him up against a powerful AI.
- Reamde - Ransomware spread through a massively multiplayer online game pulls the game creator’s family into a global chase with hackers, the Russian mob, and terrorists.
- Service Model - A robot valet that has apparently murdered its master sets out across a collapsing world of malfunctioning automation looking for a new purpose.
- Ubik - In a future where the dead are kept in “half-life”, the reality around a team of anti-psychic agents starts to decay after a job goes wrong.
- Upgrade - A gene-crime investigator discovers his own genome has been upgraded, the first step in a plan to upgrade all of humanity.
Hard Sci-Fi#
- Blindsight - A crew of transhuman specialists makes first contact with an alien intelligence that may not be conscious at all, questioning whether consciousness is needed for intelligence.
- Bobiverse - A software engineer wakes up as the uploaded mind of a self-replicating Von Neumann probe and starts copying himself across the galaxy.
- Children of Time - Humanity’s last survivors reach a terraformed planet where an uplift experiment has produced an evolving civilization of spiders.
- Darwin’s Radio - Retroviruses dormant in human DNA activate and trigger what may be the next step in human evolution.
- The Expanse - In a colonized solar system, a missing-person case and a destroyed ice hauler uncover an alien protomolecule, with physics and orbital mechanics kept grounded throughout the nine-book series.
- Project Hail Mary - A science teacher wakes alone on a spacecraft with no memory and has to work out, from first principles, how to save Earth from a star-dimming microbe.
- Seveneves - The Moon shatters, giving Earth two years before a debris bombardment, and humanity engineers its survival in orbit over the next five thousand years.
Computer Science#
- The Art of Computer Programming
- Synopsis: Multi volume books meant to cover all the different mathematics used to write algorithms. Volumes are separated based on math concept.
- Opinion: Don’t expect to read these back to back. Take it in parts and for topics that you are interested in. For example I found the section on hashing interesting when I was trying to understand it better.
- Introduction to Algorithms (CLRS)
- Synopsis: Canonical Algorithms teaching book.
- Opinion: I have a personal affinity for this book due to its simplicity in format and diagrams. IMO it isn’t too wordy like other books and gives me what I need to know quickly.
- Compilers: Principles, Techniques, and Tools (Dragon Book)
- Synopsis: Provides information for building a compiler and the different features involved.
- Opinion: Really loved this book in school. Gave me a good sense of compiler basics. Unfortunately it doesn’t cover more advanced topics like type reification but it shouldn’t be expected as starter book.
Computer History#
- The Cathedral & the Bazaar: Musings on Linux and Open Source by an Accidental Revolutionary - Observations by Eric S. Raymond of Linux development and Open Source projects in general while managing his own (i.e. fetchmail).
- Cult of the Dead Cow: How the Original Hacking Supergroup Might Just Save the World
- Synopsis: Hacktivism where its followers are battling electoral misinformation, making personal data safer, and battling to keep technology a force for good instead of for surveillance and oppression.
- Opinion: As a 90’s kid of the nascent personal Internet this is very nostalgic for me. Great read if you want to get a sense of the hacking ethos at the time.
- The Dream Machine: J.C.R. Licklider and the Revolution That Made Computing Personal - Outlines Licklider’s visionary dream of a “human-computer symbiosis” transforming the course of modern science and led to the development of the personal computer.
- Turing’s Cathedral: The Origins of the Digital Universe
- Synopsis: A history of computation and the creation of the computer.
- Opinion: Gave me a deep sense of the contribution that philosophy and mathematics had on computers, and a new appreciation of its history.
Software#
Design & Architecture#
- Clean Code
- Design Patterns: Elements of Reusable Object-Oriented Software (Gang of Four Book)
- Object-Oriented Analysis and Design with Applications
- Patterns of Enterprise Application Architecture
- Refactoring: Improving the Design of Existing Code
Maintenance & Management#
- Mythical Man-Month - Presents the multiple ideas of Fred Brooks with the central theme that “adding manpower to a late software project makes it later” (Brooks’s Law).
- Site Reliability Engineering - Outlines concepts used by Google SRE for managing large scale systems. These concepts have served me very well in my time at Google. If you want a good sense of devops posture, this is a must read.
Landmark Papers#
An archive of lectures by ACM Turing Award recipients can be found in Turing Lecture Award Papers.
Computation#
- Leibniz, Gottfried Wilhelm (1703). “Explanation of Binary Arithmetic”
- Babbage, Charles (1824). “Note on the Application of Machinery to the Computation of Astronomical and Mathematical Tables”
- Boole, George (1854). “The Laws of Thought: Chapter V”
- Cantor, Georg (1874). “On a Property of the Collection of All Real Algebraic Numbers”
- Hilbert, David (1900). “Mathematical Problems”
- Gödel, Kurt (1931). “On Formally Undecidable Propositions of Principia Mathematica and Related Systems I”
- Turing, A.M. (1936). “On Computable Numbers, With an Application to the Entscheidungsproblem”
- von Neumann, John (1945). “First Draft of a Report on the EDVAC”
- Shannon, Claude (1948). “A Mathematical Theory of Communication”
- McCarthy, John et al. (1955). “A Proposal for the Dartmouth Summer Research Project on Artificial Intelligence”
- Cook, Stephen (1971). “The Complexity of Theorem-Proving Procedures”
Engineering#
- Codd, E.F. (1970). “A Relational Model of Data for Large Shared Data Banks”
- Cerf, Vinton and Kahn, Robert (1974). “A Protocol for Packet Network Intercommunication”
- Backus, John (1978). “Can Programming Be Liberated From the von Neumann Style?”
- Fielding, Roy (2000). “Architectural Styles and the Design of Network-based Software Architectures” (REST Dissertation)
- Dean, Jeffrey and Ghemawat, Sanjay (2004). “MapReduce: Simplified Data Processing on Large Clusters”
- DeCandia, Giuseppe et al. (2007). “Dynamo: Amazon’s Highly Available Key-value Store”