Programming FAQ

Posted by: Rea Maor In: Programming - Saturday, April 28th, 2007

I want to learn how to program. What language should I learn first?

Of all the Frequently Asked Questions (FAQ) in programming, this is number one. In this series of articles, we’re going to attempt to answer that question.

The first thing you have to understand is that it’s kind of the same problem as learning to speak a new language. Nobody asks “I want to become multilingual, which foreign language should I learn first?” Obviously, the answer will be “Whichever one suits your purposes.” Spanish will get you very far in Mexico, but it won’t be worth a darn in China!

Likewise, programming languages each have their strengths and flaws, and different areas where they are specialized. Try phrasing the question in terms of what you want to program the next time you ask in a forum, and you’ll get much more specific answers.

Here’s a popular second question: “I want to design games.” Yes, that’s a fun job! But be prepared for some disappointing news: Game design is one of the hardest tasks in programming! If you’re making a text editor or a web browser, you don’t have nearly as much to worry about. Game design ties nearly everything in computer control together: graphics, sound, animation, 3D, hardware compatibility, performance, cross-platform portability, controllers, and usually AI (artificial intelligence) to give you an interesting computer opponent to play against, or lacking that, Internet connectivity to allow players to compete directly. The games you buy at the store are the output of a whole studio - and game studios match movie studios for both production values and sales!

Anyway, another thing that will help you get started is thinking about your motivation to learn. Do you want to do it for a living, or are you just interested as a hobbyist? Perhaps you have a job interest, such as system admin or web developer, where programming is a very handy skill. Even if you never have the word “programmer” on your job description, having the ability to whip up a quick script to automate mundane tasks will be a life-saver in any occupation involving a computer.

Here’s probably the worst question to ask: “Which one is the easiest to learn?’” Oh, sure, there are languages that are easier to learn (here, kid, find a Commodore Vic-20 and write some BASIC!), but what’s important is what the language can do. So “easy to use” is a relative term. Is BASIC easy to use? Sure, but there are no interactive web applications written in BASIC. If you’re trying to make Doom3, the “easy” languages will be too hard to use! Better stick with C++ and some Direct X/Open GL for that 3D shoot-em-up! So, is C++ easiest to use? Not at all, because you’d have to be crazy to try to write a text-mode filter in it, when a simple language like Python could do the job in two lines! OK, maybe a little crazy…

We’re going to pick some languages at random in the coming articles in this series and examine them one at a time. We sure aren’t going to try to cover every language, and we aren’t necessarily going to focus on the most popular. We will try to focus on the home user, the IT worker, or the new student contemplating a career in software development, and for that reason we will be focusing on the Open Source languages - that is, the kind that you don’t need to pay money for a flashy Interactive Development Environment (IDE) to run. This is because if you’re just considering getting into programming, it’s probably in your best interest to try something out for free which has an active hobbyist community around it, then if you decide you’re serious, you can invest in the college courses and the professional edition.

We’re also going to try to dodge as many flames as we can! There’s a lot of strong feelings out there about which language is “the best”. We’re not advocating the languages we’re going to look at, beyond saying they’re just as good for the layman to pick up as most others. We’re not saying that you shouldn’t look at other languages.

One point that should be put up front: Probably the only mistake is sticking to one language all your life. There are just too many different tasks to do out there, and too many tools that are better suited to the tasks. So, drop the idea that there is such a thing as “bad learning”; the more languages you know, the better you will understand programming in the general sense and also the easier you will pick up a new language by relating it to what you already know.

If you’ve enjoyed this post, consider subscribing to my blog feed for free updates


Related Posts:


One Response to “Programming FAQ”

  1. webjourneyman Says:

    To what degree is asking “what programming language should I learn first” similar to asking “what typeset should I use, arial or times roman”?

    I may be totally understating the importance of programming language or I might have a point, what do you think?

Leave a Reply