Reading
Some computer based reading I have enjoyed over the years.
Computer Science
- Art of 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 Algorithmns 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 philosphy and mathemetics 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” (Brook’s Law).
- Site Reliability Engineering - Outlines concepts used by Google SRE for managing large scale systems. These convcept 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 past to present awarded by the ACM can be found in Turing Lecture Award Papers.
Computation
- Leibniz, Gottfried Wilhelm (1703). “Explaination of Binary Arithmetic”
- Babbage, Charles (1824). “Note on the Application of Machinery to the Computation of Astronomical and Mathematical”
- Bool, 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”
- Neumann, János Lajos (1945). “First Draft of a Report on the EDVAC”
- Cook, Stephen (1971). “The complexity of theorem proving procedures”.
Engineering
- Codd, E.F. (1970). “A Relational Model of Data for Large Shared Data Banks”
- Backus, John. “Can Programming Be Liberated From the von Neumann Style?”
- Dynamo: Amazon’s Highly Available Key-value Store
- MapReduce: Simplified Data Processing on Large Clusters
- REST Dissertation
Cyber Punk Fiction
- 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.
- 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, Killian.
- 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.