I want to become a programmer

Step 1: define typification

Typing is the segmentation of variables into several subtypes: int, flow, etc. Typing directly affects how programs will be written and how they will function. It is of several types:

  • Explicit/implicit.
  • Weak/strong.
  • Static/dynamic.

If your chosen language is considered weakly typed, it is more flexible. But at the same time, the transformation of variables is implicit in it. Conversely, languages ​​with stronger typing are not as flexible, but conversions to them are more obvious.

Step 2: we study the “building material” of the sites

HTML and CSS are the backbone of web development in principle. Ask any programmer what exactly he started his journey to IT with, and it will almost with a hundred percent guarantee be HTML + CSS:

HTML is the document markup language.
CSS — cascading style sheets.
With the help of HTML and CSS, you can create the content of web pages and programs, change the design, add various effects, and so on. You can understand the logic and master the simplest options for using HTML and CSS in just a couple of days. And in general, this is a relatively simple direction to study.

Writing a program using HTML and CSS will not work, but without this basis, learning programming languages ​​will be much more difficult. Therefore, the front-end of training now includes learning JavaScript.

Step 3: JavaScript

JavaScript is called one of the fastest growing programming languages. It is easier to learn than Python or PHP, quite universal and allows you to write programs for literally all existing platforms.

JavaScript was originally developed as a programming language for creating interactive web pages. But its functionality expanded very quickly. And today mobile, desktop and even server applications are also written on JS.

JS is not a panacea. And in addition to obvious advantages, it also has some disadvantages:

— low reliability due to weak typification;

— not suitable for mobile application development.

The shortcomings and weaknesses of JS can be compensated with TypeScript, Flow and other tools, but this is more of a half measure. Therefore, JavaScript, as a rule, does not develop complex programs that require maximum reliability. Conventionally speaking, JavaScript can be used to create a music player, but not an online banking application.

Step 4. PHP

PHP is the language in which Facebook and Wikipedia are written. It has been a popular, universal and reliable language for more than 10 years, in which a huge number of web designers have been written. However, many advantages still hide disadvantages:

  • weak typification;
  • inconveniently organized library;
  • used mostly only in web development;
  • poor implementation of multithreading.

PHP is also relatively easy to learn, especially if you are already familiar with JavaScript. But it also comes “in the package” with several dozens of technologies:

  • editors: Notepad++ or another suitable analogue,
  • database servers: MySQL, PostgreSQL,
  • storage: Memcached,
  • frameworks: Symfony, Yii and others.
  • And also package managers, profilers, debuggers and more. So, learning PHP is not limited to learning the language itself – this should be remembered.

Step 5. Python

Today, many people call Python one of the most promising languages, and it really makes sense. It is actively used not only in web development and writing programs, but also in working with neural networks and Machine Learning. And these are the technologies of the future.

At the same time, Python cannot be called too difficult to learn. Learning it from scratch, of course, will not be easy. But, knowing another programming language, you can learn Python without much effort if you wish.

The disadvantages of Python are:

  • implicit typing;
  • partial support for multithreading;
  • slow;
  • voracious, in his care will bypass even JS.

The most popular code editor for Python is PyCharm. And there are simply many additional technologies used with this programming language:

  • analysis: iPython, Anaconda and others,
  • Machine Learning: Scikit-learn, Keras,
  • web development: Django, Tornado,
  • managers: Pip, Conda.

By the way, Python has an unobvious advantage — an extremely friendly and loyal community of developers. You will be able to easily find answers to the questions that arise and get help from more experienced colleagues. And this is really important in the modern IT industry.

A small clarification

Based on the above data alone, one can come to the disappointing conclusion that JavaScript is the best choice for a beginner web developer. It’s easier to learn, and the salary is on par with a PHP developer and even higher than a Python developer. But here is an important nuance!

In Ukraine, JavaScript developers are in demand due to their versatility. And the demand for highly specialized PHP and Python developers is only in big cities (or remotely, project-wise). It turns out that if you plan to work for the domestic market, then JS may be the best option. But in the Western market, the picture is the opposite — large projects often require narrowly focused PHP or Python specialists in the team. And here the salary is significantly higher.

Accordingly, it is worth asking which market you plan to work on.

If the goal is money

HTML + CSS is the smallest to do web development, or rather layout. These are not programming languages in the literal sense, but you need to know them.

JavaScript is one of the most popular programming languages and is relatively easy to learn. After learning HTML5 + CSS3 + JS, you can expect a higher income than with basic HTML + CSS.

Java is a more complex language, but the salary of Java programmers is significantly higher.

PHP and Python are popular, albeit highly specialized, programming languages that allow you to make good money.