| Consider the Dewar & Schonberg article which has been causing so much stir this week: http://www.stsc.hill.af.mil/CrossTalk/2008/01/0801DewarSchon... They argue that a good theoretical grounding is indispensable for writing good code, and that it inoculates you against future unemployment by making it possible for you to learn any programming model, and even to apply multiple languages to a single system when appropriate. Merely writing applications isn't enough, or maybe it is, but it can take a decade of personal trial and error to discover rules that can be digested in a semester with a qualified teacher. I take issue with some of their tone. They seem to dismiss all of the cool things people have made using rapid development tools, only valuing the contributions of military grade correctness provers. I think there's room for both in our industry. However, if you're young, and you can go without sleep, use your energy to lay the groundwork for a lifetime of code writing. It's easier to learn theory now than to unlearn bad habit later. Finally, don't get tricked into thinking you have to choose one or the other -- you will be coding regularly if you study theory. And don't get tricked into thinking geniuses don't need to study. Those aren't geniuses pushing that theory. |
http://ocw.mit.edu/OcwWeb/web/courses/courses/index.htm#Elec... * Start with 6.001 * Make sure to hit one (or all three) of 6.042J. * I was about to claim the 6.171 (Software Engineering for Web Applications) was too out of date to bother with, being dated Fall 2003, but scanning the topic list of the course, everything listed there is still a concern in my day to day work. * Dewar and Schonberg would have you stress compilers. I would have you stress analysis of algorithms.