I had lunch with Peter Norvig about 18 months ago - yes, as you would imagine, he is a very cool guy - lots of fun to talk with. I just saw a link to his article "Teach Yourself to Program in 10 Years" and re-read it.

I think that his comments go way beyond programming. They remind me a lot of Joseph Campbell's advice "follow your bliss": do those things in life that you most love to do.

While I make my living designing and writing Java software, I invest a huge amount of time studying other programming languages; just in the last few years I have:
  • Studied Paul Graham's great Common Lisp books - I wrote 2 Lisp books for Springer-Verlag many years ago, but I was rusty...
  • Studied Mark Pilgrim's excellent "Dive into Python" to brush up on my Python skills
  • Learned Ruby (see my open source Ruby NLP projects on my main web site)
  • Brushed up on my Prolog skills by working through Sterling and Shapiro's "The Art of Prolog" - I used to be a Prolog guru, and I wanted to get some of my edge back
I also spend a minimum of 5 hours non-work time a week learning new Java frameworks, reading other people's Java code, articles, etc.

How do I get time for this and still have a great life? I suggest not watching TV :-)

When I talk to teenagers, I like to encourage them to follow career paths that involve doing things that they love doing - don't just try to make a lot of money.