Learn programming using wire, light bulbs, a battery, and telegraph relay
Of course, computers aren't programmed with Morse code. But, as author Charles Petzold will show you, it's the concepts that count. Morse code was like a first iteration of the modern day programming languages we see today. And telegraphs were like the first computers. Yet he doesn't just start there. He goes deeper... drilling down into the underlying concepts of both.
Without spilling the beans on everything included in the book (which by the way, I'm not even halfway through), in this post I'm going to share with you just a sliver of the concepts covered.
How electricity works
The book will explain to you how electricity works. And how the flow of current can be controlled. Such as by merely touching two ends of a wire together (closed loop) or un-touching them (open loop).
Using a series of fun examples, Petzold will guide you along to the advent of the telegraph and how electricity - along with the two most basic electrical components: a switch and a relay - were used to create it. Like many, I did not know how a telegraph worked. But it's surprisingly simple, and Petzold's teaching style makes for an engaging read.
When circuits meet code
Once you know electricity, you should know some Math. Petzold will show you how math can be used to represent any language, including Morse code. Interestingly, Morse code is actually more complex than binary code - the language of computers and foundation of all programming languages.
What makes binary code more useful is that it operates in the same way as the flow of electricity. It's either off or on. 0 or 1.
Eventually, you'll actually "see" binary code in a physical implementation of an electric circuit. And you'll understand how these circuits can be made even more complex - using nothing but binary (and some boolean logic). And with this, you'll understand the very basics of how computers work.
For me, there were a number of clear "ahah" moments I experienced while reading. And I think that's a pretty good indicator of a great book. Furthermore, Petzold's teaching style is quite fun - and a refreshing change of pace from the typical linear curve of increasing complexity most education literature has. Rest assured, things do get more complex as you read deeper into book - yet each chapter has a unique way of introducing a new concepts.
CODE - The Hidden Language of Computer Hardware and Software
By the way, if after reading the book, you get the itch to design your own electronics - I might recommend you check out Upverter. They're a YC startup with a web based product made for that very purpose.