Google Senior Engineer Reveals Best Programming Language of 2022

 Google Senior Engineer Reveals Best Programming Language of 2022

“What programming language to learn?” seems to be a question that Minhaz - a senior engineer at Google often gets.


Sometimes this question means, “Should I choose to learn Java, Python or JavaScript?”


Honestly, the author wrote this post after reading a lot of similar questions and articles on the same topic, and decided to give a very different view, a very different answer. You will feel "tricked" with the title full of "classic" above.


So, what to learn now?

My advice is: “No one language is the best!”


It doesn't matter if you start with C++, Java, Python or Javascript or any other language. Learning a new language doesn't take long, and it shouldn't be the #1 priority in learning to code either.


Programming languages ​​are your last resort on this journey. And in fact, we tend to keep switching to one language or another to get the job done rather than just nailing it to a single language.


I started my journey with C++ in high school, but spent most of my time doing Javascript in college. My job at Microsoft required me to do a lot of C#/.Net and Typescript and when I switched to Google I started working on the Android Camera App - so I started working with Java. Soon I moved into the field of computational photography of the camera and these days I use a lot of C++ (production code) and Python for prototyping.


And throughout this journey, learning a new language has never been such a big deal.


I must admit that over time we have built different “kinds” of programming languages ​​according to the way they are used. Some languages ​​are used purely for markup like HTML or XML, while others are purely for scripts like shell scripts or bat scripts, some are functional in nature, others are not. no, etc


There will be many trade-offs when switching from one “type” to another. But once you have a basic understanding of these “types,” the barrier to learning a new language becomes negligible.


Well then… What should we do?

In my opinion, the most important skill to work with is the ability to solve any problem.


If need to make a web application, can you create it?

You have an Android application, can you improve the performance?

You have a solvable problem with a trained neural network - can you continue?

Even if you've "never" done it before but you need to do it anyway (otherwise low grades, boss curses, etc.)


In the end, it's all the same, so go ahead and focus on learning new technologies, try to dig deeper into complex concepts, in the beginning try to explore more genres until they all start to look the same. Finally, pick something you really like and dive in!


Ok, but if there are some specific suggestions that would be great!

For those readers who have been busy reading this far, I feel I should make more direct recommendations. (I'm not apologizing!)


I have different recommendations for programmers in different stages of their career.


If you are just learning to code

I recommend you choose a technology type that you want to do - it can be web, be mobile (Android/iOS), develop games, develop other apps, train ML models, build desktop applications, etc.


But the key is to adopt a technology and learn the relevant languages. If you can, you should learn by building random software and spending the right amount of time on it. And don't forget to keep digging deeper into how technology is working and changing every day.


Finally, start learning the more basic concepts that are being abstracted away by the libraries you are using like concurrency or multithreading, databases, graphics rendering, image processing, networking etc.


You see, a program written in any language or compiled directly into assembly instructions or into intermediate bytecodes is ultimately compiled into assembly instructions for the hardware to execute. . If you accept this fact, the syntaxes across languages ​​will start to look very similar.


A certain requirement, such as "Increase every value of an array by 1" can be handled in different syntaxes:


With Python:


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


 x[i] = x[i] + 1


Print JavaScript:


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


With Go:


for i:= range x {


 x[i]++


}


All of these more or less compile to something like:


increment(int*, int):


 cmp w1, 0


 ble .L1


 mov x2, x0


 add x

Comments

Popular posts from this blog

5 Minutes Learn About Client - Server Model