Ph.D., Electrical Engineering, Cornell<p>(also B.S., Physics, Case Western Reserve)<p>I had one formal course in software: Motorola 68k assembly language programming, in college. Three months of super-tedious review for the slow students ("this is a hexadecimal number") followed by perhaps one month of interesting new knowledge ("this is a stack frame"). I never tried to learn programming from a lecture course again.<p>I self-taught my own way through ArsDigita's web programming curriculum in the late 1990s... reading Greenspun's stuff was what convinced me that software was actually worth doing, and the reading list was great: SICP, <i>Learning Emacs</i>, Fogel's CVS book (hey, that's all they had in the elder days... :), <i>Internetworking with TCP/IP</i>, <i>SQL for Smarties</i>, Tufte, etc.