
Hallo, mein Name ist Dmitry, ich bin 35 Jahre alt. Ich habe oft gehört, dass ein Programmierer ein Beruf für junge Leute ist. Trotzdem erhielt ich letzten Sommer eine Einladung nach Yandex und zog nach Moskau, um dort zu arbeiten.
In diesem Artikel möchte ich auf eine Frage eingehen, die bei Habré mehr als einmal diskutiert wurde: Wie realistisch ist es, nach 35 bis 40 Jahren Programmierer zu sein? Kein führender Architekt, kein Teamleiter, kein Projektmanager, sondern ein Programmierer? Ich stimme der Meinung nicht zu, dass das Programmieren die Menge junger Leute ist. Ich halte es für schädlich und jetzt werde ich Ihnen sagen warum.
Es gibt mehrere Gründe, auf denen dieser Mythos basiert. Schauen wir sie uns genauer an.
Erklärung 1. Erfordert Nerven und Reaktionen.
Uns wird gesagt: „Programmieren erfordert Energie, die für junge Menschen einzigartig ist. Im Erwachsenenalter ist das einfach nicht genug Kraft. "
Programmierer scheinen ein Kompliment zu machen und setzen sie mit Testpiloten und Astronauten auf das gleiche Brett. Übrigens war es kein Zufall, dass ich speziell über Piloten sprach. Meine Damen und Herren, sehen Sie sich diesen Mann an:

Dies ist der berühmte Chesley Sullenberger, der mit 58 Jahren zum Helden der Vereinigten Staaten wurde und ein Flugzeug auf dem Hudson landete.
Fairerweise sage ich: In der Programmierung gibt es wirklich Bereiche, in denen es nach vierzig schwierig ist, aber nicht, weil alles zu intelligent und schwierig ist, sondern aufgrund der Besonderheiten dieser Bereiche. Zum Beispiel die Spielebranche, in der es häufig zu Krisen kommt: Die Menschen arbeiten mehr als 100 Stunden pro Woche. Wenn dies in der Jugend immer noch gezogen werden kann, ist es in 40 Jahren unwahrscheinlich, dass die Gesundheit dies zulässt. Hier ist die Frage jedoch eher für Unternehmen, die Crunch praktizieren. Ein Programmierer kann Spiele im Alter von 40 Jahren schreiben, nur nicht in einem so anstrengenden und schädlichen Modus.
Erklärung 2. Lernen, lernen und wieder lernen.
Uns wird gesagt: "Das Wissen des Programmierers wird ständig veraltet, und im Alter von 30 bis 35 Jahren ist das, was Sie an der Universität unterrichtet haben, möglicherweise für niemanden mehr erforderlich, aber es ist zu spät, um es neu zu trainieren."
Wieder - es scheint schmeichelhaft. Der Beruf ist so intellektuell und elitär, dass man ständig auf dem neuesten Stand des Fortschritts sein muss.
Es gibt aber auch andere Berufe, in denen Sie kontinuierlich studieren müssen. Und niemand fährt die 40-Jährigen von dort aus.
Erinnern Sie sich an die Anwälte. Die Gesetzgebung wird ständig obsolet. Das ist die Norm. Darüber hinaus ist ihre Situation noch schlimmer als die der Programmierer. Mit der Veröffentlichung des C ++ 20-Standards wird niemand diejenigen entlassen, die über den vorherigen Standard geschrieben haben. Sie werden nicht verlangen, dass sie sofort umgeschult werden. Der Anwalt hat jedoch keine Wahl: Mit der Veröffentlichung der neuen Ausgabe des Zivilgesetzbuchs der Russischen Föderation ist er verpflichtet, diese zu lesen, sich zu erinnern und zu verwenden.
Das Gleiche gilt für Ärzte: Sie sind gezwungen, ihr Wissen ständig zu aktualisieren. Um zu verdeutlichen, in welchem Alter ein Chirurg studieren sollte, lesen wir beispielsweise die Meinung des Chef-Herzchirurgen des Landes, Leo Boqueria:
Dies war bei Ärzten zu jeder Zeit der Fall: Menschen möchten von einem erfahrenen Arzt behandelt werden. Herzchirurgen zum Beispiel dürfen in Amerika erst im Alter von 37 Jahren an den Tisch, und es wird im Alter von 40 Jahren als unabhängiger Chirurg stattfinden, dies ist immer noch eine große Frage. Dies gilt für Ärzte, Wissenschaftler, Lehrer, Menschen mit geistiger Arbeit sowie hochqualifizierte Arbeitskräfte.
Achten Sie auf die „Menschen der intellektuellen Arbeit“ - beziehen sich Programmierer hoffentlich auf sie? Dies bedeutet, dass Erfahrung genauso wichtig ist wie in jeder anderen intellektuellen Branche.
Wie viel kann eine Person im Erwachsenenalter neue Dinge meistern? Ich bin kein Lehrer, kein Psychologe und kein qualifizierter Neurowissenschaftler, um diese Frage zu beantworten. Wie die Praxis zeigt, ist dies jedoch durchaus möglich. Viele Menschen sind auch nach vierzig an der Spitze des Fortschritts. Wenn wir von der IT-Branche ablenken, können wir uns an denselben Sergey Pavlovich Korolev erinnern. Die wichtigsten Entwicklungen machte er nach fünfundvierzig - kaum allein aufgrund des Wissens, das er vor seinem 30. Lebensjahr erhalten hatte.
Es gibt auch implizites Wissen. Sie können nicht an der Universität erworben und aus der Literatur entnommen werden. Es wird mehrere Jahre dauern, um in einer bestimmten Branche zu arbeiten (und manchmal sogar mehr als ein Jahrzehnt). Im Alter von 40 Jahren weiß ein Programmierer, wie man programmiert und (wenn er an den sogenannten hoffnungslosen Projekten teilgenommen hat), wie man nicht programmiert und welche Fehler bei der Auswahl einer Softwarearchitektur und beim Schreiben von Code vermieden werden sollten.
Erklärung 3. Ein Programmierer mit 35 Jahren bringt nichts Wertvolles zur Welt
Uns wird gesagt: "Ja, Sie können in 35-40 Jahren Programmierer sein, aber ein solcher Programmierer wird nichts Ernstes tun."
Hier sollten Sie mit den Grundlagen beginnen - vom Computer selbst. Es wurde von Eckert und Mokley erstellt. Eckert war damals 25 und Mokley erst 35 Jahre alt.
Kommen wir zu denen, die nach 35 Jahren etwas Ernstes geschaffen haben. Beginnen wir mit dem berühmten und für Programmierer maßgeblichen Donald Knuth. Die erste Version seines berühmten TeX-Systems entwickelte er 1978, als er 40 Jahre alt war. Wenig später, 1981, schuf er das Konzept der literarischen Programmierung.
Schneller Vorlauf zu näheren Zeiten. Martin Odersky wurde 1958 geboren und begann 2001 mit der Erstellung der Scala-Sprache - nach mehr als zehnjähriger Arbeit an den Sprachen Pizza und Funnel (und am GJ-Compiler, der zum Prototyp von Javac wurde).
Hier ist ein weiteres Beispiel für einen Programmierer, der in seiner Jugend gut war und dies auch in seinem Alter blieb. Anders Halesberg schrieb 1981 im Alter von 21 Jahren die erste Version des Pascal-Compilers. Er entwickelte C # seit 2000, als er knapp vierzig war. Und 2012 (im Alter von 62 Jahren) begann Halesberg mit der Erstellung von TypeScript. Aus Interesse habe ich mir das Repository dieser Sprache angesehen - es gibt einige Commits von Anders.
Darüber hinaus gibt es die Meinung, dass das Alter von 40 bis 55 Jahren für den Ingenieurberuf am fruchtbarsten ist, da sich Erfahrungen angesammelt haben und nichts von der Arbeit ablenkt: Ein Mann hat eine Familie, Kinder sind erwachsen geworden ...
Vergessen Sie außerdem nicht, dass jeder Entdecker nicht nur ein Dutzend Riesen ist, sondern auch eine Masse guter Arbeiter. Sie schufen eine Reihe von Infrastrukturen, die die Arbeit des Entdeckers ermöglichten. Jemand schreibt Treiber für Grafikkarten, aber ohne Treiber könnten Spieleentwickler nichts tun. Jemand richtet Netzwerkprotokolle ein, und ohne sie ist es unwahrscheinlich, dass Multiplayer-Entwickler wieder etwas erreicht haben. All dies ist eine riesige Arbeit, die größtenteils nicht innovativ ist und oft nicht als etwas Ernstes angesehen wird, auf das man stolz sein kann. Ohne diese Arbeit hätten jedoch nicht alle Riesen etwas erreicht.
Erklärung 4. Sind Sie immer noch kein Anführer?
Uns wird gesagt: „Ein Programmierer ist nur der erste Schritt in einer Karriere. Um dreißig, spätestens um fünfunddreißig, sollten Sie in die Führung einsteigen, wenn Sie über Verstand und Fähigkeiten verfügen. “
Dies ist die beleidigendste Erklärung. Sie können sich gerne dem Programmieren von Jugendlichen hingeben, aber nach dreißig müssen Sie etwas Ernstes tun.
Es ist leicht, die Absurdität dieser Sichtweise zu verstehen, wenn Sie versuchen, sie auf andere Berufe anzuwenden. Versuchen Sie, zu einem 50-jährigen Anwalt zu sagen: "Sie haben noch keine eigene Anwaltskanzlei?" Versuchen Sie, einem 50-jährigen Chirurgen zu sagen: "Sind Sie immer noch nicht der Leiter der chirurgischen Abteilung?" Versuchen Sie schließlich, Sullenberger zu sagen: „Haben Sie das Flugzeug im Alter von 58 Jahren auf dem Hudson gelandet? Normale Menschen in Ihrem Alter besitzen seit langem ihre eigenen Fluggesellschaften. “
Programmierer und IT-Projektmanager sind unterschiedliche Berufe, obwohl Manager häufig aus Programmierern hervorgehen.
Ich halte die Position „Programmierer ist ein Beruf für junge Leute“ für sehr schädlich, da sie die Motivation erheblich verringert. Stimmen Sie zu, es ist ziemlich schwierig, fünf Jahre lang hart an einer Universität zu studieren, wenn Sie glauben, dass Sie später auch maximal fünf Jahre lang Programmierer sein werden. Stellen Sie sich vor, sie müssten seit acht Jahren als Arzt studieren, erklären aber gleichzeitig: „Ein Arzt ist ein Beruf für junge Menschen, nach dreißig müssen Sie in Führungspositionen wechseln.“ Was ist der Sinn, all die Jahre hart zu lernen?
Woher kommt der Mythos "Programmierer - ein Beruf für junge Leute"?
Einmal habe ich versucht, zwei Quellen herauszufinden und hervorzuheben:
- Die frühe Ära der Programmierung. Dieselben romantischen Jahre des Schreibens von Programmen finden sich nicht einmal im Assembler, sondern in Maschinencodes und nicht in einer normalen IDE, sondern auf Lochkarten. Damals war die Softwareentwicklung viel zeitaufwändiger als heute. Und ich gebe gerne zu, dass es genau die Jungen waren, die einem solchen Prozess am leichtesten standhielten.
Jetzt hat sich die Situation jedoch geändert. Es ist schon nicht die fünfziger Jahre auf dem Hof, die Entwicklung ist nicht so schwierig. - Rein russische Besonderheiten. In den null Jahren ist das goldene Zeitalter des Runet gekommen: Die IT-Sphäre ist schnell gewachsen, alles wurde automatisiert, jedes Unternehmen hat sein eigenes Workflow-Automatisierungssystem erworben, ausländische Büros sind ins Land gekommen ... Außerdem war es eine glorreiche Zeit der Siege bei Wettbewerben wie ACM. Dann hat sich die Branche wirklich rasant entwickelt. Sie können nach einem Diplom maximal fünf Jahre als Programmierer arbeiten und dann zu einem Projektmanager heranwachsen. Vielleicht entwickelte sich dann die Überzeugung, dass der Programmierer eine Übergangsphase in seiner Karriere ist.
Jetzt hat sich die Situation jedoch geändert. Dafür gibt es viele Gründe, aber der wichtigste ist meiner Meinung nach das demografische Versagen. In Moskau unterrichtete ich zufällig an einer Provinzuniversität und arbeitete in IT-Büros der Provinz. Ich kann persönlich bezeugen: In den Regionen war der Personalmangel bereits 2010 sehr akut. Es gab viel weniger Jugendliche, und die Universitäten konnten nicht die richtige Anzahl von Programmierern einstellen. Vielleicht ist dies in Moskau und Petersburg nicht zu spüren, aber in anderen Städten ist dies der Fall. Es gibt niemanden, der alle 30 Jahre alten Programmierer ersetzt. Offensichtlich können sie nicht für andere Positionen gehen - wer wird programmieren?
Das demografische Versagen hat dazu geführt, dass die Altersgrenze eines Programmierers in den Regionen unmerklich, aber stetig zu steigen begann. Ob dies in der Hauptstadt geschieht, ist eine offene Frage.
Tipps für IT-Studenten
Wie verhalte ich mich zu deinem Beruf? Was Sie lernen sollten, damit Sie mit fünfunddreißig nicht zurückbleiben und die verlorene Zeit an der Universität nicht bereuen? Hier sind meine Gedanken.
- Nehmen Sie Ihren Beruf nicht als vorübergehend - sonst fällt es Ihnen schwer. Der Programmierer muss hart lernen, aber Sie können nicht hart lernen, was Sie nicht für das Geschäft Ihres Lebens halten: wenn Sie ihm höchstens fünf Jahre Zeit geben und dann wirklich interessante Dinge wie Projektmanagement tun möchten. Entscheiden Sie, ob Sie wirklich Ihr ganzes Leben lang Programmierer werden. Denken Sie daran, dass die Wahrscheinlichkeit, dass Sie ihn oberflächlich beherrschen, steigt, wenn Sie Ihren Beruf als rein vorübergehend wahrnehmen.
- Vernachlässigen Sie nicht die einfache Programmierung wie Assembler und eine Sprache wie C / C ++, insbesondere Zeiger. Wenn Sie dies nicht beherrschen, schneiden Sie sich automatisch von einer Reihe von Entwicklungsbereichen ab. Das auffälligste Beispiel ist die Betriebssystementwicklung. Wenn es Ihnen so vorkommt, als wäre dies ein sehr Nischenbereich, dann denken Sie an Computergrafiken für Spiele: Da ist es. Oder über Treiber für moderne Geräte. Und Dinge wie Nginx werden problematisch zu schreiben sein. Vergessen Sie in Bezug auf die Arbeit nicht, dass es in fast jedem Unternehmen - das wir im Ausland haben - viele Mikrocontroller gibt, und es ist unwahrscheinlich, dass sie in naher Zukunft in Python programmiert werden.
- Vernachlässigen Sie nicht die funktionale Programmierung. Vor allem in den neunziger Jahren, in der Blütezeit von OOP, sah dieser Stil lange Zeit etwas akademisch aus, was in der Praxis in der Arbeit eines gewöhnlichen Programmierers nicht zu finden ist. Ab der Mitte der Null hat sich alles geändert, und Twitter wird maßgeblich bestätigen, dass bei Scala hoch ausgelastete Systeme entwickelt werden können. Im Allgemeinen werden die Konzepte der funktionalen Programmierung viel häufiger verwendet, als viele Studenten denken. Fast alle Programmiersprachen, die in den letzten 10 Jahren im Mainstream erschienen sind, enthalten Elemente der funktionalen Programmierung. Seine Konzepte werden noch lange in verschiedene Bereiche vordringen. Von mir selbst empfehle ich den Kurs von Abelson und Sassman. Dies ist ein klassischer MIT-Kurs der achtziger Jahre, nach dem moderne Sprachen viel besser beherrscht werden.
- Versuchen Sie sich im Sportprogramm. Ehrlich gesagt: Dies ist der umstrittenste Rat. Sportprogramme fördern aufgrund ihrer Funktionen (das Programm besteht eine Reihe automatisierter Tests mit zeitlicher Begrenzung, aber niemand überprüft den Stil und die Solidität der Architektur) das unachtsame Schreiben von Code. Andererseits ist es jedoch kaum möglich, die Algorithmen intensiver kennenzulernen. Erinnern Sie sich, wie viele Vorlesungen über Grafiken und Suchalgorithmen Sie an Ihrer Universität hatten? Zwei oder drei? Wie oft haben Sie dieses Wissen angewendet? Auch zwei oder drei Mal? Vergleichen Sie nicht mit den Erfahrungen, die Sie bei der Lösung einiger hundert Probleme gesammelt haben. Wie bei jeder Arbeit werden Sie durch Übung zum Experten.
Anstelle einer Schlussfolgerung
Nach fünfunddreißig ist es durchaus möglich, Programmierer zu sein und einen Job zu bekommen - und zwar nicht nur in einem Werk, um das alte System zu unterstützen, sondern auch in modernen IT-Unternehmen. Die Hauptsache ist, sich zu entwickeln, keine Angst vor dem Neuen zu haben und Ihren Job zu lieben.
Was denkst du? Zustimmen oder nicht? Welche Erfahrung hast du?