DEV Community

Raji Ayinla
Raji Ayinla

Posted on

What is the easiest programming language to learn?

Since I learned OOP through Ruby I figured it was the easiest programming language to learn. Is there a consensus among developers about what the easiest programming language to learn is?

Top comments (18)

Collapse
 
derickson82 profile image
Dan Erickson

Learning a programming language is easy. Learning how to program is hard. :)

In university classes, I had to read and write a lot of pseudocode. It was good, because it helped me focus on the important stuff, without the syntax of a language getting in the way. It was bad, because it could not provide any feedback, and therefore I couldn't be certain that it was correct.

A slightly different question might be, "What programming language is best for learning how to program?"

One of the best essays on the topic that I have encountered is Bret Victors Learnable Programming. It is a long read, but fascinating. It presents "a set of design principles for an environment and language suitable for learning." He happens to target javascript and Processing as two languages that are not suitable for learning, but it would probably be difficult to find any language that meets all the criteria.

It would be an interesting exercise to try and rank programming languages and environments by the criteria he presents. But, much like pseudocode from my professors, I will leave that part as an exercise for the reader.

Collapse
 
qm3ster profile image
Mihail Malo

On one hand that's preposterous.
On the other hand, that's almost exactly what a time-travelling debugger + hot module reloading + strictly typed language + intellisense give you.
But for real projects and not bouncing balls.

Collapse
 
bluemihai profile image
Mihai Banulescu

What an amazing article. Thank you!

I joined this community exactly to have things like that brought to my attention...

Collapse
 
realrayinla profile image
Raji Ayinla

It's actually a much better question. Thanks for the article. I bookmarked it for a future read.

Collapse
 
idanarye profile image
Idan Arye

Brainfuck. Only need to learn 8 simple commands.

Collapse
 
pbouillon profile image
Pierre Bouillon

What about whitespace for readability ?

Collapse
 
idanarye profile image
Idan Arye

The topic is learnability, not readability. Brainfuck's commands are more intuitive and are therefore easier to learn.

Thread Thread
 
pbouillon profile image
Pierre Bouillon

I was just kidding ahah, but I get your point :)

Collapse
 
ed_the_coder profile image
Ed Hazledine

I would say Python is the easiest to learn (but that's as it's the first one I learnt). It's fairly readable (almost pseudocode) and doesn't have too much syntax to get your head around. But at the same time it's a language that is also used professionally and has a lot of depth to it (unlike say something like Scratch, which is easy to learn but perhaps not particularly useful if you want to continue).

But as others have said it's more important to learn how to program first, instead of a particular language. Getting those fundamentals can be done in any language.

Collapse
 
niorad profile image
Antonio Radovcic

In terms of simplicity I think Lua is one of the better ones.
That's why it's a popular choice as scripting-language (WoW, Pico8).
It also is pretty mature and isn't going through many changes (like JS).

Collapse
 
recursivefaults profile image
Ryan Latta

Throughout history, one truth exists in all of software development: There isn't consensus on anything.

Having said that I often recommend ruby for how simple it is to start with and how you have to learn very few oddities to express your ideas or concepts.

Java/.Net comes with a huge ecosystem and set of tooling that can be cumbersome. Javascript has way too many peculiarities to work around. Python is a really good candidate, but I'd argue it has a few more rules you'll have to learn before you can express your ideas.C++ is right out.

For me, when I work with new developers if they want to learn OO, I find something that will help them get into OO as effectively as I can. For many programming concepts, Ruby will fit the bill nicely without asking that you learn a lot of Ruby-specific things.

Just my opinion though, and I know a lot of people will disagree with it.

Collapse
 
eljayadobe profile image
Eljay-Adobe

I think the first step is figuring out what you want to do.

If you want to program for an iPhone, probably should learn Swift.

If you want to program for .NET, probably should learn C# or F#.

If you want to learn to program for great good, then you should Learn You a Haskell for Great Good!

If you just want to learn programming in general, I think Python is a good language for learning, as well as being a good language in general.

Collapse
 
itr13 profile image
Mikael Klages

A visual programming language, like scratch, is probably the best for people who aren't used to the more logical part of programming, as it helps visualize what happens.

Other than that I'd say a scripting language with a lot of tutorials and few pitfalls might be good, like python or lua.

Basically anything that helps abstract the programming and gives instant feedback, and preferably also can scale to help teach more complex programming later

Collapse
 
gabescarbrough profile image
gabescarbrough

My first language was Python and that's as good a choice as any. Minimal boilerplate and reads like pseudo-code. I prefer Ruby at this point but Python's tendency to be more explicit is useful for new programmers, I think.

At the end of the day, learning comes down to motivation so the 'easiest' language is whatever one has the tools they need to do what they want to do. Modern JavaScript is the best choice if they are interested in front-end development, Python for data science, etc.

Collapse
 
dmfay profile image
Dian Fay

SQL! You only have to know four commands :D

....no, there isn't.

Collapse
 
nektro profile image
Meghan (she/her)

The one you’re excited and compelled to learn. No matter the language the easiest one to learn will the one you have fun while learning it by making something in it.