Airo Global Software

Think Beyond Future !

This question can also be expressed as "Should I learn Java, Python, or JavaScript?"

To be completely honest, I was inspired to write this blog after reading Eric Von Reinhard's take on the same question in his article "The Best Programming Language to Learn in 2022? — Google Lead Developer Explains." In fact, I decided to write about it because I have a very different viewpoint on the subject, so please excuse the inspired title.

So, which one is it?

"No specific one," I say.

It makes no difference whether you start with C++, Java, Python, Javascript, or any other language. Learning a new language does not take long, and it should not be your top priority.

Programming languages are a means to an end (there I said it again!) and in practice, we tend to switch between them to get our work done.

I must admit that we have developed different "kinds" of programming languages in terms of how they are used over time. Some languages are used solely for markups, such as HTML or XML, while others are used solely for scriptings, such as shell scripts or bat scripts, and so on. Some are functional in nature, while others are not, and so on.

When switching from one "kind" to another, there may be some learning involved. Having a fundamental understanding of these "kinds" will significantly reduce the barrier to learning a new language.

Wait… So, what are we going to concentrate on?

The ability to address any given problem statement is, in my opinion, the most important skill to work on.

Can you create a web application if it's supposed to be one?

Can you improve the performance of your Android app?

You have a problem that a trained neural network could potentially solve — can you do it all?

Even if you've "never" done anything like it before! And whatever programming language is required to complete the task!

In the end, it'd all feel the same, so focus on learning new technologies, delving deeper into concepts that appear magical, and, at first, trying to explore many different genres until it all starts to look the same. Finally, choose something you're passionate about and dive deep!

Okay, but some specific suggestions would have been fantastic!

I have various recommendations for programmers at various stages of their careers.

If you are just starting to learn to code, I would recommend choosing a technology that interests you — it could be web, mobile (Android / iOS), game development, other app development, training ML models, building desktop apps, and so on.

The trick is to pick a technology and learn the relevant languages. If possible, learn by creating random software and having a good time doing it. If at all possible, continue to question how the various forms of magic you see are actually working.

Eventually, begin delving into more fundamental concepts abstracted by the libraries you're using, such as concurrency or multithreading, databases, graphics rendering, image processing, networking, and so on.

A programme written in any language is either directly compiled to assembly instructions or to intermediate byte-codes, which are then compiled to assembly instructions for the hardware to execute. If you accept this fact, the syntaxes of the various languages will begin to resemble one another.

A specific requirement, such as "increase every array value by one," can be handled in a variety of ways:

In Python:

y = [i + 1 for i in x]
## or
for i in range(0, len(x)):
 x[i] = x[i] + 1

In JavaScript:

for (var i = 0; i < x.length; ++i) x[i]++;
// Or
var y = x.map(val => ++val);
// Or
var y = Array.from(x, val => ++val);

In Go:

for i:= range x {
 x[i]++
}

All of these more or less compiles :

increment(int*, int):
 cmp     w1, 0
 ble     .L1
 mov     x2, x0
 add     x1, x0, w1, sxtw 2
.L3:
 ldr     w0, [x2]
 add     w0, w0, 1
 str     w0, [x2], 4
 cmp     x2, x1
 bne     .L3
.L1:
 ret

What's more interesting about this set of examples is that some of them result in array copy while others do not — and I'd recommend focusing on learning more about those types of issues and their impact on the programme.

If you are experienced and proficient in certain programming languages but feel you are missing out, I would still advise you to take a step back and consider the types of problem statements that excite you. Then consider what new means to an end you need to learn.

But it was so much fun that the time spent learning didn't seem like a chore. I'd suggest looking for such directions and starting to learn whatever it takes. If you have any doubt about the above topic. Don’t hesitate to contact us. Airo Global Software will be your digital partner.

E-mail id: [email protected]

enter image description here Author - Johnson Augustine
Chief Technical Director and Programmer
Founder: Airo Global Software Inc
LinkedIn Profile: www.linkedin.com/in/johnsontaugustine/