There are two (2) computer programming languages that keep coming up in current articles, forums, and posts as being the best “first programming language” for serious beginners: those who have decided they want a future programming career. These are the computer programming languages that many (not all) programmers believe best teach or convey basic computer programming principles, thus providing an excellent foundation for learning other programming languages in the future.
C and Python are certainly not the only two great computer programming languages for serious beginners; however, C and Python are the two languages that seem to appear most often and most consistently in the dozens of articles, posts, and forums on this specific subject (that is, according to the research I’ve conducted so far in August 2011).
What most schools don’t teach… Learn how to program anyway!
A fresh comment (see Comments, below), possibly from a teacher in the field, recommends VB.NET for beginners as well as Java and/or C++. He had this to say about the short list above:
C is good, but a bit outdated. Python is also fantastic and really coming into its own, but still not as hot as others. I know why you recommended those, but really for a beginner .NET and either Java/C++ are going to better suit beginners.
Just a reminder: This is not a list of the easiest or quickest computer programming languages to learn.
Ideally, a serious beginner – that is, someone who is determined to learn computer programming as a skill for employment – would choose a first programming language that:
- Excels at teaching programming fundamentals, and
- Is likely to be in demand for the foreseeable future.
Poll: Vote on the ideal programming language for the beginner
Please vote for the programming language you believe is the best for beginners – the best “first” programming language to learn. The poll appears at the end of this post. (A separate poll is still open re: the best programming languages for the future.)[ Please vote for the best first programming language ]
The TIOBE index as well as programming and other technical sites and blogs seem to indicate C and Python are languages that teach fundamentals and will probably be in demand for a number of years.
Programming 101: A common newb error
I’m probably guilty of one common newb error when it comes to deciding upon a first programming language: spending too much time and effort trying to decide on my first computer programming language! What’s really important, they say, is pressing forward and learning a computer language in order to grasp the basic principles of programming.
It’s perfectly fine if your computer programming “training wheels” do not carry you from programming fundamentals all the way through to eventual employment; successful programmers learn multiple languages, not just one language. For example, a strong, intelligent, and fruitful programmer might even learn a new programming language each year.
Bottom line: Move forward; don’t spin your wheels for too long on your first programming language decision. My ongoing and time-consuming research in this area seems to reveal that one can’t go wrong starting out in C or Python. According to others in the know, Java, C++, and VB.NET aren’t bad choices for one’s first computer programming language, either.
Overview: Determining the best programming languages to learn
I seek solid answers to two important questions:
- What is the best computer programming language to learn first?
- Which computer programming languages would most likely provide employment opportunities for the foreseeable future?
The purpose of this page is to address the first question: figuring out which is the best programming language to learn first. The second topic, the best programming languages for the next decade or so, is covered on a related page.
I am documenting this research on computer programming languages for three reasons:
- As a writer and blogger, I enjoy documenting all projects.
- I am almost certain I’m going to embark on this path and learn computer programming.
- Perhaps these summarized findings will help others who may be asking themselves similar questions.
Resources: What computer programming language should I learn first?
- What Programming Language to Learn First? (201104) Daily Blog Tips
- Best First Programming Language to Learn? (200804) Lifehacker
- What Programming Language Is Best to Learn First? (2009) – Yahoo Answers
- FAQ: What programming language should I learn first? (201103) Zen and the Art of Programming
- What’s the best programming language for a beginner? (201101) Quora
- What Is The Best Programming Language To Learn 1st? (201108) Bit51
- I Want To Learn Computer Programming, What Language Should I Learn First? (201105) Niaraland Forum
- Best Programming Language to learn first? (201105) SoaH City
Resources: C programming language
Resources: Python programming language
- Python – official site
- Python tutorial – official site
- Python – Wiki
- Python syntax and semantics – Wiki
- What programming language should I learn first? – Programming Zen (201103)
- Learn computer programming online at home – eHow
- The most important programming language today – Programming Zen (201005)
- 10 reasons why C should be your first programming language
- First programming language to be taught: C or Python – Stack Overflow
- First programming language: C, Python or something else – MacRumors forum
- Learning computer programming online – Yahoo Answers
- Computers for Beginners/Programming – WikiBooks
This list of best “first programming languages” was originally going to be part of a related post, the Best computer programming languages for the next decade; however, the best computer programming languages for beginners vs. future demand and employment are two different things.
Monday, August 22, 2011
 I only just now learned the difference between noob and newb. (Well, either that or I fell for some mis- or disinformation.) It is my understanding that, while similar, noob and newb should be distinguished as I was meaning to use the term; while neither noobs nor newbs really know what they are doing in a given technical area, newbs are serious beginners whereas noobs just don’t give a damn. In other words:
- newb = newbie
- noob, n00b = annoying idiot
Virgin application of new slang knowledge
While it’s possible the above noob/newb distinction applies to the gaming universe and not necessarily to programming, I suspect it fits across the board; after all, I’m not just some annoying n00b…
Comments about noobs and newbs are welcome; comments from n00bs are not. 🙂