Your choices are not forever

Many beginning programmers put a lot of time and thought into choosing a programming language and libraries.  They usually want a choice that can be cross platform.  They want a choice that can be used for free, or cheaply.  They want a choice that is used by professionals.  They don’t want to waste time learning a programming language or library they might not use later.  It’s good to put some thought into making an informed choice, but the majority of these concerns aren’t as important as most beginners think or in many cases don’t matter at all.

Experienced professional developers learn and use many languages during their career based on the requirements of different projects.  Programming languages are a tool, and like any good workman a programmer will need a complete set of tools for different tasks.  Libraries and languages have different strengths and weaknesses, and sometimes fall in and out of common usage.

The thing most beginners miss is that once they learn the fundamental skills of programming and get some experience it becomes relatively trivial to pick up new languages or libraries as required.   For a skilled professional it can be a matter of hours to pick up the basics of a new tool.  In only a week or two they can be considered proficient and write good quality code.  If you eventually become a professional programmer the choice will likely be out of your hands — you will use the languages and libraries you are told to use.  The experience you have gained will be a valuable step towards learning it though.  Don’t sweat your initial choices — they won’t matter in the long run.