Web Development - Where to Start?

Recently I saw a question on the stack overflow site in which a C ++ programmer asked what should be started to learn in order to later become a web developer. From his words, he began with the study of php, but on the advice of friends he switched to reality, at some point he discovered the angular, as a result, a mess formed in his head, and there was no understanding in which direction to move. It is for people who have just come to the web and I decided to share this article so that they have a rough understanding of what is there.

Any web application consists of two parts: a backend and a frontend. Accordingly, programmers are also divided, in fact these are two unrelated castes of developers.

Backend


The backend is the server part of the application that is not visible to users. This includes: authorization, storage and processing of data, email newsletters and the like. Let's just say the backend is what's under the hood.

There are many programming languages ​​here, here are the most common of them:
• Php
• Asp net
• Java
• Python
• Ruby
• Node js
I advise you to choose one only, because with the current requirements for programmers to reach the middle level at least several years will pass. When choosing, you can familiarize yourself with the vacancies in your city, see which ones are more suitable, where they pay more, and depending on which language they need to choose.

The server is largely used for working with data. Therefore, you will need to learn at least one of the relational databases:
• Oracle
• MSSQL
• MYSQL
• Postgres
In terms of complexity, this is about the same as mastering a programming language. In all of the listed databases there is a part that is the same everywhere - the so-called sql (query language), as well as the procedural language, which has its own in each database. Since sql is still the same, and it is the basis of everything related to data processing, switching to another database is not such a problem. Therefore, you can choose any for a start, but even here I would go on the principle of analyzing vacancies.

Personally, I put a plus in the direction of studying the backend, since the skills here are more static and after learning, once you can work on this for a long time.

Frontend


Frontend - the part that works in the browser with which the user interacts directly. These are dynamic interfaces, menus, events by user action, data exchange with the server part, in general, what happens on the client.

The programming language here is one javascript. On the one hand, this is a definite plus, since after studying it, you will be open to all the companies in your city that are engaged in web development, and now many are involved in it. On the other hand, there are nuances.

JavaScript currently has two standards that are widely used: ECMAScript 5 and ECMAScript 6. The difference between them is that ECMAScript 5 lacks a full-fledged API. It exists in ECMAScript 6, but since this standard appeared relatively recently, most applications are already written in ECMAScript 5, as a result of which it will be necessary to master both standards and, as a result, two different development approaches.

Another thing to consider is that the same code written in javascript can work differently in different browsers and on different operating systems. With the current requirements for applications, it will be necessary to write the so-called cross-browser code correctly, that is, code whose execution result will give the same result everywhere. There is no specific manual for writing such code, in this case, forums will help you and okay google.

The problem points described by me are solved in modern js frameworks (for example, in such as angular and react). But in projects that are written without using frameworks, these points remain.

For me personally, an even bigger minus is that there is a very rapid development of trends. The framework versions are constantly updated, new libraries are released, and everyone immediately wants to start using them. In general, the community does not keep up.

Full stack


Already from the name it should be clear that this type of developer is developing both parts. I don’t advise trying to become such a developer, because learning all the brains is not enough anyway, and most companies have already taken the path of division of labor. However, a full stack is where you need to start to take a step towards the backend or frontend. Having developed a couple of small applications, you will understand the difference between them (and it really is) and you can decide which side is closer to you.

I at one time, to decide, read the book "Creating Dynamic Websites" by Robin Nixon. The book is small only 500 pages, but thanks to it I got a general idea about web development and I boldly made a choice in the direction of the backend, which I still do not regret. I cited this book as an example, you can take any other it does not matter.

That's basically all that I wanted to share, I wish everyone who came to the web good luck and speedy mastering.