JavaRush /Java-Blog /Random-DE /Sowohl der Schwede als auch der Reaper. Wer ist ein Full-...

Sowohl der Schwede als auch der Reaper. Wer ist ein Full-Stack-Entwickler und wie wird man einer?

Veröffentlicht in der Gruppe Random-DE
Sowohl der Schwede als auch der Reaper.  Wer ist ein Full-Stack-Entwickler und wie wird man einer?  - 1Es gibt eine Position auf dem Gebiet der Computerentwicklung, die mysteriös und undurchsichtig, aber gleichzeitig verlockend attraktiv ist. Dies ist, wie Sie wahrscheinlich bereits verstanden haben, die Position eines Full-Stack-Entwicklers. Es hat sich diesen kontroversen Ruf aus einer Reihe von Gründen erworben, die im Folgenden erörtert werden, aber kurz gesagt liegt alles daran, dass Entwickler und andere technische Spezialisten keinen Konsens darüber erzielen können, was ein echter Full-Stack-Entwickler sein sollte. Sowohl der Schwede als auch der Reaper.  Wer ist ein Full-Stack-Entwickler und wie wird man einer?  - 2

„Ein Full-Stack-Entwickler ist ein technischer Zauberer, der alle Programmiersprachen und Technologien kennt und außerdem wunderbar singt und tanzt.“

Ian Peters-Campbell ist
ein erfahrener Entwickler und Gründer des Softwareunternehmens Stickbuilt.

Wer ist ein Full-Stack-Entwickler?

Was ist also ein Full-Stack-Entwickler im herkömmlichen Sinne? Die gebräuchlichste Definition besagt, dass es sich hierbei um einen Spezialisten handelt, der für die Entwicklung aller Teile der Systemfunktionalität verantwortlich ist, einschließlich sowohl der Benutzerseite des Produkts (Frontend) als auch des internen Codes, der auf verteilten Servern ausgeführt wird (Backend). Wenn in einer Ausschreibung für eine offene Stelle die Formulierung „Full Stack“ vorkommt, bedeutet dies in der Regel, dass der Entwickler gleichzeitig über Kenntnisse und Fähigkeiten in der Backend- und Frontend-Entwicklung verfügen muss. Viele Unternehmen gehen jedoch noch weiter und meinen mit „Full Stack Developer“ einen Universalsoldaten, der nicht nur alle Komponenten eines Softwareprodukts entwickeln kann, sondern auch alles andere übernehmen kann, vom Produktmanagement bis zum Aufbau des Betriebs System auf Servern und Reparatur eines Bürodruckers. Tatsächlich muss ein Full-Stack-Entwickler in den meisten Fällen über ein angemessenes Maß an Kenntnissen über die Technologien verfügen, die für den erfolgreichen Abschluss des Projekts erforderlich sind. In diesem Fall bedeutet „Stack“ eine Sammlung von Softwaremodulen und -komponenten, die miteinander kombiniert werden, um die erforderliche Funktionalität zu erreichen. Sowohl der Schwede als auch der Reaper.  Wer ist ein Full-Stack-Entwickler und wie wird man einer?  - 3

Warum ist dieses Thema so umstritten?

Die Debatte darüber, was ein Full-Stack-Entwickler eigentlich sein sollte und ob es ein solches Biest überhaupt in ausreichender Menge gibt, um solche Spezialisten in eine eigene Gruppe zu unterteilen, wird schon seit geraumer Zeit geführt. Wie erfahrene Programmierer bemerken, flammte es mit neuer Kraft auf, nachdem Vertreter von Facebook zu Beginn seiner Gründung in den 2000er Jahren während einer Rede auf einer der Fachkonferenzen für Entwickler erklärten, dass sie nur und ausschließlich Full-Stack-Entwickler einstellen. „Wenn Sie die traditionellen Definitionen eines Full-Stack-Entwicklers verwirren, dann ist alles richtig. Das liegt daran, dass ein Full-Stack-Entwickler etwas Flüchtiges ist. Es gibt kein wissenschaftliches Modell, das beschreibt, was ein „Full Stack“ ist. Es gibt keine klare Möglichkeit, das Niveau eines Full-Stack-Entwicklers im Vergleich zu anderen ähnlichen Entwicklern zu messen. Der einzige Konsens in Bezug auf Full Stack besteht darin, dass sich niemand auf eine einheitliche Definition des Wesens dieses Phänomens einigen kann. Deshalb ist alles, was Sie zu diesem Thema lesen, nichts anderes als eine subjektive Meinung“, sagte Ryland Goldstein, ein erfahrener Softwareentwickler und -architekt. Sowohl der Schwede als auch der Reaper.  Wer ist ein Full-Stack-Entwickler und wie wird man einer?  - 4

Vier Säulen der Full-Stack-Entwicklung

Obwohl viele Experten argumentieren, dass ein Full-Stack-Entwickler ein umstrittenes Konzept ist, gibt es nicht weniger offene Stellen, ganz im Gegenteil. Schauen wir uns daher an, welche Kenntnisse in welchen Bereichen Sie in der Regel mitbringen müssen, um sich auf diese Art von Stelle zu bewerben.
  1. Frontend-Entwicklung.

    Typischerweise bezieht sich Frontend auf Webentwicklungstechnologien und Programmiersprachen wie HTML, CSS und JavaScript. Es umfasst auch JavaScript-Frameworks wie React und alle anderen Technologien im Zusammenhang mit der „Client“-Seite des Produkts.

    Wo kann man mit dem Studium beginnen:

    Sie können mit den Create React App- oder Gatsby- Frameworks beginnen , mit denen es ganz einfach ist, eine vollwertige React-Anwendung zu erstellen. Es ist eine gute Idee, CSS-Präprozessoren, grundlegende CSS-Tools wie CSS-in-JS und Tools wie Sass zu erlernen .

  2. Backend-Entwicklung.

    Das Backend umfasst den gesamten Code, der auf den Servern ausgeführt wird, einschließlich Anwendungen und APIs, die dafür sorgen, dass die Site funktioniert. Die wichtigsten Programmiersprachen für das Backend sind Java, Python, Ruby und andere. Darüber hinaus umfasst die Backend-Entwicklung auch die Datenbankverwaltung, für die SQL-Kenntnisse erforderlich sind.

    Wo kann man mit dem Studium beginnen:

    Zunächst empfiehlt es sich, zunächst die Kenntnisse in JavaScript zu vertiefen, da es in vielen Fällen eine Art Brücke zwischen Frontend und Backend darstellt. Insbesondere ist es eine gute Idee, NodeJS zu erlernen , eine auf der V8-Engine basierende Softwareplattform, die JavaScript von einer hochspezialisierten Sprache in eine Allzwecksprache umwandelt.

    Также для того, чтобы иметь максимально полную квалификацию в бэкенде, рекомендуется, помимо Java, постепенно осваивать такие языки программирования, Wie Python (в первую очередь), PHP и Ruby.

  3. Проджект-менеджмент.

    От проджект-менеджера, если вкратце, требуется управлять проектом, что включает множество задач, среди которых взаимодействие с клиентами, коллегами, сторонними подрядчиками и т.д. Словом все, что нужно для успешной реализации проекта. Сюда также входит планирование, принятие стратегических решений по работе над продуктом и т.д.

    С чего начать изучение:

    Для успешного развития в качестве проджект-менеджера не помешает изучить наиболее популярные инструменты в этой сфере. Основными можно назвать: GanttPRO (сервис для планирования и управления проектами с помощью диаграммы Ганта), Jira Software (популярная система для планирования и отслеживания agile-проектов), LiquidPlanner (инструмент для проджект-менеджмента в реальном времени), Basecamp (еще одна система управления проектами и совместной работы) и т.д.

  4. DevOps.

    Ну и, наконец, четвертым столпом фуллстек-девелопмента является знание DevOps. Обязанности DevOps-а могут сильно отличаться в зависимости от проекта, но Wie правило к ним относится все, что касается запуска программного Codeа в продакшн, включая, например, настройку Serverов, на которых будет функционировать приложение, и обеспечение слаженной работы специалистов команды вместе с техническими решениями, которые они используют.

    С чего начать изучение:

    Сфера DevOps также включает в себя довольно много всяких инструментов. Вот те, с изучения которых имеет смысл начинать: инструменты управления исходным Codeом (GitLab, GitHub, Bitbucket), CI/CD-инструменты (Ansible, Jenkins, Chef), тулзы для коммуникации и коллаборации (Slack и Microsoft Teams), а также сервисы облачных вычислений и хранения данных (AWS, Azure и GCP).

    Sowohl der Schwede als auch der Reaper.  Wer ist ein Full-Stack-Entwickler und wie wird man einer?  - 5

    Помимо вышеперечисленных четырех базовых составляющих “полного стека,” он не был бы действительно полным, если бы не включал в себя также мобильную разработку, базы данных и QA автоматизацию — истинный Full Stack разработчик разбирается и в этих технологиях тоже.

Зарплаты Full Stack разработчиков

Was die Gehälter von Full-Stack-Entwicklern angeht, sind sie im Durchschnitt nicht viel höher als die ihrer Kollegen mit einer spezifischeren Spezialisierung auf die Entwicklung. Laut PayScale beträgt das durchschnittliche Gehalt von Full-Stack-Entwicklern in den USA fast 75.000 US-Dollar pro Jahr . Gleichzeitig beträgt das Mindestgehalt (für Programmierer in Full-Stack-Positionen) etwa 46.000 US-Dollar pro Jahr und das Höchstgehalt etwa 114.000 US-Dollar pro Jahr. Was die ehemaligen UdSSR-Länder betrifft, so beträgt das durchschnittliche Gehalt von Full-Stack-Entwicklern in der Ukraine laut der Ressource Work.ua 35.000 Griwna (ca. 1.300 US-Dollar) pro Monat, während es in Kiew 45.000 Griwna (ca. 1.650 US-Dollar) beträgt. In Russland liegen diesen Daten zufolge die Gehälter von Full-Stack-Entwicklern im Durchschnitt zwischen 40.000 Rubel (530 US-Dollar) und 150.000 Rubel. (2000 $). Wenn wir über den weltweiten Durchschnitt sprechen, verdienen Spezialisten, die heute in der von uns in Betracht gezogenen Position arbeiten, etwa 45.000 US-Dollar pro Jahr. Und in Europa erhalten Full-Stack-Entwickler in Dänemark und Schweden die höchsten Gehälter. Sowohl der Schwede als auch der Reaper.  Wer ist ein Full-Stack-Entwickler und wie wird man einer?  - 6

Wie werde ich Full-Stack-Entwickler?

Lassen Sie uns nun kurz die Fähigkeiten, Fertigkeiten und Technologien durchgehen, die Sie beherrschen müssen, um sich selbstbewusst und ohne einen Anflug von Ironie als Full-Stack-Entwickler bezeichnen zu können.
  1. Programmiersprachen.

    Ein Full-Stack-Entwickler muss mehrere Programmiersprachen beherrschen. Zunächst einmal gibt es natürlich die wichtigsten: Java, PHP, C#, Python, Ruby, Perl usw. Mit einem Wort, die beliebtesten Sprachen, in denen die wichtigsten Geschäftsprozesse des Produkts höchstwahrscheinlich geschrieben werden. Natürlich wird es äußerst schwierig sein, eine ganze Reihe solcher Sprachen perfekt zu lernen. Sie müssen jedoch mindestens die Grammatik der Sprache beherrschen, die bei der Entwicklung eine wichtige Rolle spielen wird, und außerdem über gute Kenntnisse darüber verfügen, wie man ein Projekt auf Basis einer oder mehrerer Sprachen strukturiert, gestaltet, implementiert und testet.

  2. Frameworks und Codebibliotheken.

    Nun, zu guten Kenntnissen der wichtigsten Programmiersprachen gehört in den meisten Fällen die Fähigkeit, gängige Frameworks und Bibliotheken wie Java Spring, Hibernate, Python Django, PHP thinkphp, MyBatis und andere zu verwenden.

  3. Frontend-Technologien.

    Auch die Bedeutung von Kenntnissen über Frontend-Technologien ist für Full-Stack-Entwickler groß und nimmt mit der Zeit zu. Wenn heutzutage der Komfort und die Gesamthülle eines Produkts nicht weniger wichtig sind als die Funktionalität, liegt ein erheblicher Teil des Gesamterfolgs des Projekts auf den Schultern des Frontends. Für Full Stack müssen Sie zumindest grundlegende Front-End-Technologien kennen, also HTML5, CSS3 und JavaScript, sowie die wichtigsten Front-End-Frameworks und -Bibliotheken beherrschen, nämlich JQuery, LESS, SASS, AngularJS und die zuvor genannten Reagieren.

  4. Datenbank.

    Datenbanken sind ein weiterer wichtiger Bestandteil des „Full Stack“, da jedes Produkt oder jede Dienstleistung irgendwo Informationen speichern muss. Dementsprechend sollte ein Full-Stack-Entwickler mindestens einige der gängigsten Datenbanksysteme kennen und wissen, wie man mit ihnen arbeitet. Die beliebtesten Datenbanksysteme sind heute MySQL, MongoDB, Redis, Oracle, SQLServer und andere. Unter diesen ist MongoDB als Datenbank für verschiedene Internetprojekte am beliebtesten, MySQL und Oracle sind am beliebtesten für das Backend im Bereich Unternehmensprodukte und Redis wird häufig zum Caching und zur Verbesserung der Systemleistung verwendet.

  5. Management und Soft Skills.

    Aber um in diesem Bereich gute Ergebnisse zu erzielen, reicht es nicht aus, einfach nur eine Technologie oder Programmiersprache zu erlernen. Zu einem erfolgreichen Projektmanagement gehören viele Komponenten, darunter Zeitmanagement, Planung, gute Kommunikationsfähigkeiten und vieles mehr. Und das alles wird hauptsächlich durch Übung erworben.

  6. Grundkenntnisse im Design.

    Und schließlich liegen auch Kenntnisse im Design, nämlich UX/UI-Design, wenn auch auf einem grundlegenden Niveau, in der Kompetenz eines Full-Stack-Entwicklers.

    Hier ist übrigens eine gut zusammengestellte Roadmap , die die ganze Vielfalt der oben genannten Technologien grafisch darstellen soll.

Schlussfolgerungen und Ausblicke

Wie Sie aus all dem oben Gesagten schließen können, müssen Sie viel Zeit und Mühe aufwenden, um ein vollwertiger und vielleicht sogar ein Standard-Full-Stack-Entwickler zu werden. Durch ständiges und regelmäßiges Üben können Sie jedoch mit der Zeit viel komplexere Disziplinen beherrschen. Die Hauptsache ist, zu verstehen, wohin man gehen soll, an Schlüsselkompetenzen zu arbeiten und nicht mit dem Selbstlernen aufzuhören. Aber ob man solche Anstrengungen unternehmen muss, um ein erfolgreicher Full-Stack-Entwickler zu werden, ist eine andere Frage. Wenn wir über die Vor- und Nachteile einer solchen Arbeit sprechen, liegen die Nachteile auf der Hand – man muss viel lernen und viele verschiedene Dinge verstehen. Die Pluspunkte sind komplizierter. Ein Full-Stack-Entwickler hat im Vergleich zu hochspezialisierten Programmierern in der Regel die Möglichkeit, einen größeren Einfluss auf das Projekt als Ganzes zu nehmen. Bei den meisten steigert dies die Arbeitszufriedenheit und wiederum blüht und duftet die ChSV. Das Verständnis der gesamten Bandbreite an Technologien und Fähigkeiten, die für eine erfolgreiche Entwicklung erforderlich sind, eröffnet jedoch manchmal wirklich unbegrenzte Möglichkeiten. Man geht davon aus, dass Full-Stack-Entwickler am häufigsten zu erfolgreichen IT-Unternehmern werden. Und im Allgemeinen wird eine Person mit solchen Fähigkeiten sicherlich nicht ohne Arbeit dastehen , unabhängig von Krisen.
Kommentare
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION