Where Did The Digital Circuit Come From? How Does SHA256 Actually Work? What's the Algorithm Behind an RSA Key?
These topics have always been a bit of a blindspot for me so I asked my friend Scott Hanselman to help me dive in and figure this stuff out. It's been an incredible journey, tackling subjects like:
- 1Logic, Binary and Logical Circuits
We start simply, looking at Aristotle's "Laws of Thought" and then George Boole's translation of those laws into mathematics (Boolean Algebra). We then meet Claude Shannon, who took things a step further by implementing boolean logic with electrical circuits.
- 2Compression and Encoding
We'll get to know Claude Shannon, who kicked off the Information Age with his masterpiece: A Mathematical Theory of Communication. We'll see how this paper laid the foundation for data compression, error correction, and digital networks as we know them.
- 3Encryption and Cryptanalysis
Now that we can transmit information, we need to protect it. We dive into simple enciphering schemes, from Bacon's biliteral encryption all the way through to SHA-1, MD5 and beyond. We also deviate for a bit and look at how cracking software works, such as THC-Hydra and Brutus.
- 4Cryptocurrency and Blockchain
A controversial topic, but one that you should understand. I didn't know anything about Bitcoin, Blockchain etc. except for the constant snark coming from the hype-averse. Is it worth understanding? Does Blockchain have something to offer? Let's learn the details and decide for ourselves.
Why Should Programmers Care About These Topics?
Programming is much, much more than simply typing some code into an editor and hoping for the best. The applications we write produce information, which your business uses to make money to then pay you. Understanding the nature and flow of information within your application gives you a particular focus. An appreciation for how that information is created, where it goes, how it's stored, and how it will be analyzed later on. Information and data are the true value of your business, and your attention to it will make your boss/clients/colleagues very, very happy. This means you win.
A Quick Video About the Topics
I already have the first The Imposter's Handbook. Is this an update? Or new material?
This book is all new material in a completely separate, standalone book. It's still written for programmers without CS degrees (like Scott and myself), but all programmers might find something useful.