Beruf: Backend-Entwickler

Es gibt keinen Grund aufzuhören - 
ich gehe, gleite.
Und in der Welt gibt es keine solchen Gipfel,
was nicht genommen werden kann.
V. Vysotsky


Wenn dieser Artikel nicht auf Habré, sondern in einem Bildungsmagazin veröffentlicht würde, würde ich ihn folgendermaßen starten: „Denken Sie an die Websites, die Ihnen gefallen, die eine bequeme Navigation und eine schöne Oberfläche haben. Aber wussten Sie, dass dies nur die Spitze des Eisbergs ist ... “ Aber wahrscheinlich weiß alles über Habré, daher keine Texte. Das Backend eines Webprojekts ist ein komplexes System, mit dem die Anwendung schnell arbeiten, effizient suchen, dem Benutzer schnell Informationen geben, Daten sicher speichern und bei Bedarf mit anderen externen Systemen arbeiten kann. Es ist wie bei einer Schweizer Uhr: Sie kaufen sie für Stil und Typenschild, aber Kenner wissen, dass unter dem zurückhaltenden Zifferblatt die magische Welt des Uhrwerks liegt. Und Backend-Entwickler sind Zauberer von Mechanismen, Organismen, Därmen, Eingeweiden oder wie Sie es in Webanwendungen nennen. Eh, ohne Texte war es nicht möglich! 

Kurz gesagt, heute analysieren wir einen anderen Beruf in der Reihe "Beruf ...". Was ist, wenn Sie zu den Backend-Entwicklern gehen? 


Das Backend ist immer ein bisschen schmerzhaft

Wer ist das?


Akademisch gesehen ist ein Backend-Entwickler ein Programmierer, der für die interne und rechnerische Logik einer Website oder Webanwendung sowie anderer Software und Informationssysteme verantwortlich ist. Genau genommen ist das Backend nicht nur für Weblösungen gedacht, sondern auch für Desktop- und mobile Anwendungen Tatsächlich ist das Backend alles, was sich auf die Hardware und Software des Dienstes bezieht. Historisch gesehen kam es jedoch vor, dass das Backend und das Frontend gerade in der Webentwicklung besonders deutlich voneinander unterschieden wurden. Und da dies momentan auch die beliebteste Sphäre ist, werden wir speziell über das Web sprechen (für den Desktop werden auch viele Thesen gültig sein, aber wir werden in einer der Ausgaben separat über mobile Entwickler sprechen).

Der Backend-Entwickler erstellt Komponenten und Funktionen, auf die der Benutzer der Anwendung oder Site über die Benutzeroberfläche zugreifen kann. Einfach ausgedrückt, Backder sind Programmierer, die alles entwickeln, was der Benutzer nicht sieht und nicht direkt berührt. Das heißt, ein schönes Dateneingabeformular oder ein Warenkorb eines Online-Shops ist ein Frontend, und das Speichern von Daten in einem DBMS, einer Reihe von Registrierungsformularfeldern und einem Warenkorb, die Integration in ein Zahlungsgateway, automatische Briefe, das Laden und Aktualisieren von Inhalten ist ein Backend. Wenn das Registrierungsformular einen Datenbankfehler anzeigt, ist der Fehler ... der Tester :-) (warum - wir werden es auch in der nächsten Serie erzählen).

Wofür der Backend-Entwickler verantwortlich ist:

  • Gewährleistung des korrekten Betriebs aller Funktionen der Site und ihrer Rechenlogik;
  • Organisation und Arbeit mit Datenbanken über DBMS;
  • Entwicklung grundlegender Logik- und Anwendungsoperationsalgorithmen;
  • API
  • notwendige Integration mit externen Diensten;
  • Testen und Debuggen von Anwendungen und einzelnen Komponenten.

Im Allgemeinen sind das Gehirn und das Blut der Site im Gewissen des Backend-Entwicklers. Ich muss nur nicht denken, dass dies der Gott und König aller Entwicklungen ist, und der Rest der Teilnehmer des Prozesses friert in Erwartung seiner Handlungen ein - dies ist nicht ganz richtig (na ja, fast).


Frontend-Entwickler malen die Lampe gelb und reiben das Backend, damit die Lampe funktioniert, jedoch nur tagsüber.


Backend-Entwickler sind erstaunt darüber, wo jeder Probleme mit diesen Glühbirnen hatte. Er erinnert sich, dass er vergessen hat, Licht in die Datenbank zu bringen, sich beruhigt und das Frontend beschuldigt.

Wo wird es gebraucht?


Wie bei der Front-End-Entwicklung gibt es absolut überall eine Website oder Anwendung, die mit dem Benutzer im Web interagiert. Es ist eine andere Sache, dass jeder Backder auf verschiedenen Ebenen benötigt: In einem Büro eines bedingten sozialen Netzwerks oder einer großen Ankündigungssite muss ein Backend-Entwickler nicht nur über Grundkenntnisse verfügen, sondern auch mit hohen Lasten, Microservice-Architektur und Containerisierung (Docker, Kubernetes) arbeiten und Überwachungssysteme kennen ( wie Zabbix, Grafana) verfügen über Scrum-Kenntnisse (optional für bestimmte Unternehmen). Und für einen kleinen Online-Shop reicht ein Haufen von PHP-Ajax-benötigtem DBMS-HTML aus, manchmal sogar weniger. Es ist klar, dass sowohl die Löhne als auch die Anforderungen an die Erfahrung völlig unterschiedlich sind. 

Traditionell bei Habré CareerWir haben 444 Stellenangebote des Backend-Entwicklers gefunden, was fast doppelt so viel ist wie im Frontend. Auf hh.ru - um 1800. Im Allgemeinen warten Front-End-Anbieter an Arbeitsstationen auf Sie, wo die Site-Suche zwei Stunden dauert :-) Aber im Ernst, das Unternehmen hat möglicherweise 2-3 Backend-Entwickler pro Frontend, insbesondere wenn Wir sprechen von Anwendungen mit komplexer interner Logik und Geschäftslogik (Online-Shop, CRM-ERP, Unternehmensportal usw.).

Durchschnittsgehalt


Wir werden uns auch die Löhne bei Haber Career ansehen. Nehmen Sie die Daten für die zweite Hälfte des Jahres 2019, unabhängig vom Besitz eines bestimmten Stapels. 
Fachniveau
Durchschnittsgehalt
Praktikant (Praktikant)
35 345 reiben.
Junior
55 241 reiben.
Mitte
105 048 reiben.
Senior
168 350 reiben.
Moderator (Lead)
185 335 reiben.

Wenn wir mit den Gehältern von Front-End-Ausschreibungen vergleichen, ist das Wachstum von mehreren hundert Rubel auf 6.000 Rubel unbedeutend. (in der Mitte). Aber das sind wirklich sehr durchschnittliche Werte, viel hängt vom Programmierstapel, zusätzlichen Fähigkeiten, Erfahrung und der Hauptentwicklungssprache ab. Übrigens ist PHP für alle Ebenen des Backend-Entwicklers an erster Stelle, und wir werden mehr darüber sprechen.

Grundlegende berufliche Anforderungen


Die Anforderungen an das Back-End reagieren noch empfindlicher auf die Merkmale des Unternehmens und seiner Geschäftsprozesse als auf das Front-End. Manchmal kann es auf den ersten Blick sehr seltsam sein, Dinge wie „die Prinzipien des Fischkühlschranks als Unternehmen zu verstehen“, „die Grundlagen des Verkaufs oder die Erfahrung im Verkauf zu kennen“, „brillante Kenntnisse in JavaScript, CSS und HTML“. Aber es sieht nur beim ersten Ansatz verrückt und abstoßend aus. In der Tat ist der Backend-Entwickler wirklich mehr in Geschäftsprozesse vertieft, muss nicht nur den Code entsprechend entwickeln, sondern auch einige Dinge an bestimmte Aufgaben anpassen, verstehen, wie es von innen funktioniert. Wenn Sie noch nie einen Verkaufstrichter gesehen haben und nicht verstehen, um welche Art von Müll es sich handelt, können Sie seine Logik niemals zusammen mit Filtern, Slices und Übergängen entwickeln (selbst wenn Sie über hervorragende technische Spezifikationen verfügen, ist es schwierig, dies herauszufinden).In dem Beispiel mit "brillanten Kenntnissen in JavaScript, CSS und HTML" ist alles einfach: Der Manager vertraut seinem anderen Entwickler wahrscheinlich nicht wirklich und ist bereit, seinen Entwicklungsansatz zu überdenken. Dies geschieht häufig in kleinen Unternehmen. 

Es gibt aber auch eine Reihe grundlegender Anforderungen, die ein Backend-Entwickler in fast jedem Job sieht.

  • Kenntnisse in mindestens einer „Server“ -Programmiersprache: PHP, Go, ASP.NET, C / C ++, Python, Ruby, Java. In einigen Fällen sind JavaScript-Kenntnisse für das Backend (Node.js) ausreichend, dies ist jedoch eher ein Plus als ein Punkt.
  • Kenntnisse der API (REST, SOAP - immer weniger).
  • Grundlegendes zu den Prinzipien von Apache, NGINX, IIS und anderen Servern.
  • Fähigkeiten zum Schreiben von Komponententests und zum Abdecken von Code mit Tests.
  • Die Grundlagen der Netzwerksicherheit und die Kenntnis der Tools, um dies sicherzustellen.
  • Kenntnisse über gängige Webframeworks, die die Probleme bei der Entwicklung einer bestimmten Anwendung lösen können.
  • Kenntnisse im Schreiben von Datenbankabfragen und im Datenbankdesign.
  • Die Grundlagen des Frontends zu kennen, ist kein Plus, sondern ein obligatorischer Punkt. Andernfalls ist es für Sie äußerst schwierig, eine Anwendung zu entwerfen und zu schreiben.

Ein großes Plus sowohl für den Lebenslauf als auch für Ihre eigentliche Arbeit wird ein weiteres Wissen sein.

  • UNIX-Administration oder Linux-Kenntnisse (Sie können ein beliebiges Distributionskit verwenden).
  • Kenntnis der HTTP-Arbeitsprinzipien (Caching, Autorisierung, Nachrichtenstruktur, Header, Antwortcodes usw.)
  • OSI-Modell. 
  • Fähigkeiten in der Vorbereitung und Bewertung von Leistungsbeschreibungen (TOR) sind eine sehr wichtige Fähigkeit, die erforderlich ist, um die genauesten Informationen über Softwareanforderungen zu sammeln. 

"Ja, verrückt!" - Du wirst sagen und du wirst Recht haben. Ich habe jedoch einige gute Neuigkeiten: Die Backend-Entwicklungstools ändern sich viel langsamer als das Frontend, und die Anforderungen sind für lange Zeit veraltet. Also habe ich es einmal gemeistert und die Digests gelesen, um auf dem Laufenden zu bleiben, aber vor allem nicht, um zu kochen, weil das flache Design in Mode gekommen ist und die Produktkarte auf Ihrer Website seit zwei Tagen nicht mehr im Trend ist :)

Übrigens gibt es viele gute, starke Mathematiker unter den Backendern, da die Backend-Entwicklung eine exakte Wissenschaft ist und die Qualität des Ergebnisses stark davon abhängt, wie verifiziert Ihre ausgewählten und angewandten Algorithmen, Muster, Zyklen, Funktionen usw. sind.
Praktikant (Praktikant)
Junior
Mitte
Senior
Moderator (Lead)
  1. C ++
  2. C #
  3. Golang
  4. SQL
  5. .NETZ

  1. Php
  2. Python
  3. Java
  4. Java Spring Framework
  5. PostgreSQL

  1. Php
  2. Python
  3. Java
  4. PostgreSQL
  5. Java Spring Framework

  1. Php
  2. Java
  3. Python
  4. PostgreSQL
  5. Java Spring Framework

  1. Php
  2. Java
  3. MySQL
  4. PostgreSQL
  5. Hoch belastete Systeme

- - 
+ OOP, Frameworks

+ OOP, Frameworks, Docker
+ Hoch geladene Systeme, OOP, Frameworks, Docker
+ Linux, OOP, Frameworks, Docker
Top 5 Technologien, die laut „Habr Career“ in der zweiten Jahreshälfte 2019 bei Spezialisten gefragt sind, sind unter dem Strich „zusätzliche“ Fähigkeiten.

Das Prinzip der Listenerstellung: Benutzer, die Daten zu Löhnen eingeben, geben an, welche Fähigkeiten sie vorrangig haben (was sie tun können!). Das heißt, dies sind nicht die Anforderungen des Arbeitgebers, sondern die Fähigkeiten von Spezialisten in jeder Kategorie.

Wie Sie sehen, sind Unternehmen bereit, Praktikanten mit den Grundlagenuniversitäten C, C ++ und C # aufzunehmen, aber in Zukunft bevorzugen sie Spezialisten mit einem „Arbeitssatz“ des Backends. Achten Sie auf das Interesse an Containerisierung und stark belasteten Systemen. 

Hier ist übrigens eine weitere Roadmap für Sie, aber bereits für das Backend des Entwicklers(Die anderen sind auch auf der Website - meiner Meinung nach ist dies eine der besten und systematischsten, die ich zu diesem Thema gesehen habe). Schauen Sie, drucken Sie und leiten Sie an die Oberseite des Backends weiter. 


Wichtige persönliche Eigenschaften


Das Backup ist gut, es kann introvertiert sein :) Der Arbeitsbereich mit Benutzern wird im Grunde genommen minimiert, alle Arbeitskontakte mit Managern oder Kollegen. Diese Leute arbeiten oft an TK und tun alles so, wie es im Dokument geschrieben steht oder so, dass ein Zustand erreicht wird, der dem Ziel so nahe wie möglich kommt (TK ist, wie Sie wissen, auch unvollkommen oder gar nicht ...).

Es gibt jedoch eine Reihe von Eigenschaften, ohne die Sie nicht über die Richtung des Backends nachdenken sollten. Sie mögen Ihnen so etwas wie die Qualitäten eines Mitarbeiters erscheinen, die ein „junges, sich dynamisch entwickelndes Team“ braucht, aber nein, es geht um interne Notwendigkeiten, die nicht nur dazu beitragen, die Arbeit gut zu machen, sondern auch mit innerem Komfort (anstatt „rauszukommen“ ").

  • . , : , , , .. , — (, - - - CRM-).
  • . , , .
  • . — , , , « » , , - ( ).
  • . .
  • , . — .
  • . , . , . — . 
  • . — . , , . — ( ).
  • . , , , , , , , . , , — «» , « ».


Hier ist, was für den Front-End-Entwickler geschrieben wurde.

Für jeden Programmierer ist ein Englisch von mindestens der oberen Mittelstufe mit einer Neigung zum technischen Englisch sehr wünschenswert. So können Sie im Original die zahlreichen Empfehlungen von Google und anderen Unternehmen für eine optimale Entwicklung lesen (viele nützliche Dokumentationen!), Mit Hilfe ausländischer Vorträge selbst lernen, mit Kollegen in Foren kommunizieren, Fragen stellen und auch Bücher über Usability und Design lesen, darunter sehr viele viele coole englischsprachige und noch nicht übersetzte Ausgaben. 

Gleiches gilt für das Backend, umso mehr. In den Kommentaren zum vorherigen Artikel haben sie festgestellt, dass das Niveau der oberen Mittelstufe für einen IT-Spezialisten zu hoch und zu niedrig ist. Ich urteile nach mir selbst und nach dem Niveau der Lehrbücher. Sagen wir einfach, dass der Schritt von Mittelstufe zu Oberstufe nicht wie ein Fänger aussieht und das Niveau des „Chats“ leicht genommen werden kann. Aber von oben bis fortgeschritten - der Abgrund und die Komplexität und der Wortschatz. Wenn Sie jedoch die Regeln lesen und verstehen, dass Sie auf einer anderen Ebene lesen, wird Sie niemand zur Prüfung mitnehmen. 

Wo soll ich studieren


Grundsätzlich die gleichen technischen Universitäten, Kurse, Autodidakten und Unternehmensuniversitäten. Aber es gibt wichtige Nuancen.

  • - (, , .), . - — , . , , , .. 
  • — - (, PHP Java) - -, , ( ).
  • , / . , .
  • open source , .
  • , , (-), . , , , , . , , - , - , .. ( / ). 



Es ist notwendig, Trainingswerkzeuge basierend auf der ausgewählten Programmiersprache und dem aktuellen Stapel zu einem bestimmten Zeitpunkt auszuwählen. Allgemeine Empfehlungen lauten wie folgt.

  • Ein grundlegendes Buch über Ihre Programmiersprache - Ich mag O'Reilly-Ausgaben, viele werden von Peter übersetzt. 
  • Ebenso grundlegende Bücher auf Ihrem Stapel. 
  • Kochbücher nach Sprache und Unternehmensempfehlungen, Blog-Artikeln usw.
  • Beck Kent, Extreme Programmierung. Entwicklung durch Testen ist im Prinzip ein großartiges Buch für jeden Entwickler, insbesondere aber für das Back-End. Der Einstieg in die TDD-Philosophie ist teuer.
  • Joel H. Spolsky - Sie können seinen Blog lesen, Sie können immer noch auf den Runet-Weiten ein E-Book "Joel about Programming" finden - eine Sammlung von Blog-Posts in russischer Sprache.
  • « », « » — «» , .
  • « » — «» , .
  • , Youtube . , , . , . 
  • webref.ru — , , . 
  • codecademy.com — , , , . 
  • ITc | Community of Programmers - ein Auto mit organisierten Informationen mit Kursen, Vorträgen und allem anderen. Lesen Sie Kommentare und ermitteln Sie ganz einfach das Beste zum Lernen.
  • Programmierbibliothek - eine Reihe von Büchern zu IT-Themen.

Warum konzentriere ich mich auf Bücher? Erstens sind sie professionell, und zweitens können sie bequem zur Hand gehalten werden, Notizen machen und Aufkleber aufkleben und schnell zu den Informationen zurückkehren, die Sie benötigen. Dies ist ein bequemes und zugängliches Format für die Präsentation von Informationen für das Gehirn. Wenn Sie sich nicht selbst getestet haben, probieren Sie es unbedingt aus, haben Sie Spaß!

Die Zukunft des Backends


Die Zukunft des Backends ist ganz klar und vielversprechend gezeichnet.

  • : junior , middle , senior , , , team lead .. , , , , .
  • : - Java, /++ « », , , , .. , .
  • -: .
  • DevOps, DevSecOps, — - , .
  • , . 
  • — . - ( -).

Ich werde Ihnen mehr sagen: Wenn Sie im Zeitraum 2020-2022 SQL und eine beliebige "Backend" -Programmiersprache lernen, wird dies im Jahr 2032 gut für Sie sein. Und hier geht es nicht um Legacy-Unterstützung, sondern darum, dass es noch keine anständige Alternative zum Web gibt, und wenn ja und es scheint, dass das Back-End eine viel bessere Chance hat, dass sein Stapel an seinen Platz fällt.

Die Hauptsache, die für Sie nicht funktioniert, ist, ein schlechter Entwickler zu sein und gleichzeitig auf etwas Interessantes zu zählen. Tatsache ist, dass jedes Unternehmen Verantwortung vom Back-End erwartet (stellen Sie sich Fehler im Code einer Bankanwendung, eines kritischen GIS oder eines Online-Überwachungssystems vor - Sie können sofort grau werden) und einen soliden Arbeitsansatz. Es ist unwahrscheinlich, dass es möglich ist, zu filtern oder zu sagen, dass es beabsichtigt ist - bei aller externen Unsichtbarkeit des Backends ist der Fehler darin am auffälligsten.

Mythen des Berufs


▍Backend ist sehr schwierig


Ein strittiger Punkt. Einige Entwickler behaupten, dass es dank Entwicklungstools, unzähligen Bibliotheken und einer geringen Dynamik einfacher ist, während andere Angst haben, sich dem Backend grundsätzlich zu nähern. Wie immer jedoch in der Mitte: Vielmehr ist der Backend-Entwickler-Stack vielfältig und besteht aus heterogenen Komponenten, aber erstens wird nicht alles im Projekt benötigt, zweitens lohnt es sich, eines zu verstehen, und jetzt sind alle Zusammenhänge offensichtlich: Wissen auf einer einzigen Stange aufgereiht. In jedem Fall müssen Sie sich im Backend versuchen - selbst wenn Sie sich umdrehen und eine andere Art der Entwicklung wählen, hilft Ihnen das erworbene Wissen bei Ihrer Arbeit.


▍ Backend-Entwickler erhalten Millionen


Dies ist im Allgemeinen ein verbreiteter Mythos über das Programmieren. Der größte Reallohn des russischen Entwicklers, den ich mit eigenen Augen sehen musste, beträgt 540 Tausend Rubel. pro Monat (C / C ++, ausländisches Projekt, Computer Vision Systeme, PhD, Remote), das zweite davon - 400 Tausend Rubel. (Delphi, udalenka, ausländisches Unternehmen, Deutsch als Muttersprache). Der Rest ist den Zahlen sehr ähnlich, die ich aus den "Habr Careers" für meine Teller genommen habe. Sie erhalten nur dann Millionen, wenn es konvergiert: brillante Kenntnisse der Sprache + Talent + Erfahrung und einzigartige Fähigkeiten in einem engen Bereich + Projekt, das bereit ist, so viel zu bezahlen. Es gibt nur wenige dieser Leute, und ich kann nicht sagen, dass ihr Schicksal schön ist: 99% ihres Lebens sind Arbeit, 1% ist ein Traum. Daher ist es wichtig, eine andere These zu verwirklichen: Backend-Entwickler sind gefragt und verdienen gutes Geld, besser als viele Spezialisten. Meinteinen Versuch wert.

▍PHP - r @ vno, PHP ist tot, PHP muss sterben


Ich liebe diesen Holivar! Gleichzeitig weiß ich, wie Anfänger Angst vor ihm haben und versuchen, diese mächtige und in vielerlei Hinsicht bequeme Sprache und ihre Rahmenbedingungen zu umgehen. Tatsache ist, dass PHP in den frühen 2000er und 2010er Jahren eine äußerst beliebte Programmiersprache für Freiberufler und andere IT-Glücksbringer war. Es heißt ein Meer von schlechten Amateur-Websites und -Anwendungen - aber nicht, weil die Sprache schlecht ist, sondern weil diese Leute sie nicht anmutig und kompetent einsetzen konnten. Von dort gingen diese Mythen über "schlecht".

Natürlich ist PHP leicht zu erlernen, lebendiger als alle lebenden, Hunderttausende von Projekten, Designprojekten und Projektingenieuren werden darauf geschrieben und unterstützt, und es wird ziemlich lange leben. Laut Stackoverflow wird PHP von 25,8% der professionellen Entwickler ausgewählt. Ja und die GitHub-Sprache von Octoverse ist in Bezug auf die Anzahl der Projekte ziemlich stabil:


Übrigens sind wirklich gute PHP-Programmierer in jeder Hinsicht hoch angesehen.

Haupttipp


Es gibt keine bessere Sprache für das Backend, außerdem werde ich Ihnen sagen, dass es für nichts eine bessere Programmiersprache gibt. Lernen Sie die Sprache, die Sie oder Ihr zukünftiger potenzieller Arbeitgeber benötigen (Sie können dies im Voraus lernen), und lösen Sie dann schnell und elegant die Ihnen zugewiesenen Aufgaben. Sie sollten keine Technologie aus dem Prinzip „Jeder rannte und ich rannte“ lernen. Dann können Sie ein wirklich einzigartiger, denkender und verdienender Spezialist werden. Welches wird seine Bedingungen natürlich am besten bestimmen. 

Gibt es erfahrene Backends unter den Lesern? Wie ist das? Warum haben Sie sich für diese spezielle Entwicklungsseite entschieden? Ah ja: Beruf: Front-End-EntwicklerBeruf: Systemadministrator







All Articles