Ok, lets see: I’ve read 16 of these, gave up on another and have 2 in-progress.
I think there are a few good books missing:
1) “The C Programming Language” – Kernighan and Ritche. Not only a great book about programming, especially for beginners, it also shows how clear a programming text can be, how little needs to be said, and how to spiral around the same problems with increasingly capable and complicated programs.
2) “The C++ Programming Language” – Stroustrup. By comparison to C, a much thicker book, containing K&R’s language and a whole lot more, for practical coding and for object oriented techniques.
3) “The Codebreakers” – Herman Kahn A huge book and one that ends in the era where crypto was still a government issue, mostly. But a great history, and clear proof that no cypher system, or code book, is 100% unbreakable.
4) “Seizing the Enigma” – most complete discussion of BREAKING Enigma I’ve seen so far. There are any number of good lessons here, starting with, a small, motivated, team can accomplish what is considered impossible. Never treat the opposition with contempt. Define your requirements as well as you can, do what you can to satisfy them, pay attention to what actually happens.
The actual analytic technique to break Enigma was cooked up by two Polish intelligence officers who could see how the wind was blowing in the late 1930s. When the Germans invaded, they escaped with their method and presented it to the French. The French passed it on to the British before they collapsed. The technique wouldn’t do for rapid recovery of plain text from a well operated system but it could break in by brute force, with some time, and it could also rapidly exploit any laxness in technique by the cypher users. Whereas the Germans believed that Enigma was essentially unbreakable and never seriously looked for its weaknesses, or their own in using it.
Code and cipher trade-craft was good in the Kriegsmarine, so-so in the Wehrmacht and lousy in the Luftwaffe, oddly echoing Hitler’s complaint that he had a Christian Navy, a Reactionary Army and only one National Socialist (Nazi) armed force, the Luftwaffe. The Brits mounted a frontal assault on Luftwaffe Enigma traffic and got what they needed because of bad practices by the users. With the Wehrmacht they got enough to combine with conventional intelligence, what the Soviets gave them from “Lucy”, from the Italians sending cables to each other, etc., to get the job done. The Kriegsmarine used Enigma intelligently, so that frontal assaults hit a blank wall. Fortune gave the Brits the keys, the initial rotor position for each message, occasionally, and they knew what they were missing, so they made it their business to GET the keys, through espionage, Soviet salvage of a sunken German ship, the capture of a shipboard weather station in the North Atlantic, the US Navy’s capture of U-505. Every six months when the key changed, they had to get the new one and did, EACH TIME. And tight security at the Allied end allowed the Germans, all of them, to ignore any suspicion that their cyphers and codes were less than 100% secure. They had no “Red Team”s, or even someone looking at the pattern of Allied luck in finding lone U boats, bombing the right place at the right time, etc. Convinced of their own superiority, like the Japanese, they caught “victory disease” and when the tide turned, retained a confidence that events did NOT justify. Lucky for us.
“Snow Crash,” Neal Stephenson
“Neuromancer,” William Gibson
“I, Robot,” Isaac Asimov <———- 1
“Hitchhiker’s Guide to the Galaxy,” Douglas Adams <———– 2
“Do Androids Dream of Electric Sheep?” Philip K. Dick <————– 3
“Ender’s Game,” Orson Scott Card
“The Time Machine,” H.G. Wells <————– 4
“Microserfs,” Doug Coupland <————— 5
“Flatland,” Edwin A. Abbott <——- tried, couldn’t get into it. Should try again I suppose
“1984,” George Orwell <—————- 6
“Brave New World,” Aldous Huxley <————— 7
“iCon,” Jeffrey S. Young and William L. Simon
“iWoz,” Steve Wozniak and Gina Smith
“Hard Drive: Bill Gates and the Making of the Microsoft Empire,” Jim Erickson
“The Visual Display of Quantitative Information,” Edward Tufte <——————- 8
“Don’t Make Me Think: A Common Sense Approach to Web Usability,” Steve Krug
“The Non-Designer’s Design Book,” Robin Williams
“Tog on Interface,” Bruce Tognazzini <—————– 9
“User Interface Design for Programmers,” Joel Spolsky
“Revolution in The Valley: The Insanely Great Story of How the Mac Was Made,” Andy Hertzfeld
“The Soul of a New Machine,” Tracy Kidder <——————- 10
“Where Wizards Stay Up Late,” Hafner and Lyon
“Dealers of Lightning: Xerox PARC and the Dawn of the Computer Age,” Michael A. Hiltzik
“The Cuckoo’s Egg,” Cliff Stoll <—————- 11
“The Perfect Thing: How the iPod Shuffles Commerce, Culture, and Coolness,” Steven Levy
“Longitude: The True Story of a Lone Genius Who Solved the Greatest Scientific Problem of His Time,” Dava Sobel <– 12
“The Code Book,” Simon Singh
“Cryptonomicon,” Neal Stephenson
“Crypto,” Steven Levy
“The Pragmatic Programmer: From Journeyman to Master,” Andrew Hunt, David Thomas
“Code Complete: A Practical Handbook of Software Construction,” Steve McConnell <—— working on it
“Design Patterns: Elements of Reusable Object-Oriented Software,” Erich Gamma, Richard Helm, Ralph Johnson, John M. Vlissides <— working on it
“Dreaming in Code,” Scott Rosenberg
“The Mythical Man-Month: Essays on Software Engineering,” Frederick P. Brooks <———- 13
“Beautiful Code: Leading Programmers Explain How They Think,” Andy Oram
“Cathedral and the Bazaar,” Eric S. Raymond
“The Long Tail,” Chris Anderson
“The Future of Ideas,” Lawrence Lessig
“On Intelligence,” Jeff Hawkins
“In the Beginning was the Command Line,” Neal Stephenson
“Code: Version 2.0,” Lawrence Lessig
“The Wisdom of Crowds,” James Surowiecki
“The Singularity Is Near: When Humans Transcend Biology,” Ray Kurzweil
“Gödel, Escher, Bach,” Douglas Hofstadter <——— 14
“Gut Feelings,” Gerd Gigerenzer
“A Brief History of Time,” Stephen Hawking <————- 15
“Hackers and Painters: Big Ideas from the Computer Age,” Paul Graham
“The Evolution of Useful Things,” Henry Petroski <————– 16
“Getting Things Done,” David Allen
“Upgrade Your Life: The Lifehacker Guide to Working Smarter, Faster, Better,” Gina Trapani
“Gut Feelings,” Gerd Gigerenzer