Which is the best programming language for beginners?

No readers like this yet.
No readers like this yet.
Coders code.

Opensource.com

What is the best language for a budding programmer to get their start with? There are probably as many opinions about which language is best for beginners as there are languages to choose from. And the options change all of the time. When we asked this question two years ago, Python came out on top as the clear winner. But is it still the best choice today?

Obviously we can't list all of the many, many choices available. So pick from the list, or let us know if we missed the one you'd recommend. 

In addition to letting us know which language you'd recommend to an aspiring software developer in your life, let us know why you recommend what you do. Is it because the language has a simple and logical syntax? Are there a large number of resources available to newcomers? Perhaps there's just an especially low barrier to entry of writing your first application? Or perhaps it's because it's language will a lot of practical users?

Whatever your reasoning, let us know in the comments below.


Do you have suggestions for how to start programming? We're looking for articles for an upcoming series, so send your article idea (along with a brief outline) to open@opensource.com. Tell us your tricks for getting started, why your community is most welcoming to new programmers, how to pick a first programming language or open source project to join, share a how-to, walk readers through a handy script you wrote, or round up your favorite online resources for new programmers.

4608 votes tallied
C/C++
17% (766 votes)
Haskell
1% (46 votes)
Java
9% (420 votes)
JavaScript
10% (447 votes)
Python
50% (2291 votes)
Rust
1% (47 votes)
Swift
2% (100 votes)
Other (Let us know in the comments)
11% (491 votes)

Results

Comments

66 Comments

I've found Julia very easy to get on with. :-D

AWK (or GAWK). Simple and elegant.

Starting languages should be interpreted, for the immediacy and simplicity they offer. You're introducing concepts like "what's a variable", not advanced techniques.

For that, probably something like bash scripting is fine, now that Microsoft has finally made it available (in addition to Mac OS X and Linux).

name="Mace"
echo "Hi $name"

That's what beginning programmers need to see. Not even printf at this stage, or you lose them in the details.

I think that when you start to learn coding you should try
https://scratch.mit.edu/about/
for little while ... and of course on Raspberry PI ;-)

D language

Gotta agree with the REXX recommendation here. It's easy to understand and easy to program.

Also, Pascal is a fine choice for the beginner. It tends to enforce proper programming discipline, which is always a good thing. You at least get some exposure to proper programming fundamentals. Can you get around that? Sure! Of course! But if you know how to do that, then you're likely not a beginner. :-)

Languages like C and C++ are fine. Got no problem with 'em. It's much like I have no problem with Ferraris and Lamborghinis. They're great cars. But I wouldn't put a *beginner* at driving on one of them. For the beginning driver, I'd use something more forgiving, like a Toyota Corolla or Honda Civic/Accord or Chevy Cruze or something like that. It's the same for programming. Can it be done with C? Sure, if you really know how to teach, or if the student tends to be rather gifted. But I find students learn more easily with these other languages.

--SYG

It is my solid belief that beginners should learn the "turing complete" concepts of programming, then move on to things like OOP. In school they started us off with Java and OOP, and as a beginner I was swimming in information that was too much to take in. Then the next semester we learned C programming. For the first time I got it. I understood. Then I went on to learn how OOP was broken down by learning C++... Now I get Java, I get Python, I get it. If I had just continued to learn Java without understanding the basics that are presented in C, I might have gotten too discouraged and went back to making pizza for a living.

Admittedly I'm a biased Apple fanboy, but I've been writing software professionally for well over 30 years in everything from assembly to C++ to Java, to Elixir, and especially because it's now open source and even runs on Linux (soon everywhere) Swift is really an excellent language, and is definitely my first choice as a teaching language.

Elixir: concurrent, fast, embedable, fault tolerant, distributed and extreeeeeeeeeeeeeeemely easy to read.

Whichever language you are likely to get the best support for. If I was to teach someone for a few years then I'd probably teach them C++. But the programming language is merely a vehicle for the concepts of computing and whichever language you learn teaches you about them and its then generally much easier to learn another language.

Gambas, Very easy to use

What about Scratch? It teaches many core concepts, and is intended to do just that one thing - teach.

Golang. Or Scratch if very young. Really need to be added to the poll.

Racket. Close to natural language. Living community. Awesome course material. Matthias attracts special characters :)

REXX then OOREXX .

REXX by far ....
Followed up with OOREXX.

Pair it up with lower level language like C/C++, using OOREXX's support for native (shared library) interfaces, and you have a very powerful/convenient environment for doing great things.