Best computer programming languages for serious beginners

learning computer programming language - whiteboard notes

[ What's the best programming language for serious beginners? Cast your vote! ]

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
  • Python

[ Gates, Zuckerberg: Kids, learn to code - Gates: More kids should learn to program - CNN Tech (Feb 2013) ]

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:

  1. Excels at teaching programming fundamentals, and
  2. 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[1] 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:

  1. What is the best computer programming language to learn first?
  2. 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:

  1. As a writer and blogger, I enjoy documenting all projects.
  2. I am almost certain I’m going to embark on this path and learn computer programming.
  3. Perhaps these summarized findings will help others who may be asking themselves similar questions.

Resources: What computer programming language should I learn first?

Resources: C programming language

Resources: Python programming language

Resources: Advice on learning a computer programming language

Resources: Other

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.

Updated
Monday, August 22, 2011

Notes

Al Gore computing location of Manbearpig in South Park episode

[1] 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

(Anyone?)

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. :)


Which programming language would be best for a newbie to learn as a first language - not the easiest, but one that would best teach programming concepts and fundamentals?

View Results

Loading ... Loading ...

Jump back to the top

19 thoughts on “Best computer programming languages for serious beginners

  1. Martyr2

    Funny you say C and Python because neither of those are the ones we often recommend for beginners. I for one always recommend at least one .NET language (so you can get yourself in the door of the .NET suite and of those I recommend VB then to quickly lateral into C#) and one which is not like Java or C++.

    I recommend VB.NET to beginners because it has the OOP principles, it is very English like in syntax and it produces some great GUI stuff right out of the box which helps show results and encourages users to continue learning more.

    I then recommend Java/C++ because both are OOP again, both are widely seen in the industry, they can do anything from dlls to mobile to desktops and there are the ones most often seen in schools due to their popularity.

    C is good, but a bit out dated. 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.

    :)

  2. Stephen Post author

    Thank you for the tips; I’m rather tired of reading article after article and endless forum debating on the subject of “the best first programming language,” so I wholeheartedly welcome actual one-on-one advice. I truly appreciate your taking the time to post a comment, and I will carefully consider your suggestions.

    The arguments for Python and C as solid “first programming languages” for those preparing to learn computer programming basics are spelled out in some of the resources listed, but these two languages certainly aren’t exclusive candidates. I’ve seen your recommendations echoed by a number of professionals.

    I believe C is sometimes recommended over C++ for serious beginners only because, in their opinion (as this beginner understands it), C represents programming at a lower level than C++ and thus gives the student a broader foundation. (Not quite as as common as the “best first language” debates but certainly plentiful are the similar “higher- vs. lower-level language” conversations.)

    Personally, I have not been very interested in choosing C as my own first language, but only because I had it in my mind that C – in addition to being so old – is a very low-level programming language ; however, per what I’ve read, C is closer to the middle than to the low-level end, so I may have been wrong all along.

    A good friend of mine is a successful (and extremely busy) Java programmer in the Atlanta area, and part of me would like to follow in his footsteps.

    An hour ago, I ran across a very interesting list at DZone (fresh links for developers): 67 Open Source Replacements for Really Expensive Applications from which I learned about a few open source development tools whose quality may rival that of their proprietary $$ cousins.

    Thanks again for reading,
    Stephen

  3. Pingback: Answering comment re: Poll for top future programming languages |

  4. sandeep

    Hello Stephen,
    I’m really confused by the above discussions. I started learning ‘C’ recently as a beginner, and I was curious to know is that the right step I have taken to start my programming career with ‘C’. I have searched all over the web re: the best first computer programming language to learn. Will you give me the right pick for me?
    Thank you.

  5. Stephen Post author

    Is this comment spam or some other junk? Probably so, but I decided to reply to it on the off chance that it’s real. (I also edited it heavily to correct errors in grammar and punctuation; I left out the ‘sics’ because they’d be too numerous.) My response:

    No one other than you should choose the best first programming language for you. These posts about computer programming languages resulted from my own research I’ve conducted to answer this question for myself. I’m hoping that others might benefit from the research I’ve done and summarized here and elsewhere. (There may be some related posts on my small new business blog, entitled Nashville SEO and Web Content.)

    Good luck in your quest to become a computer programmer!

  6. Luke Kyriacoo

    Really, somewhere to start out is basic batch, get some simple functions going, make a basic 20 questions game, then move onto what I think is a good place to start, Lua, light compact, but powerful, and Lua can give you knowledge to bridge over to C/C++. But don’t through yourself in at the deep end, like I did, and try to start off with ASM…. OOH, it brings back happy and sad memories, when I first learnt ASM for super mario world rom hacking; the pain of a custom block failing, the joy of your first sprite blooming into life.

  7. DarrenS

    Many thanks for such an interesting post. I’ve spent a couple years – yes really – reading up on what programming languages to learn. I’m a 40+ year-old chap who picked the wrong career path many years ago: Retail, for over twenty years. I did the whole management thing and have since stepped down to grunt level, which I enjoy more due to less stress, etc.

    But I want a change – and having chatted with other programmers, I decided programming is the next career choice for me. I’ve suffered from analysis paralysis due to all the great (and not-so-great) advice on the net, and from those who I thought new it all.

    But after looking at your post, I have decided on a language to learn. Yes, it is one of the two you’ve mentioned – C – and although it isn’t supposed to be easy, I’ve looked at some code, had a rough idea what it was all about, and decided that’s probably where I should concentrate my learning for now. What’s next? No idea. But I’ll learn what I can, write some useful stuff, and just show the world what I can do. I mean, if others can get noticed and offered jobs just by showing off, then I’m sure I can use my salesman skills to sell my skills as well.

    Wish me luck. :-)

  8. Doddle

    I hadn’t done any programming except basic HTML and batch until I came to Uni to do mech eng. We did a bit of MATLAB first year… fancy starting with that!?!

    We have done Python now as well. I really enjoyed it, Python is kinda friendly compared to other languages I have subsequently come across. You don’t need to get a over-featured IDE to use it, it comes with the minimalistic IDLE. Modular, powerful, a blend of functional and OO. Not too fast though… not that that matters to much to those starting out. I would recommend it as a first language to anyone. Sure, it does a lot of things behind the scenes for you, but you don’t want a massively steep learning curve.

  9. Nick Warner

    What about Common Lisp? I’ve heard that it’s not just for AI and academic endeavors. It spans several paradigms of software development including functional, imperative, object-oriented programming and even scripting. It has many libraries of code for communicating with other languages and protocols. You can write web servers, operating systems (Lisp machines), and development tools. One of the oldest and widely used IDEs (especially among comand-line heroes), Emacs, was written using a Lisp variant. Conrad Barski (Land of Lisp, 2011) says that when people take the time to learn Lisp you not only see software development in a new light, but you also begin to use Lisp as your native tongue. It becomes the basis for comparison when you look at code in other languages.

    I first became interested in programming 25 years ago using BASIC on a Tandy 1000 when I was ten years old. I’ve since read books and taken classes (BS-IT) on many other languages, but nothing comes close to the ease of use and immediate gratification of writing in BASIC way back then. Could Lisp help me rekindle that genuine interest again?

  10. Fred Dilgo

    If there is a choice for Rebol, I would have voted for it as the best programming language to learn first. C is good but I prefer python over it.

  11. grelf

    I am really amazed that JavaScript is not available for your poll. It is readily available on every platform because all browsers use it. So beginners only need a text editor and a browser. They can even write applications that their friends can see on their smart phones. JavaScript has other advantages too: if introduced the right way it gets people started on the object-oriented way of thinking without the complexity of Java (which they should move on to later) or C++ (which is so fraught with complexities that it should be forgotten now).

  12. Tudor Davies

    I learnt on php, I found it quite easy to follow and I also like how easy it was to make simple functions and tools. One of my first tools split a string and randomised to display one entry. I found it quite simple to make that with no prior understanding of php.

    About me: I’m a blogger for http://www.itrentals.com

  13. George Kolovos

    Hello. Being a “computer programming ‘wannabe’ newbie”, so far I am trying to orientate myself and your writing helped a great deal. Still, among other issues I have, one is fundamental for me: I am a Mac user. Whatever my choice of “language” will be, can I rest assured that it will be ok with the OS I am using or are there restrictions? Thx a million and cheers.

  14. Stephen Post author

    It is my pleasure to have helped on some small level. It is amazing that so many readers have found this post of mine; I never would have expected it to be the number one content on my brain-dump of a blog!

    Luckily, the better programming languages these days — certainly including Java and Python, the top two contenders for newbies — are largely platform independent.

    Happy trails!

  15. Goran

    I say First arhitecture from any processor or microcontroller(micro computer) is writen in any doc. is assembly
    after you know arhitecture in assembly learn C after is oo language to combine memory and proces(processor)all code .. what you mean ? and what you do with memory rom ,ram,alu… not only tipping code !!! and so on…

Add your two cents here