Answer the question
In order to leave comments, you need to log in
What do you need to know for backend development?
Good afternoon. I understand that the question is the most extensive, hackneyed and causes nothing but pain.
I'll try to clarify it to soften the anger.
The situation is as follows, at the moment I have a middle level in the front, I work with one of the frameworks.
There are thoughts of starting to learn one of the available server languages, but unfortunately I have no idea which language is preferable to choose, what you generally need to know for backing, I heard a glimpse of some databases, but I am convinced that this is not enough. Interested rather than the language itself, but those technologies that surround it.
Yes, of course, the network is full of information, but it's a pain to read everything that gets under your eyes, and until I can understand for myself what is rubbish and what is not, a lot of time will pass.
There is no goal to sit down and learn a language in 2-3 months and get a job.
Do I understand correctly, if we are talking about web development (backend), then the principle of work related to databases, protocols, etc. remains the same, only the language changes?
I apologize if the question sounds stupid, lack of knowledge affects.
And do I need to know OOP for backend or does it depend on the language? On the modern front, OOP principles are little used, we mainly write code functionally, hence the level of knowledge and experience in OOP is minimal
In general, this is more of a request than a question to experienced people who have already passed a similar path. Can you advise the language and, depending on the language, indicate some structure of what you need to read and what you have to work with (maybe some portals, books, articles). Or perhaps the language does not matter and I can decide on it myself, but there is a technology stack that you need to know regardless of the language.
Answer the question
In order to leave comments, you need to log in
You can start right on JS. First, learn how to raise a server on a node (NodeJS). Then try to work with frameworks like ReactJS, AngularJS. Understand how databases work. Understand the basics of routing. Try to write your own URL processing scripts. Try to create your own API. Learn how to make requests to the server correctly, and then it will contact itself using Google and a bunch of problems) It will be difficult without understanding OOP. It will be especially difficult to read someone else's code, because OOP is almost everywhere now. And perhaps the most important advice for a beginner in the back: "Remember the principle of single responsibility: in any program there should always be only one input" (I myself recently began to be interested in the back, and this advice was perhaps the most useful). The main thing is just do not give up and try to allocate time, no matter how much it is a pity. If it's difficult with JS, you can start trying with pihi (PHP).
The backend is divided into at least four parts:
- application programming language
- database
administration - server and operating system administration
- DevOps
Application programming languages:
- JavaScript + Node.js / Express.js favorite of hipsters and startups: since you have or at least I don't have specific ideas about what you want, you don't have to go far. Knowledge of Node.js will help you with the frontend too, as Webpack works with Express.js and customizing Webpack is a huge pain in the ass and with finding jobs among hipster companies.
- PHP/Symfony. PHP - the darling of the proletariat - is always a good choice. The language is written like JavaScript specifically for web applications. Small projects are implemented very quickly due to the absence of any framework on the part of the language. This is where the bad reputation of this language comes from, since there are a lot (in terms of OOP architecture) of poorly created projects in PHP, among which the most famous is WordPress. But PHP is a full-fledged programming language and there are no big objective reasons to throw mud at it as the sectarians of JavaScript, Java, Ruby, Python, etc. like to do (although each of these languages is poured with mud by sectarians of other languages). Framework for enterprise level: Symfony + Doctrine (terrible shit, only really needed for enterprise level - for personal projects Doctrine is better to avoid and use PDO). Almost all popular eCommerce systems are written in PHP (WooCommerce, Magento, Shopify, Shopware). Well, there is nothing to say about WordPress at all. 35% of websites work with WordPress. WordPress is not the best framework from a technological point of view, but as the most popular among users, expertise in this area will always help you with freelancing. Although WordPress users are not, on average, the most paying customers. But there are (somewhere) customers who are willing to pay tens of thousands of dollars for a WordPress-based project. then expertise in this area will always help you with freelancing. Although WordPress users are not, on average, the most paying customers. But there are (somewhere) customers who are willing to pay tens of thousands of dollars for a WordPress-based project. then expertise in this area will always help you with freelancing. Although WordPress users are not, on average, the most paying customers. But there are (somewhere) customers who are willing to pay tens of thousands of dollars for a WordPress-based project.
- Java/Spring is a favorite of corporations: almost all individual development of large corporations is done in Java (if you do not take into account Microsoft languages). Popular fullstack generator for Java projects: JHipster. The Java sectarians hate everyone and are the main source of shitstorms against all other languages. At least it seems so to me. One of the great advantages of Java is that you can write applications for the web, as well as for mobile and desktop.
- Kotlin - a programming language from the Russian company JetBrains that should replace Java for Android in the long run, due to some disagreements between Google and Oracle. Kotlin was developed on the basis of Java, and as far as I know, everything that is written in Java (somehow) can be used with Kotlin. Everyone loves Kotlin, I think. The guys from JetBrains know at the genetic level what the developer needs. At least that's how it seems to me when I work with their products (PhpStorm/WebStorm + DataGrip).
- Python/Django: A super versatile language that is popular for both web application development and academia and artificial intelligence. They say it's as easy to learn as PHP. From here, probably, and shieldstorms in his direction, although of course there are fewer of them than in the direction of PHP. The language is also popular among hackers and is the main programming language for crawler bots. YouTube is written in Python
- Ruby (on Rails): I don't know anything about this language/framework except that relatively many mid-tier companies use it.
- C/C++: There are practically no web frameworks for these languages. But these are the fastest languages of all listed. These languages are used for everything where speed plays a big role (video processing for example). JavaScript, all programs from Adobe CC, and Ableton Live are written in C++. Linux Kernel and PHP are written in C. They are also the main languages for electrical appliances / microcontrollers and therefore in the IoT field. Perhaps these languages will also start to play a big role in the frontend!!! thanks to WebAssembly, which makes it (theoretically) possible to bring programs like Photoshop, Illustrator, Premiere Pro, After Effects, Ableton Live or games like Counter Strike completely into the browser. If I were to start learning a new backend language, I would start with C/C++.
There is a good list of basic technologies and knowledge of where to dig: https://github.com/bzick/oh-my-backend#oh-my-backend
The language itself is mentioned there in passing and without a specific indication of the preferred language, since in fact the sensible backender is already all no matter what language to write.
0. At the beginning, think 10 times - why? If you want more money, then it's faster and much easier to become a Senior Frontend. Since the backend is much deeper and more complex, and they pay almost the same.
1. In your case, it's really best to start with Node.js + express.js + any database that will be in the video course that you will watch. So you can make your first API for the frontend and understand what the backend is. But you should understand that Node.js is a niche solution and for most sites it will not work for many reasons.
2. PHP IMMEDIATELY FORGET!
Tales about the fact that 99% of all sites are written in PHP for 10 years are not relevant, and everyone repeats them. It's especially funny when they talk about VKontakte and Facebook as examples of PHP projects. Both VK and FB got rid of pure PHP a long time ago and wrote their own PHP translators in C ++. (KittenPHP and HipHop).
Although PHP may seem like a good language after JS (richer than the standard library, OOP), make no mistake - there are much better/simpler/more powerful/modern languages out there.
For those who want to argue - About 50 shades of PHP is well written here: https://habr.com/ru/post/142140/
Although the craving of true Indians to ride an elephant cannot be appeased by any arguments :)
3. Java, C# - doubtful. Yes, they write big and serious projects and pay good money. But how often do such projects write? Especially in the CIS. And do they take newbies? :) It is better to first study the demand for June on freelance exchanges and the number of vacancies, ESPECIALLY if you want to work remotely.
I have been a full stack developer for 4 years. Wrote in PHP/CodeIgniter/Kohana/Zend/Yii1.2/Symfony/Laravel 4.5/MySql/JQuery/Vue.js. With experience, I realized that PHP has a lot of problems. The development of the language has stopped / is going wrong, the language itself is poorly designed. And I began to actively study which platform / language I should switch to.
Tried Java, Ruby, Objective-c/Swift, Node.js, Python.
I settled on Python/Django framework/PostgreSQL. In Python, you can write both asynchronous applications (hello Node.js) and synchronous (hello PHP). Django is head and shoulders above any PHP framework, and the entry threshold is lower than Symfony, Zend and about the same as Laravel, Yii.
In general, Python as a language is designed better than PHP, it has more features, it is more modern and actively developing.
The transition to a new language was not as quick and easy as it seemed at first). Although I switched from a backend to PHP to a backend to Python. In addition to the language itself, you also need to master a new stack of popular frameworks, libraries, and tools for it. Also rebuild your portfolio. It took me 2 years to reach the previous level of salary. You work on the old stack so that you have something to eat, and after work and on weekends you study a new one if the motivation doesn't end :)
PS I don't advise you to be a Fullstack. It is better to become a competent specialist in one area than a dropout in two. They pay middle full stack as well as middle frontend or middle backend separately. Yes, finding a fullstack job is a little easier, but there will be much more responsibilities.
Back != work only with the database. As a practicing developer, you should have an understanding of the architecture of your system, even if you are a highly specialized front-end developer. For example, if the backend provides a well-documented API that you work with on the front, then it's pretty easy to imagine how to implement a similar API on the other side.
Knowing any js framework, one could try to learn Node.JS as a basis for backing.
Well, in general, I am for Java + Spring, if we are talking about serious things.
At the moment I am junior, but I also asked myself this question.
I looked closely at the MERN stack, but it is still not entirely clear what the robot is according to ACID and what is better for online stores and highload projects.
I looked at a comparison of different databases, but also because of the lack of knowledge, I still did not understand what and why.
I will track your question
Take a look at C# and net core.
It works everywhere, as the javaists once declared, a VERY convenient IDE. Supports all normal databases.
There are some downsides.
Go is also a good candidate.
PHP is always in demand.
Java - well, you can of course, but if only there is a main client who will pay for this holiday
Didn't find what you were looking for?
Ask your questionAsk a Question
731 491 924 answers to any question