I am a big fan of computer programming but deep in my heart I’m a frustrated electrical engineer. I am captivated by the fundamentals of computing and hardware interaction.
Here are some things I’ve enjoyed.
Code (by Charles Petzold, published in 1999). This book winds up in all kinds of “best programming books” lists and what a revelation it is. Mostly it’s concerned with answering the question: “how would you build a computer with 19th-century technology?”. The rest is an extremely detailed look at what computer hardware actually DOES and how software interacts with it. Far more readable than it sounds.
Once you get through the basics of how computers work, Petzold machine-guns you with a quick explanation for just about every acronym, file format, compression technique and common technology in 1999. What is a bitmap? How do scanners work? What is an analog signal and how is it converted to digital? Where did MS-DOS come from? How do modems work? Just about every paragraph of the last 20 pages gave me an “ah-HA!” jolt. I haven’t put a book down and wished for more in a while but an update on Internet technologies and perhaps a chapter on mobile hardware/software are surely in the works!
Programming Throwdown podcast – Specifically the ones on Assembly and C. I’m throwing C into the low-level programming boat because I can. Not that I really understand this link (yet?), but you can write linux device drivers with it!
Technometria (podcast). These guys are doing a series on the “Internet of Things”, discussing trends in hardware programming, specifically as it connects to the web.
Personal data ecosystem (podcast). This is an interesting series on ways that personal data is being collected and used. Some of it has to do with business models, much of it has to do with privacy, which is boring.
One interesting aspect of the Internet of Things phenomenon is that it is most closely associated with home automation but home automation as a business idea died a long time ago. Nobody will pay for it. People in this field are constantly trying to distance themselves from those applications.
The real advances in the Internet of Things are typically concerned with automating processes that already are fairly well automated, squeezing the last few drops of human input (cost) from things like building cars or monitoring traffic. The revolutions in these fields happened a long time ago
So the Internet of Things is a very 20th century pursuit. A 21st century engineering challenge would be about cracking the human to human economy (ie beating Turing tests). If you can make computerized social workers you’ll change the world.