What’s the best programming language for a beginner to start with?
It seems like a simple question, and one that lots of aspiring developers ask themselves, but itâ€™s actually somewhat loaded. Are you asking because you want to get a job as a developer? Because you want to get in on the mobile app craze? Because youâ€™ve been tasked with improving your companyâ€™s web offerings, even though youâ€™re not a developer? Or just out of personal interest, for the fun of it?
I fell into the â€śfor the fun of itâ€ť category when I first learned at the age of 11, by taking a weekend class in BASIC at a local private school, on a good old TRS-80 Model III. Why BASIC? Because that was pretty much the only beginner language used at the time, if you were too cool for Logo. In high school, I learned BASIC again before moving on to Pascal. I never wrote anything terribly advanced in either language, but the experience gave me a good basic grounding in understanding how programming languages workâ€”procedural ones, anyway.
For the purposes of this discussion, Iâ€™m going to try to consider the question in a vacuum. Iâ€™ll assume the goal is â€śI want to know more about how to write code in a current language.â€ť If you need to know a language for a specific work task, then the choice is probably made for you already.
I believe a good beginning programming language should have the following characteristics:
- A relatively forgiving syntax. This isnâ€™t to say that a starter language should encourage bad habits. However, a language shouldnâ€™t require developers to master the debugger before they see their first running application.
- Immediately visible results. For a novice programmer, writing simple starter applications, immediately getting to see what you wrote translate into some kind of results on your screen is the best way to keep interest high. If you need to mess around with a bunch of different includes or libraries before you get to see something, that interest will wane.
- A lightweight or non-existent IDE. Again, for a novice programmer, the tools shouldnâ€™t get in the way of seeing the results. If you have to spend time installing or configuring an IDE, youâ€™re not coding.