Also started accessing the SICP (Structure and Interpretation of Computer Programs) lectures and learning resources here:
If you have ever wondered "how" to program, rather than apply example code snippets and hack. This might be just the ticket. It certainly has opened my eyes. The video lectures are engaging and inspiring in that they specifically address using imagination as the starting point to programming. Of course rigor follows but rigor informed by "wishful thinking." Good stuff!
The original motivation (and continuing) to study SICP is to design a NOR gate only digital simulation environment to complement the hardware. SICP addresses how to "build" a digital simulator as part of the course. I think this is just so handy dandy I can hardly stand it. Particularly since it is presented in such a comprehensible fashion.
I was able to watch several lectures during the flights and work through some of the examples on constructors and selectors. I have learned about these concepts previously in computer science courses but was so intent on "getting done and getting a grade" that I didn't appreciate their power. Talking to the senior software engineers at work (I am a hardware dude) we now have a much richer and constructive conversation about "how" software is constructed by determining data structures first and letting the functions almost write themselves.
I should go to Paris more often.
If you have a mind to go see Foucault's Pendulum at the