(Incidentally, I strongly recommend Udacity for learning programming. It’s really good.)
I’ve been programming for over a decade, but after watching Peter Norvig deal with the problems in his Udacity course I came to see the (Level Above Mine](http://lesswrong.com/lw/ua/the_level_above_mine/). Highly recommended for even experienced programmers. The interesting thing about it that things end up being simper rather than more complicated (novices imagine masters writing difficult code, but while dealing with system complexities is an important skill, the ability to make things as simple as possible is a more important one in most cases).
I’ve been programming for over a decade, but after watching Peter Norvig deal with the problems in his Udacity course I came to see the (Level Above Mine](http://lesswrong.com/lw/ua/the_level_above_mine/). Highly recommended for even experienced programmers. The interesting thing about it that things end up being simper rather than more complicated (novices imagine masters writing difficult code, but while dealing with system complexities is an important skill, the ability to make things as simple as possible is a more important one in most cases).