A short article appeared on 37 Signals, How Do I Learn to Program
that I responded to:
For myself, it started with something like passion, but more like a love of problem solving. My father worked with military computers in the 50's, and tried teaching me binary numbers in the late 60's - i was around 7 or 8 - so i was accustomed to prods to work in computers. It wasn't until the early 80's that I took a BASIC course. I loved it, but still floundered around for a decade, first in college learning COBOL and PL/I, later doing desktop/server support, and project management, all the time using some kind of scripting for work. In early 2000, I needed to script text transformation and decided to use VBA. Well VBA, later involved SQL, PHP, and now .NET. And it still involves a love of problem-solving, finding the perfect answer.
As for learning new languages:
Sometimes passion will get you over the hump, and get you working long days, with no reward and little food. I wouldn't count on it though.
Keep your goals small, especially if you are a novice. Avoid overreaching.
Convert code you know into one you want to learn. Transitioning from VBA to VB.NET, I would drop a VBA class into VB.NET and then fix it so it would compile. Just try and keep your transition in small steps.
Pick a task, and work toward it. Plan and build small website, but focus on good design principles and best practices.
- Certainly read, but maybe read and understand, without doing anything thing at first until you have a better grasp. Reading and implementing has its benefits as well, since you might be more likely to retain the information.
- If you feel you must, just do it. Expect to make mistakes, if for no other reason to handle the inevitable feelings of incompetence.