📜 ⬆️ ⬇️

What is the best programming language to learn in 2015?

For several years now I have been following statistics in programming languages. There are a large number of data sources, including code repositories, discussion of questions and answers, job offers, mentions in social media, visits to training pages, watching training videos, developer surveys, and others. The data was published at different periods of time, none of them considered absolutely accurate, there are flaws everywhere, but they can be useful for identifying trends in the industry.

Githut


GitHut is a relatively new resource that analyzes 2.2 million active repositories on GitHub. Top ten:
  1. Javascript
  2. Java
  3. Python
  4. CSS
  5. Php
  6. Ruby
  7. C ++
  8. C
  9. Shell
  10. C #

source: GitHut

Redmonk


The RedMonk language rating for 2015 determines popularity using activity analysis on both GitHub and StackOverflow. Here are the results:
  1. Javascript
  2. Java
  3. Php
  4. Python
  5. C #
  6. C ++
  7. Ruby
  8. CSS
  9. C
  10. Objective c

Data taken from RedMonk

Jobs tractor


With the help of language trends Jobs Tractor analyzes many thousands of Twitter posts that relate to work. The latest data for September 2014:
  1. Java
  2. Objective c
  3. Php
  4. SQL
  5. Java (Android)
  6. C #
  7. Javascript
  8. Python
  9. Ruby
  10. C ++

')

TIOBE Index


The TIOBE Index is a language ranking by the number of qualified engineers, courses and rankings in search engines.
  1. C
  2. Java
  3. C ++
  4. Objective c
  5. C #
  6. Javascript
  7. Php
  8. Python
  9. VisualBasic.NET
  10. Visual basic


Absolutely unscientific meta-research ranking


If we combine all these four studies, we come to the following result:
  1. Java (all)
  2. Javascript
  3. Php
  4. Python
  5. C / C ++
  6. C #
  7. Objective c
  8. Ruby
  9. Visual basic

I combined C and C ++ and ignored CSS with shell scripting. CSS is not a programming language per se, although it is close to preprocessors. Shell scripts are useful regardless of the technology you master, but you will not find a job where only this language would be in demand.

Observations and cautions


GitHut and RedMonk are essentially the same, but this is to be expected, since they use GitHub as their primary source of data. Both analyze public rather than private repositories, which may cause the results to deviate towards open source technologies.

TIOBE is affected by search engine resources. Perhaps for this reason, C heads the list — the language was created in 1969 and many historical documents are available. New languages, such as Ruby and Go, inevitably appear at the bottom of the list.

Educational resources are likely to influence the results. For example, Python is mainly used to study programming in schools and colleges. Thousands of students ask questions and complete projects, but judging by my experience, the Python job offers are rarely compared to similar ones in PHP or Ruby, despite the fact that it is higher in several lists. Java has a similar advantage because it has a variety of applications: in education, web, desktop and mobile development.

The demand for developers of native applications remains high, especially in reviews related to work. RedMonk reports that Swift in less than six months, bypassing 46 positions, moved to 22nd. However, application development is a young discipline. In the field of desktop and web programming, there are much more vacancies and they are easier to fill, perhaps because of the job offers are removed faster.

In conclusion, the use of language is strongly influenced.

1. A separate website or application requires a huge amount of technology, and perhaps it puts them above desktop languages.
2. You can quickly sketch out code samples with a few lines of CSS, JavaScript, PHP, Ruby, Python, or a shell script. But this does not necessarily apply to languages ​​such as C, C #, Objective-C, and Java, which are generally used among fewer, larger projects.

Trends


Comparing today's lists of RedMonk and Jobs Tractor with the old ones for 2014, we find that surprisingly, too little has changed. Several languages ​​moved higher or lower, but new ones did not appear, just as there are no sharp jumps in the top ten.

What the review won't tell you


There is no "best" language.

Few developers have the luxury (or boredom?) Of working with the same technology.

If you are considering client-side JavaScript, you will not go far without a proper understanding of HTML, CSS, image formats, tools and browser issues. Server-side developers on NodeJS, PHP, Ruby, .NET and Java normally require an understanding of web servers, HTTP, SQL / NoSQL databases, as well as data exchange formats such as XML and JSON. Even those who write a simple desktop application or a native mobile device application on one platform need knowledge and experience regarding web connections, data storage, IDE and development tools.

The more technology you know, the more knowledge you need to have.

Good, but what should I learn?


Reviews are entertaining, but do not rely on them when choosing a career. If you have not learned anything else from this article, then remember:
those who choose the language, focusing on data from studies / surveys or on monetary prospects, will lose
There is one secret about how to become an excellent developer:
just create something
First, find the problem — especially one that interests you or from which you can benefit. Perhaps it will be the creation of a business card site, putting your finances in order, automating your home or sending random tweets to your subscribers. Make sure the goals are achievable; even the best developers would shudder at the thought of creating a Call of Duty or WordPress clone.

Now select the appropriate set of technologies. There may be several options, but do not try to impose a language to solve. You can write a native mobile application in Perl, but resources are rare and this will be an exercise that will lead to frustration.

Then create your solution. Google, code samples, and developers who write in the same language will help, but don't expect them to answer all the questions. Your project is unique (or should be unique) and there is only one person who can teach you how to program - that’s you.

Finally, do not hope to immediately become a code ninja. Some people have natural abilities, but they also spend an enormous amount of time honing their skills and are constantly learning new techniques and technologies. Even the youngest roles imply development experience of several years. If you decide on what you want to work all the time, then there are a large number of online resources, such as our own Learnable , that can help you with this.

To summarize: only a few people will succeed in learning a language for the sake of learning as such - this is a tedious academic exercise. It is better to learn a language that will help you solve a real problem. Do not worry if this technology is outdated or not in the top ten - all languages ​​are conceptually similar and your skills can be transferred.

Do not worry about your choice: just create something .

Source: https://habr.com/ru/post/260797/


All Articles