Programming

How to choose a programming language

Usually people come to programming after a specialized university or training courses. Students have enough time to get acquainted with the profession – it is more difficult for those who decided to change career and become a developer from scratch. It is necessary to decide which technologies to study in order to quickly grow into an in-demand specialist and be satisfied with the new job.

Focus on the scope of the language
At university, immersion in programming is gradual, and during the study you can get acquainted with several languages. But often universities don’t keep up with trends and don’t teach new technologies that are actively used in development. Internships or courses from IT companies help students better understand what is happening in IT.

If you decide to change careers and start learning programming from scratch, first decide what exactly you would be interested in doing. Any programming language is just a tool to get things done. Start by choosing a direction in IT that intersects with your interests and abilities. Maybe you’ve been following a particular technology or a particular field for a long time. Maybe you’re more attracted to mobile app development than to websites, or you want to create computer games.

Programming is used in almost every field, so it’s hard to list all the options. It is possible to distinguish the main directions of development depending on the purpose of the software and the devices for which it is created. Some of them use several programming languages, and somewhere a specific set of technologies prevails.

System and firmware

To write a driver, an operating system, or work on smart home devices, you need to learn system programming. Basically it uses low-level languages that address the computer hardware almost directly. The most common ones are C++, C.

Web applications

The applications you open with your browser, from social networks to online stores, are written by web developers. Front-end developers create the user part in JavaScript, HTML and CSS. Backend-developers are responsible for the server side and implement the intended application logic. Among the most common languages for back-end – PHP, Python, C#, Ruby, Java, Go, Perl. There are programmers who know the technologies for both parts of the application – they are called full-stack developers.

Mobile applications

Mobile devices are not just smartphones and tablets, but also wearable electronics. But development is dominated by two operating systems – Android and iOS. For the first one, Objective-C and Swift are usually used, and for the second one, Java and Kotlin are used. It is also possible to develop cross-platform mobile applications that are suitable for Android and iOS. To do this, you need to learn special platforms, such as Cordova, Xamarin, and Flutter.

Desktop applications.

Microsoft Word, Excel are well known examples of desktop applications that work without the Internet resources of the operating system. Today there are more products for working in browsers and on mobile devices. But in some areas desktop applications are still relevant and in demand. As a rule, complex scientific software, tools for professional video and audio processing, many computer games are developed for desktops. The languages Swift, C#, C, C++, Python, Ruby and also JavaFX can be considered for this direction.

Assess the demand for the language
When you have decided on the scope of the language, it is important to consider its prospects in the labor market. If it’s in demand, there will be more job openings, which means the chances of getting your first job sooner. Also, the popularity of the language shows that there is an active community of developers who are interested in its development and support.

There are various rankings that evaluate the popularity of programming technologies. For example, every month the TIOBE index is updated – a list of languages that are most frequently mentioned in search queries. The top 5 usually share C, Python, Java, C++, and C#.

RedMonk’s ranking is based on data from the largest developer communities on GitHub and Stack Overflow. The August 2021 Top 5 includes JavaScript, Python, Java, PHP, and CSS.

In 2021, the Stack Overflow community released a large Developer Survey, for which they surveyed over 83,000 respondents from 181 countries. It turned out that programmers themselves like Rust the most, while COBOL is considered the most intimidating.

The study has data that the highest salaries are in programmers who write in Clojure, F#, Elixir, Erlang, Perl, Ruby, Scala, Rust, Go, LISP. It turns out that popular technologies are not the highest paid at all. The top 5 languages are used in narrow spheres and in general the demand for such programmers is lower than in web or mobile development. Most likely, it is the shortage of developers that increases the competition for them and the level of salaries.

There is not such a significant difference in pay between the popular and the highest paid languages to make a choice solely because of this criterion. As a rule, a programmer earns more with experience, and at the beginning of the career, regardless of the language salaries will be about the same.

Learn about the peculiarities of learning a language
You can master programming with any background, both technical and humanities. But for some, self-study will be enough, and some will be more suited to studying on a course with a mentor. It is worth checking out what training options are available for the chosen language.

Popular languages like Java, Python, PHP are generally similar. To learn such a programming language and become a junior developer, it will take about a year. Most courses are designed for about this period. It is possible to accelerate a little training, if a day to devote a couple of hours to programming, and move from theory to practice, start to do some projects by themselves, at least for personal purposes.

During the programmer needs not only the language itself, but also the whole ecosystem of technology. And after learning the basics, it is better to devote time to mastering frameworks, libraries, databases and other tools.

Why programmers need to know several languages
At the start of training, you can try to understand several languages to choose one. But you should not learn several languages in parallel. This will not increase the chances of finding a job. Developers are valued for relevant and applied knowledge in their stack, and a broad technical outlook comes only with experience.

Practicing programmers find it easier to learn a new language. Usually, the transition from one language to another is accompanied by a decrease in salary. This is connected with the fact that the programmer will not have experience working on commercial projects in the new stack, and will have to apply for a lower position, for example, not senior, but middle or junior developer. Such transition is possible within one company without any loss of money, when it is possible to use both technologies on the project to develop skills and gain experience.

It seems that the choice of the first programming language is too responsible step. What if you spend a year learning it and end up disappointed in your choice? In fact, whatever language you choose, the important thing is that you start learning programming. And if over time you even want to change your specialization, with experience in commercial development it will be much easier to do it.