It’s been one of my New Year resolutions to learn a new programming language this year. I am having a bit of trouble with the huge choice of programming languages available. So where do I start? I seem to have reduced the choice down to three languages, Python, PHP (with HTML and CSS) and Go.
To learn this new language, I intend to follow some disciplinary steps.
1) Decide on a language
Deciding a programming language you want to study can be tough with the huge list of choices available. Choice should depend on your purpose of learning a new language. Do you want to study just for fun or for better job prospects or for a project?
2) Get a good book
While this step seems easy, it is not considering the huge list of books available and having to review each book and decide which is going to be the best for you. One way is to just start with a book and get a feel for it. If it doesn’t seem to match with your expectations, just drop it and pick another one. Some books have been issued the status of must reads for the language (by programmers). Those books are never to be missed.
3) Dedicating time to learn
Deciding to learn a programming language is not enough. Time has to be spent on learning and practising this new language. Every day allocate some time even if a few minutes to learning the new language.
4) Master the basics
As with any other tools used in the world, we first master the basics of the programming language. While it is tempting to just skim through the basics, especially with a background in programming, it is always better to be a little patient and understand the purpose and basics first so when we learn the advanced techniques, we do not have to keep referring to them too often.
5) Master the advanced topics
Perhaps all of the topics in a programming language cannot be mastered, but when we learn a language, depending on our purpose and our liking we gravitate to a set of advanced topics which we find interesting. Mastering these topics will be our arrival at mastering the programming language.
6) Create a useful project
Using the newly learned programming language, create a useful project. Or participate in an already existing open source project using that langugage. This will consolidate your learning of the language and qualify you as having knowledge about the programming language.
You can find some more tips on How to Master a Programming Language here.
So which is the best programming language to learn this year? Would you go for the GO programming language by Google?
Related Posts:
Tags: programming


You list some good points.
I don’t know if “Create a useful project” should be last.
The best way to learn the basics and the not so basic topics of a language is by starting something.
A small project that makes you think how to do this or that. Sometimes I learn better that way, when I really need to know function X or Y of the language. That’s why sites like project Euler are so good for beginners (maybe not project Euler because it’s mostly math, but sites similar to Euler)
[Reply]
Kevin Reply:
January 25th, 2010 at 1:50 pm
Thanks for you comment Antonio.
You are right that the best way to learn a language is to start something. These points are not in any order
I wrote these points considering the way many people approach learning a new language. Starting something can sometimes be quite overwhelming especially in languages like C (though Python is a good language to learn by doing). I am not that much of a math guy but I do try CodeChef and they are pretty good to sharpen your programming skills. You can find some sites like Euler in my post http://kevinrodrigues.com/blog/2010/01/23/todays-read-10-puzzle-websites-to-sharpen-your-programming-skills/
[Reply]
That’s a great goal for the new year, good luck with your new language. I hope you choose Python– I think it’s a great language in many respects, also very practical for a variety of uses. Let us know how you do!
Happy Coding,
Rick
[Reply]
Kevin Reply:
January 25th, 2010 at 1:54 pm
Yes Rick, I have chosen Python
Because of it’s simplicity and ability to snap up stuff quite quickly.
[Reply]
never mind Python, learn Groovy – especially if you are a Java developer
[Reply]
Kevin Reply:
January 25th, 2010 at 3:45 pm
I am not a Java developer, ew. But I’ll keep that in my list of programming languages to learn
[Reply]
It’s really interesting article. Thanks for good information.
[Reply]
for me i learned Python using Dive Into Python 3, and now i want to learn more about Django, and i want to end-up doing a project. the project will be a resume creator for software developers mainly.
[Reply]
Kevin Reply:
January 26th, 2010 at 2:31 am
I am learning using Dive into Python 3 as well. That is a good idea for a project. I might start out with a stock indices fetcher or a twitter client. Just for the fun.
[Reply]