April 8, 2008
How to learn a programming language
LEARN JAVA IN 24 HOURS!!! Sadly, it won’t be this fast but there are some ways you can speed up the process of learning a programming language.
Just like with anything, learning something new is best done when it’s not crammed, you interact, and you basically dwelve yourself into it. Without further ado, here are 3 ways you can promote the speed and depth of your learning. For my post, I will be using Python as an example as it was my most recent learning.
Read. Read. Read
Do you like reading books? Well that’s great, because for the next while you’re going to be reading about list comprehensions, variable casting, and data control and not about wizards and dragons. Reading online documentation is great, but sometime it just doesn’t do it. I LOVE getting a well written book on a language/system and getting into it. Reading “Python in a Nutshell” was a great experience because the book was well written and I was able to learn a lot. Plus I now have a bookmarked and tagged (old school sticky note tagging!) book for reference. It is of course important, to find the right book or it may become a mind numbing experience.
Get Involved.
Python has an IRC channel, Google news group, and much more. In these, you and others are free to ask and answer questions. One of the best ways I’ve found to learn was to sit in these channels and simply watch as the questions and answers come in. Sometimes I will have my own, and sometimes as I become more informed in the language I too can answer my own questions. It is a great feeling to go from being a totally novice to answering a question for someone, and I find it to be one of my greatest motivators to keep pushing and learning.
irc.freenode.net is a great IRC network filled with various channels for open source platforms and projects. Google Groups is also a great reference and has groups for nearly everything. You are also very likely to find Googlers and the guys who are part of the core on their posting
Just code already!
Reading is nice and all, but it makes me feel like a university student sitting in a lecture. Every time you have gained new knowledge of something, apply it! Write a small app, or extend your current one with your new findings. A good example of this is I learned Python list comprehensions and I was able to modify a lot of my code to make it more readable and smaller.
There is no point in learning a new language and then not updating your application(s) with your new findings, it may seem like more work, to have to re-write things now and then, but it allows you to look back at your code, make it cleaner, faster, find oddities that you didn’t notice before, and ship a better product in the end.
And that about wraps it up. Most of it this is common knowledge, but sometimes it needs to be drilled into your head. Hopefully it has helped!
Hi! I'm Bart, Currently enjoying life in Waterloo, Ontario. I love Programming, Cooking, Music, Science ... and pretty much everything interests me.