I've also thought that rather than teaching beginning programmers python or javascript, a better intro would be to get close to the hardware. Maybe that's just my own stupid idea but what originally fascinated me about computers was the really low level stuff- assembly code (or even shellcode), how to build logic gates and circuits out of transistors, and how operating systems work, and how to control things at the most fundamental level. Wanting to understand these secrets was what led me into programming, not wanting to write a basic "app."
I think the best intro to programming book I've personally seen is "Hacking: The Art of Exploitation." It takes you through writing a simple C program, and helps you dig into every facet of it. Basically, you wind up writing buffer overflow exploits of increasing complexity (against your own program), which teaches you more about how a computer works at a really low level than you could get out of anything besides actually building your own hardware.
Yeah, perhaps close-to-the-hardware is good... or perhaps a very high level and very low level perspective that meets in the middle? I guess different students have different things they'd want to know.
(Score: 1) by novak on Sunday November 09 2014, @08:48PM
I've also thought that rather than teaching beginning programmers python or javascript, a better intro would be to get close to the hardware. Maybe that's just my own stupid idea but what originally fascinated me about computers was the really low level stuff- assembly code (or even shellcode), how to build logic gates and circuits out of transistors, and how operating systems work, and how to control things at the most fundamental level. Wanting to understand these secrets was what led me into programming, not wanting to write a basic "app."
I think the best intro to programming book I've personally seen is "Hacking: The Art of Exploitation." It takes you through writing a simple C program, and helps you dig into every facet of it. Basically, you wind up writing buffer overflow exploits of increasing complexity (against your own program), which teaches you more about how a computer works at a really low level than you could get out of anything besides actually building your own hardware.
novak
(Score: 2) by Pav on Tuesday November 11 2014, @11:09PM
Yeah, perhaps close-to-the-hardware is good... or perhaps a very high level and very low level perspective that meets in the middle? I guess different students have different things they'd want to know.