If you want to learn to code, start with this language

Python? Java? JavaScript?

I started with JavaScript. It was the very first language I used to write an actual program. JavaScript made a lot of sense since I wanted to get into front-end development. And JS is everything in web development.

Yet, I do not recommend you start with JavaScript - even if you want to become a front-end developer.

Why? There are a few reasons.

First, you may not even know what you want - even if you think you do.

Realize that knowing the syntax and libraries of a language and being able to code is very different. You can learn to code with any language and then later learn another one (a lot faster) if you so desire.

Second, JavaScript is a bit of a mess of a language. It allows you to write stuff that can result in horrible bugs and give you the green light.

"Ease of use," they said. I'm not going into this topic - as there's a lot to talk about it - but I'll say this: "flexibility" can backfire. Sure, things may work - but you may not understand why. This will hurt you in the long term.

Out of the trio: Java, JavaScript, and Python - Java is probably the hardest to learn, while Python's syntax is by far the easiest.

Just compare the code for the "Hello World" program for Java and Python:

  • https://www.programiz.com/java-programming/hello-world
  • https://www.programiz.com/python-programming/examples/hello-world

True, it's almost effortless to get started with Python.

That is also why many recommend Python as the first language to learn. If you're a kid or want to become a data scientist, I'd also recommend Python.

However, If you're someone serious about software engineering, I recommend learning Java.

The main reason is that Java kind of forces you to understand what you're doing a lot more than JS or Python does. It doesn't allow you to write random stuff and let you get away with it.

In fact, when I first learned the basics of Java, I got so many compilation errors that I gave up on it a couple of times.

I was impatient.

Java is like that teacher who tells you to slow down, go back and make sure you understand what you're doing.

Also, with Java, you have to learn about object-oriented programming pretty much right away. With JS and Python, you can put that "annoyance" to the side and get to the fun stuff so much faster. "I can learn that OOP stuff later," you might tell yourself.

That's like a pile of dirty dishes in the sink. The more you post-pone it, the less you want to do it. You might as well do them immediately.

OOP is something you need to learn - if you're serious about software engineering - that is. It's very, very, very important!

Since you need to learn it anyway, why not start with it. You're going to make your life so much easier in the long run because you have a better understanding of the fundamentals.

Another thing is that if you already know Java, then learning something like Python will be a breeze. The other way around is most likely not going to be a breeze. So be warned.

I sincerely believe that by learning Java, you'll learn a lot more about programming itself than you'd with, e.g., Python.

And don't worry, you won't get married to a language - it's just a language. You can switch and choose later relatively easily. However, that switching can be a breeze or not so much a breeze depending on your foundational knowledge.

I plan to write more about software engineering in the future, so if that's the thing you like, stay tuned.