Wie man in einer sich verändernden Welt der Entwicklung überlebt

Mit Kollegen begann ein Gespräch über die ständige Selbstverbesserung eines Programmierers in seiner persönlichen Zeit. Sie müssen die ganze Zeit laufen, um an Ort und Stelle zu bleiben. Ich selbst liebe dieses Geschäft und trotz der Anwesenheit von drei Kindern schaffe ich es, neue Konzepte anzusprechen. Aber viele Menschen haben es einfach satt, herumzulaufen, und sie können verstanden werden.


Nehmen wir zum Beispiel die Welt des Frontends. Mit den Kenntnissen von JavaScript vor fünf Jahren können Sie jetzt keinen guten Job finden. Jetzt funktioniert RequireJS + Grunt nicht mehr. Sie müssen React, Webpack, modernes ES oder TypeScript usw. kennen. Und nächstes Jahr wird vieles wieder obsolet.


Gleichzeitig ist es nicht immer möglich, bei der Arbeit neues Wissen zu erlangen, da es oft Unmengen von Vermächtnissen gibt (wenn ein Produkt für längere Zeit geschnitten wird - dies ist unvermeidlich), die niemand „in Mode“ kopieren wird.


Was tun? Machen Sie nachts Haustierprojekte? Oder versuchen Sie, die Entwicklungsrichtung im Laufe der Zeit stabiler zu gestalten?


Besonders häufig stellt sich diese Frage bei Programmierern mit Kindern. Wie kann man langfristig auf dem Markt relevant bleiben, ohne all seine persönliche Zeit damit zu verbringen?


Gehen Sie zum Handbuch


Vorteile:


  1. Manchmal reicht es aus, die Technologie an der Spitze zu kennen (dies hängt von der Art der Führung, dem Teamleiter, dem technischen Leiter, dem CTO usw. ab - völlig unterschiedliche Verantwortlichkeiten).
  2. Sie können den technologischen Stack selbst auswählen.

Nachteile


  1. Vielleicht ist es möglich, die Details von Technologien nicht nur dem oberen Management zu kennen. Ein einfacher Teamleiter sollte alles wissen, Sie können nichts erreichen. Technischer Leiter sollte es am besten wissen.
  2. Diese Arbeit ist nicht für viele. Das Managen von Menschen ist ein völlig eigenständiger Beruf, der nichts mit Programmieren zu tun hat. Viele streben dort an, aber nachdem sie es kaum versucht haben, kehren sie glücklich zum Code zurück.
    Wenn eine der ermutigten Eigenschaften eines einfachen Programmierers darin besteht, sich auf eine schwierige Aufgabe zu konzentrieren, dann ist es umgekehrt: Sie jonglieren oft mit Aufgaben, ohne sich wirklich mit der Implementierung zu befassen (dafür ist einfach keine Zeit).
  3. Selbst wenn Sie den Stapel selbst auswählen, werden Sie keine radikalen Änderungen am Projekt vornehmen (von PHP auf Rust umschreiben), da hierfür noch keine Ressourcen vorhanden sind. Wenn Sie für alle „technischen Details“ verantwortlich sind, verstehen Sie dies mehr denn je.

Gehen Sie zu abergläubischen oder regulierten Unternehmen


Sie sagen, dass sie bis jetzt irgendwo in Banken und in der Ölindustrie in Java 7 sägen und keine Trauer kennen. Und solche Arbeit dort für weitere 100 Jahre.


Die Nachteile liegen ebenfalls auf der Hand: Langeweile, Bürokratie. Nun, wenn plötzlich ein stabiles Unternehmen plötzlich stirbt und dies auch passiert, wird es mit Java 7 auf dem Arbeitsmarkt schwierig.


Halbtote Sprachen


Es gibt Legenden über COBOL-Programmierer und ihre unmenschlichen Gehälter. Ich bin der festen Überzeugung: Obwohl die Nachfrage gering ist, gibt es überhaupt kein Angebot. Niemand wird Cobol lernen.


Nachteile: Alte Sprachen sind schrecklich und Werkzeuge für sie sind schrecklich. Die Aussichten sind nicht klar, es ist durchaus möglich, dass die Sprache bis zum Ende stirbt.


Entwickeln Sie den Kern einer Datenbank oder von Linux


Es gibt solche Produkte für alle Zeiten, in denen vor zwanzig Jahren in C etwas gesägt und gesägt wurde.


Von den Mängeln ist es bemerkenswert, dass sicheres Schreiben in C nicht einfach ist und nicht jeder die manuelle Speicherverwaltung mag. Vielleicht wird Rust eines Tages diese Nische besetzen, wenn auch sicherlich nicht im nächsten Jahrzehnt.


Es gibt nicht so viele offene Stellen in reinem C, und normalerweise bedeutet dies das Vorhandensein einer großen Anzahl anderer Kenntnisse neben der Sprache.


Änderung der Denkweise des Arbeitgebers


Dies ist aus einer Reihe von Pfeifenträumen, aber immer noch.


Wenn eine Person drei Sprachen und zwei Grundlagen kennt, wie viel Zeit braucht sie, um im vierten solchen zu schreiben? Sehr wenig. Trotzdem schreiben sie in offenen Stellen so etwas wie ein Mantra: "Erfahrung in Java aus drei Jahren." Ich schlage Arbeitgebern vor, folgendes zu schreiben: "Erfahrung in Java ab drei Jahren oder Abschluss einer Testaufgabe." Du solltest gehen, keine Kontrolleure.


Ich werde ein wenig auf den Fan werfen: Ein PHP-Shnik mit zehnjähriger Erfahrung, der OOP gut kennt und beispielsweise Typoskript geschrieben hat, kann leicht zu Java wechseln. Dort sind sogar die Schlüsselwörter gleich: Klasse, Schnittstelle, Erweiterungen, Implementierungen usw. Die Prinzipien von SOLID sind genau die gleichen.


Und vielleicht schreibt es in 2-3 Monaten nicht schlechter als ein 3-jähriger Arbeiterjavist. Da Sie bereits wissen, wie komplexe SQL-Abfragen geschrieben werden, kennen Sie den HTTP-Standard, das Layout und JavaScript und vieles mehr. Natürlich gibt es 100.500 Nuancen, Multithreading usw., aber wenn Sie sich in 10 Jahren an die Lösung von Problemen gewöhnt haben, werden Sie sich um alles kümmern. Lassen Sie mich einfach das Handbuch durchblättern.


Zuerst sollte jemand die Hände schlagen, aber das ist immer noch nicht vergleichbar mit einem Anfänger im Beruf.


Änderung der Aktivität


Es gibt viele verschiedene Aktivitäten im Zusammenhang mit der Entwicklung: Beratung, Entwickleranwalt und andere solche Dinge. Wenn die Sprache gesperrt ist, warum nicht?


Sie können Ihr eigenes Unternehmen gründen und alles tun. Die Wahrheit und das maximale Risiko: 9 von 10 solcher Initiativen brennen normalerweise aus. Nun, Selbstentwicklung hat hier normalerweise auch Priorität.


Ständiger Arbeitswechsel


Wenn Sie ein oder zwei Mal im Jahr die Arbeit wechseln, sind Sie auf dem Markt auf jeden Fall gefragt. Ich habe React bei einem Job, Postgres bei einem anderen usw. studiert. Es gibt jedoch auch viele Mängel. Eine Karriere ist schwieriger aufzubauen; die ganze Zeit müssen Sie zu einem neuen Team und Chefs mahlen; muss in Interviews erklären, warum du so ein "Flyer" bist


Kompromissweise


Wenn wir das Problem nicht lösen können, können wir es schwächen. Zum Beispiel, um zumindest einen Teil des Produktcodes usw. zu modernisieren, da Sie manchmal Änderungen finden können, die für das Unternehmen von Vorteil sind. Nun, auch bei den kleinen Dingen: Der Wechsel von Grunt + RequireJS zu Webpack + ES Imports ist eine Frage von einem Tag, und dann können Sie sicher modernes JavaScript verwenden.


Zeitmanagement


Wenn es interessant ist, neue Dinge zu lernen, aber keine Zeit ist, können Sie sich oft etwas einfallen lassen. Zum Beispiel versuche ich mit dem Zug nach St. Petersburg zu fahren (ich wohne in der Nähe von Pawlowsk). Dies ist ungefähr 40 Minuten Zeit dort und so viel zurück. Es ist durchaus möglich, ein paar „Tomaten“ zu einem interessanten Thema zu machen. Nun, oder lesen Sie einfach ein Buch. Jetzt schreibe ich zum Beispiel diesen Artikel)


Wenn ich mit dem Auto unterwegs bin, versuche ich, thematische Podcasts anzuhören, um meinen Horizont zu erweitern.


Anstelle von Ausgabe


Dieser Artikel ist kein Versuch, das Leben im Stil dummer Artikel a la "7 Wege zu lehren, reich zu werden, ohne etwas zu tun" zu lehren. Im Gegenteil, ich würde gerne etwas Nützliches aus den Kommentaren lernen. Also herzlich willkommen!

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


All Articles