markdown guide
 

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.

 

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.

 

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

 

What an amazing article. Thank you!

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

 

Brainfuck. Only need to learn 8 simple commands.

 
 

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

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

 

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.

 

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

 

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.

 

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.

 

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

 

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.

 

SQL! You only have to know four commands :D

....no, there isn't.

 

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.

 

I prefer java, but many people are saying python is easy to learn. I guess I just couldn't live without curly brackets. .^

 
Classic DEV Post from Jan 3

Conversation with an Author - Ali Spittel

Malik and Dan sit down to talk shop with Ali Spittel

Raji Ayinla profile image
Coder and writer. Founder of www.howtocodejs.com