Which language should you learn first? ʇdıɹɔsɐʌɐɾ: ɹǝʍsuɐ

The programming learning path of most people starts from the Google search round at night.

Usually "Learn _______"

But how do we decide which language to look for?

“I often hear jokes about Java in Silicom Valley. Maybe I should learn this. ”

Or:

"Haskell. This is very hot recently. Haskell. ”

Or:

"The Go mouse is so cute, it's too much."

And then most of us, probably have also searched for questions:

"What programming language should I learn before?"

Not all questions are searched so much that there must be an answer infographic. This is one of them:

Deciding on the first programming language is always an interesting experience – like the personality test questions "Which character in the Game of Throne?"

Before you jump quickly into Ruby because when she was interested in playing with Play-Doh, I wanted to remind you: the risk of giving up is very high.

You will spend hundreds of hours learning to be "roughly" proficient with your first programming language.

So you need to consider the following factors:

  • Language is easy to learn or not
  • You can build any type of project in the learning process (and share with friends to maintain motivation)

Every year new languages ​​appear, and accompanying them, are new academic materials, and new web comics. Really. New month ago:

1-she624vf-hrpgldwd8hkkw

When you have to choose the first programming language, you will never be short of choices. To narrow it down, here are the most popular searches on Google related to programming in the last 12 years:

Java is there at that time.

Python gradually grew and became the most popular choice.

Before talking about these programming languages, I need to make it clear:

  • I am not saying that this language (objectively) is better than another language.
  • I agree that previous programmers should learn more than one language.
  • In my opinion, first they need to learn a good language first. And – as you probably guessed from the upside down text on the title – you should learn JavaScript first.

First of all, find out why this language is so widely taught.

Computer Science 101

1-eu4cwrzxut3ybnfzet-q8q

Many universities have been teaching programming under the name of computer science, this subject itself is a branch of mathematics, or somewhat attached to electrical engineers.

Of course, you've probably heard:

“Teaching computer science cannot turn anyone into a programming expert; It's like learning about brushes and colors that don't turn that person into a super artist. ”- Eric S. Raymond

By 2016, many universities still teach programming as if they were computer science, and computer science is no different from mathematics.

Because of that, many beginner programming courses often focus on low-level abstract languages ​​like C, or computationally important languages ​​like MATLAB.

And the deans often maintain a difficult path, targeting programming languages ​​at the top of the rankings such as TIOBE Index , or the rankings below from IEEE :

Most of these rankings will see very little change though … 10 years have passed.

But the change is still happening, in or out of academia.

In 2014, Python occupied the throne of Java to become the most popular teaching language in the leading Computer Science programs in the United States.

And another change obviously … sooner or later … will also happen.

Because if you look at the languages ​​actually used by workers, this is a completely different picture:

JavaScript was by far the most popular language, with 49,397 programmers responding to the 2016 Stack Overflow survey used.

More than half of the programmers use JavaScript. This is the key language in web front-end programming and is increasingly engaged in back-end programming. And it is expanding rapidly into game programming and IoT.

Recruitment articles also mention JavaScript more frequently than any other language (except Java):

Data from the world's largest job posting aggregator, Indeed.com

Undoubtedly, JavaScript is the fastest way to your first programming job. But is JavaScript the right language for you? Is it worth your first programming language? Let's explore the factors I've mentioned before.

Join the Machine Learning event - Technology of the Future!
Join the Machine Learning event – Technology of the Future!

Good people # 1: The job market

If you are learning programming just because of curiosity, just skip this section. But if you – like most people who learn programming – want to use this skill to find a job, this is a good consideration.

As I said, Java is mentioned in more jobs than any other programming language. And JavaScript followed closely.

But there is this truth about JavaScript: it has been around for 20 years, but only recently has it become a serious tool for big companies like Netflix, Walmark, and Paypal.

Because of that, many companies are recruiting JavaScript programmers, but the number of supply is much lower than the demand.

Data from Indeed.com

Up to 2.7 programmers scramble for a position Java is recruiting. The situation of competition with PHP and iOS is no better than how much.

But for each position JavaScript is recruiting, there are only 0.6 programmers.

Factor # 2: Long-term direction

On average, the JavaScript project receives up to twice the number of pull requests of Java, Python, or Ruby projects. Moreover, JavaScript is growing faster than any other language

Source: The GitHub's 2016 State of the Octoverse

JavaScript ecosystems also benefit from huge financial and human capital investments from companies such as Google, Microsoft, Facebook, and Netflix.

For example, TypeScript (JavaScript's superset) has more than 100 open source contributors, most of whom are Microsoft and Google employees paid for completing this product.

This type of multi-company link is difficult to find in Java. Oracle (Java owner after acquiring from Sun Microsystems) often sues companies trying to expand on it.

Factor # 3: Difficult to learn

This is a parody of an XKCD comic.
This is a parody of an XKCD comic.

Most developers agree that high-level scripting languages ​​are easier to learn. JavaScript belongs to this type of language, along with Python and Ruby.

Although universities still teach languages ​​like Java and C ++ as the first language, they are more difficult to learn.

Factor # 4: Projects you can build with Java

This is the great strength of JavaScript. JavaScript runs on any device with a browser. You can build almost anything with JavaScript and share them everywhere.

With the advent of JavaScript everywhere, Jeff Atwood, co-founder of Stack Overflow offers an interesting rule:

"Any application that can be written in JavaScript is written in JavaScript in the end."

And over time, Atwood's Law is more and more authenticated.

Java has also made a promise to run everywhere. You probably still remember Java Applets . Oracle has officially killed this new tool this year.

Python is also suffering from similar problems:

“How did I bring the new game to my friend? Moreover, I put this game on my phone and show it to kids but can't install it? ”- James Hague in Retiring Python as a Teaching Language

In contrast, here are some applications built on the browser in CodePen. You can click and run right on your browser:

1970s style Simon game

Conway's Game of Life

Star Wars-themed Wikipedia Search

A roguelike dungeon crawler game

Learn for a good language in advance. Then learn the second one.

If you keep jumping from one language to another, you won't go far .

To get past the basics, you need to learn a language well first. Then the second language will become much easier.

From here, you can branch, develop into a more comprehensive programmer through learning multiple languages:

  • C is the language that helps you understand how computers work, especially memory management, and is very useful in high-performance calculations.
  • C ++ is suitable for game programming
  • Python is perfect for science and statistics
  • Java is important if you want to work at large technology companies.

But learn JavaScript first.

Okay, now I will try to try the unbelievable thing — I will try and predict the objection under the comment section.

Objection # 1: But isn't JavaScript running really slow?

JavaScript, with most practical purposes, is a high-performance language.

JavaScript (Node.js) is a bit faster than Python, Ruby, and PHP.

The language is also nearly as fast as super high performance languages ​​like C ++, Java, and Go.

The following is the result of a recent multi-language benchmark table:

Objection # 2: But JavaScript is not typed static

Like Python and Ruby, dynamic typed JavaScript, it's convenient. But you may have many problems. Here I intend to use exampleArray as an array. I set its value, then check the length — that is, the number of elements it contains.

But then I casually assign it to a string.

Errors like these happen all the time in dynamic typed languages. Most programmers just stop checking, and write test correspondingly.

If you are required to have static typing in your first programming language, I still recommend learning JavaScript first. You can then quickly use TypeScript later.

"Typescript is not very easy, but if you already know JavaScript, it's different." – Alex Ewerlöf on TypeScript

Objection # 3: But I really want to create a mobile application

I still suggest learning JavaScript first.

  1. JavaScript supports many tools to help develop native mobile apps , like Angular Cordova and React Native .
  2. To create a focal point for your mobile application, you will need the appropriate backend, which requires a suitable web programming framework, such as Node.js + Express.js.

Moreover, it should be noted

First of all, although many people use such mobile applications, nearly half of the programming work requires web programming. Compared to the insignificant 8% figure of the number of jobs related to mobile application programming.

Career data for 49,525 developers, based on 2016 Stack Overflow survey.

The period of the vision "To do anything must also be applied" long time ago. Instead, most mobile users do n't want to download new applications .

Of course— They still use the application. Most are Facebook, Google Maps, and many other convenient applications. Therefore, the demand for app programming is only concentrated in some big employers.

ITZone via medium

Share the news now