Fullstack - warum ist es cool oder wie man Freude an der Arbeit hat

Kürzlich brachen in Habré in den Kommentaren zu dem Artikel von Fulsteki ernsthafte Kämpfe aus - dies sind ewige MIDLs. Folgen Sie diesem Weg nicht, wenn Sie nicht leiden wollen

Ich werde versuchen, meinen Standpunkt auszudrücken, dass Full Stack wirklich cool ist und warum es gut ist, diesen Weg zu gehen.

Vielleicht hilft der folgende Text jemandem, diesen Weg einzuschlagen, und vielleicht schützt er umgekehrt fragile Köpfe davor. Im Allgemeinen willkommen bei Katze.

** AHTUNG! All das Folgende ist nicht die ultimative Wahrheit und meine subjektive Vision (dieser Welt).


Definieren wir zunächst die Begriffe, die im Folgenden erläutert werden, so, dass sie sich im selben Informationsfeld befinden, weil Das Konzept des Fullstacks ist für jeden unterschiedlich (genau wie die Unterteilung in Junior / Middle / Senior und andere Ranglisten).

Die gängigste Meinung ist, dass Fullstack ein Entwickler ist, der in einer Person von hinten nach vorne ganz alleine an einem Projekt arbeiten kann.

Einige von Ihnen sagen vielleicht: "Nun, in meinem Team kann die Mitte", was (gelinde gesagt) in den meisten Fällen falsch ist. Wenn der Front-End-Entwickler etwas im Backing-Code reparieren / hinzufügen kann, tiefer in Datenbankabfragen eintauchen kann, ist dies immer noch kein vollständiger Stapel.
Schließlich ist die Projektentwicklung nicht nur ein Back- und Front-Code, sondern baut / konfiguriert / unterstützt auch die Infrastruktur für das resultierende Produkt. Es reicht nicht aus, Code zu schreiben, es muss noch gemacht werden, um an dem Objekt zu arbeiten. Das Objekt kann ein 5-Dollar-VPS mit standardmäßigem LAMP und Cloud-Netzwerken wie AWS / Azure oder sogar Ihre eigene Infrastruktur sein, in der sich echte Hardware befindet, von Servern / Workstations bis hin zu Routern.

Wir sprechen daher nicht von "Fullstack-Dev", sondern von "Fullstack-General". Dies kann das Projekt von der Verhandlungsphase bis zur Unterzeichnung des Abschlussakts in eine Person einbeziehen.

Ich werde meine Finger nicht beugen und auflisten, was ein Fullstack-Spezialist wissen sollte und was nicht, weil Dies ist eine äußerst vage Liste. Am Ende gelingt es jemandem, „Projekte eines Tools“ einzureichen und zu bewerben, beispielsweise in Java mit NoSQL, aber heute werden wir nicht darüber sprechen.

Also, wie man ein Fullstack-Entwickler wird, muss man ein Fullstack werden oder ist es besser, sich in Richtung eines zu bewegen?

Gehen Sie kurz die Pluspunkte auf der Oberfläche durch.

Nachteile


Wahrscheinlich das offensichtlichste Minus - akzeptieren Sie als Tatsache, dass Sie hochspezialisierten Entwicklern in allem immer ( immer ) unterlegen sind - vom Besitz der modernsten Tools und Technologien bis zur Qualität des Codes. Wenn Sie ehrgeizig sind, möchten Sie immer auf dem neuesten Stand des Fortschritts sein, Ihre Finger beugen und die anderen als Scheiße betrachten - Fullstack ist nicht Ihr Weg.

Einen Job für Fullstack zu finden ist viel einfacher als für einen Entwickler einer Technologie. Es ist jedoch immer noch schwieriger, einen hochbezahlten Job zu finden. Paradox, was? In den allermeisten Fällen ist dies jedoch der Fall (es sei denn, wir möchten den vollständigen Stapel als vollständigen Stapel und nicht als „Java-Programmierer“ verwenden). Wenn die Leute von den ersten Arbeitstagen / -monaten an viel bezahlen, brauchen sie normalerweise nicht "sowohl einen Shvets als auch einen Schnitter und einen Kerl" - dort brauchen Sie ein weiteres gut geöltes Zahnrad in einem gemeinsamen Mechanismus, das genau eine Aufgabe erledigt und es gut macht. wie der timlid sagte . Natürlich gibt es Ausnahmen, aber es gibt nicht so viele, wie wir möchten.

Die Arbeit in einem Helm setzt die Endlichkeit der Ressourcen voraus. Das heißt, Sie können kein wirklich großes Softwareprodukt implementieren. Selbst wenn genügend Wissen vorhanden ist, bleibt nicht genügend Zeit. Sie können kein Killerspiel (kleine Indie-Entwicklungen sind gut, aber es geht nicht darum), das Betriebssystem oder Mega-Office-XXL veröffentlichen. Oft brennen Menschen aus, wenn sie ein zu großes Projekt übernommen haben, ohne ihre Stärke zu berechnen. Wenn Sie gerne Spiele machen oder an großen Projekten teilnehmen (normalerweise international) oder extrem, erhalten Sie direkt nach einer Universität (2-3 Jahre aktive Arbeit) in einem bestimmten Bereich ein gutes Gehalt - Sie sind auch nicht hier.

Du musst die ganze Zeit lernen. Ständig. Viel. Zu verschiedenen Dingen. Wenn Sie sich an die Jahre des Studiums mit einem Schauder erinnern, erregen Konferenzen und Webinare Ihre Abneigung, wenn Sie nicht bereit sind, stundenlang Megatonnen Informationsmüll zu lesen, nach nützlichen Partikeln zu suchen, wenn Sie sich über Technologien ärgern, die Sie unabhängig von Ihren Wünschen und Vorlieben verwalten können müssen - Sie benötigen den Fullstack-Pfad nicht. Sie müssen verstehen (und akzeptieren), dass hier etwas Zen benötigt wird. Sie müssen sich nur von dem wegziehen, was passiert, was nicht bei jedem der Fall ist.

Vergessen Sie niemals, dass eine Person tatsächlich ein One-Tasking-Vieh ist, aber Sie müssen ständig Multitasking-Modi emulieren (verschiedene Sprachen, verschiedene Entwicklungsumgebungen, verschiedene Ansätze, aber die Konzepte „Code schreiben“ und „Infrastruktur bereitstellen“ sind unterschiedlich). Glauben Sie mir, es ist zunächst sehr schwierig und führt zu geringer Geschwindigkeit und vielen Fehlern.

Und schließlich besteht immer die Gefahr, von der Situation als Geisel genommen zu werden und sich nicht mehr zu entwickeln, wenn am Arbeitsplatz keine Karriereleiter vorhanden sind. Und viele tausend potenziell hervorragende Arbeiter sitzen leider in kleinen Schreibtischen und tun absolut nichts, was sie vor 10 Jahren wollten. Ja, sie können es in Windows Server tun, in * nix, vielleicht in Java und Python, sie unterstützen einige Handwerke in C #, vor langer Zeit wurde das "Unternehmensportal" in PHP + JS geschrieben, aber es gibt keine weiteren Aufgaben, alles wird im Büro debuggt, alles arbeitet.
Und es lohnt sich, in 35-40 Jahren über die Grenze zu gehen, wenn der in die Menschen eingebaute Konservatismus einbezogen wird, multipliziert mit diesem gemütlichen Sumpf, der letztendlich zu einer Art „Koffer ohne Griff“ führt. Und diesen Teufelskreis zu durchbrechen, wird jedes Jahr schwieriger. Seien Sie vorsichtig bei einem solchen Zustand, denn ein Bart und ein Pullover wachsen noch schneller als die von engen Spezialisten, die seit 10 Jahren dasselbe schreiben.

Vielleicht genug Horrorfilme für heute, lass uns über die Profis sprechen


Du kannst alles machen. Na ja oder fast. Von einer Unternehmenswebsite zu einer mobilen Anwendung. Schließlich sind Sie nicht auf 1-2 Technologien beschränkt. Sie können Ihr Mikroimperium sogar in einem einzigen Intranet aufbauen.

Wenn Sie lange Zeit (und vor allem erfolgreich) im Fullstack gearbeitet haben, können Sie das Entwicklungsteam ganz einfach führen. Architekt werden. Diejenigen, die an der Spitze eines Großprojekts stehen.

Wenn Sie ein mürrischer Introvertierter sind, Autos lieben und keine Menschen mögen, verdienen Sie Geld an einem entfernten Ort. Wenn Sie mehrere Projekte gemächlich leiten, können Sie gutes Geld verdienen, ohne die Nerven für die Kommunikation mit dem Team aufzuwenden.

Wenn Sie gerne mit Menschen kommunizieren, haben Sie eine suspendierte (oder geschulte) Sprache (oder Sie sind nur ein schlauer Introvertierter mit Willenskraft) - Sie können mehr Geld verdienen, indem Sie in die Seele des Kunden eindringen.

Es versteht sich, dass Sie niemals ohne Arbeit bleiben werden. Wenn Sie der richtige Fullstack sind, sollten Sie in jeder Technologie die Mitte ziehen. Und selbst in der "Senior Middle Hand" (dies ist der Zeitpunkt, an dem Google keinen Teamleiter von der Straße übernimmt, sondern in einem mehr oder weniger ernsthaften Projekt - es ist einfach).

Und schließlich einige einfache und offensichtliche (leider nicht für jedermann und nicht immer) Tipps. Ich werde mich bewusst auf die Codebasis konzentrieren, nicht auf die Infrastruktur, um die Leser nicht zu langweilen.

Tipp eins. Lass deinen Stolz nicht über dich herrschen . Es ist sehr wichtig. Nehmen Sie an, dass es Menschen gibt, die etwas besser machen als Sie. Lerne wenn möglich von ihnen. Der Ansatz „Ihr seid alle Scheiße, aber ich bin ein Volltreffer, ich kann alles“ ist in der Wurzel falsch und trifft oft nicht nur die Eitelkeit, sondern auch den Geldbeutel. Wenn Sie sich selbst und Geld lieben - befolgen Sie diesen Rat.

Tipp zwei. Ein oder zwei Mal in ein paar Jahren wäre es schön, in einem Team von engen Spezialisten zu arbeiten. Dies verbessert die Fähigkeiten erheblich, da die Technologie nicht stillsteht, sondern mit der Geschwindigkeit einer Lokomotive rast und enge Spezialisten versuchen, im Trend zu sein. Wenn es eine solche Gelegenheit gibt - verpassen Sie sie nicht, lernen Sie viel, finden Sie viele Engpässe in Ihren alten Projekten und lassen Sie sie nicht in neuen zu.

Tipp drei. Versuchen Sie nicht, ALL YaP zu lernen. Erstens ist es einfach unmöglich und zweitens ist es nicht notwendig. Verwenden Sie in Ihren Projekten gut untersuchte Technologien, in denen Sie wirklich „Signor“ sind. Sie müssen neue Kernmaterialien untersuchen (zumindest für die allgemeine Entwicklung), aber Sie sollten sie in realen Projekten erst anwenden, wenn sie Ihnen wirklich klar werden. So direkt wie Sprachen und wie, mit welcher Qualität sie verwendet werden können, welche Vorteile kann der Wechsel beispielsweise von Java zu Kotlin oder Scala erzielen. Wenn Sie die Vorteile nicht verstehen, ist entweder die Sprache noch nicht ausgereift oder (höchstwahrscheinlich) Sie selbst. Der Ansatz "Geben Sie zwei Wochen Zeit, um Speck zu lesen, und ich werde über diese Scheiße schreiben" ist ein schlechter Ansatz.

Tipp vier. Wenn Sie sich den Code Ihrer Entwicklung vor 1-3 Jahren ansehen und ihn nicht beheben möchten, haben Sie höchstwahrscheinlich eine Krise wie die eines Entwicklers (oder einen in jeder Hinsicht idealen Code, der nicht vorkommt). Versuchen Sie es mit Tipp 2.

Tipp fünf. Entwickeln Sie von Anfang an einen Kundenstamm. Bauen Sie Ihre Autorität auf. Sie und Ihre Entwicklungen sollten es wissen. Es spielt keine Rolle, ob Sie im Unternehmen arbeiten oder freiberuflich an einem Remotestandort arbeiten. Wenn Sie keine Schwierigkeiten bei der Kommunikation mit Personen haben, sollten Sie Zeit mit der Kommunikation mit dem Kunden verbringen. Und doppelt notwendig - um direkt mit denen zu kommunizieren, die mit Ihrem Produkt arbeiten müssen. So können Sie die Architektur des zukünftigen Projekts viel besser durchdenken.

Tipp sieben. Werkzeuge und Aufgaben messen. Schieße nicht mit einer Kanone auf Spatzen. Es ist nicht erforderlich, eine lokale Infrastruktur mit Blackjack und Mädchen mit geringer sozialer Verantwortung für eine einseitige "Unternehmenswebsite" bereitzustellen, nur weil. dass Sie es anpassen können. Außerdem müssen Sie keine 5-MB-JS-Frameworks auf diese Site ziehen (nur weil Sie dies können).

Sie müssen nicht von hinten nach vorne ziehen, was sich auf der Rückseite befindet. Im Gegenteil, nicht. Denken Sie daran, wenn Sie plötzlich zu viele Krücken in einem Projekt haben, dessen technische Spezifikationen während der Entwicklung nicht 100.500 Mal geändert wurden, bedeutet dies, dass Sie die Architektur schlecht entworfen haben. Wenn möglich, korrigieren Sie es. Wenn nicht, berücksichtigen Sie dies in den folgenden Aufgaben.

Rat des achten. Prioritäten richtig setzen. Denken Sie daran, dass es Ihre Aufgabe ist, das Produkt zunächst bequem und so zuverlässig wie möglich zu gestalten. Selbst wenn Sie einen hypertrophierten Sinn für Schönheit haben, sollte Schönheit zuletzt eingeführt werden.

Puh Vielleicht reicht das aus, um anzufangen.

Vielen Dank für Ihre Aufmerksamkeit.

Oh ja, ich hätte es fast vergessen ... Lass srach beginnen!

Source: https://habr.com/ru/post/de430430/


All Articles