
Salut, je m'appelle Dmitry, j'ai 35 ans. J'entendais souvent qu'un programmeur est un métier pour les jeunes. Néanmoins, l'été dernier, j'ai reçu une invitation à Yandex et j'ai déménagé pour travailler à Moscou.
Dans cet article, je voudrais aborder une question qui a été discutée à Habré plus d'une fois: dans quelle mesure est-il réaliste d'être programmeur après 35-40 ans? Pas un architecte de premier plan, pas un chef d'équipe, pas un chef de projet, mais un programmeur? Je ne suis pas d'accord avec l'opinion selon laquelle la programmation est le lot des jeunes. Je le considère dangereux et je vais maintenant vous expliquer pourquoi.
Il y a plusieurs raisons pour lesquelles ce mythe est basé. Examinons-les de plus près.
Explication 1. Nécessite des nerfs et des réactions.
On nous dit: «La programmation nécessite une énergie propre aux jeunes. À l'âge adulte, ce n'est tout simplement pas assez de force. "
Les programmeurs semblent être complimentés, les mettant sur le même plateau que les pilotes d'essai et les astronautes. Au fait, ce n'est pas par hasard que j'ai commencé à parler spécifiquement des pilotes. Mesdames et messieurs, regardez cet homme:

Il s'agit du célèbre Chesley Sullenberger, qui à 58 ans est devenu le héros des États-Unis, atterrissant un avion sur l'Hudson.
En toute justice, je dirai: dans la programmation, il y a vraiment des domaines où après quarante ans, c'est difficile, mais pas parce que tout est trop intelligent et difficile, mais à cause des spécificités de ces domaines. Par exemple, l'industrie du jeu, où les craquements se produisent souvent: les gens travaillent plus de 100 heures par semaine. Si chez les jeunes, cela peut encore être tiré, alors dans 40 ans, la santé ne le permettra probablement pas. Cependant, ici, la question est plus probable pour les entreprises qui pratiquent le crunch. Un programmeur peut écrire des jeux à 40 ans, mais pas dans un mode aussi épuisant et dangereux.
Explication 2. Apprenez, étudiez et étudiez à nouveau.
On nous dit: "Les connaissances du programmeur deviennent constamment obsolètes, et à l'âge de 30-35 ans, ce que vous avez enseigné à l'université n'est peut-être plus nécessaire pour personne, mais il est trop tard pour se recycler."
Encore une fois, cela semble flatteur. Le métier est tellement intellectuel et élitiste qu'il faut constamment être à la pointe du progrès.
Mais il existe d'autres professions où vous devez étudier en permanence. Et personne n'en conduit les 40 ans.
Rappelez-vous les avocats. La législation devient constamment obsolète. C’est la norme. De plus, leur situation est encore plus grave que celle des programmeurs. Avec la sortie de la norme C ++ 20, personne ne rejettera ceux qui ont écrit sur la norme précédente, ils ne nécessiteront pas qu'ils soient recyclés immédiatement. Mais l'avocat n'a pas le choix: avec la publication de la nouvelle édition du Code civil de la Fédération de Russie, il est obligé de le lire, de s'en souvenir et de l'utiliser.
On peut en dire autant des médecins: ils sont obligés de mettre constamment à jour leurs connaissances. Pour préciser quel âge un chirurgien doit étudier, par exemple, nous lirons l'avis du chirurgien cardiaque en chef Leo Boqueria:
Cela a toujours été le cas pour les médecins: les gens veulent être soignés par un médecin expérimenté. Les chirurgiens cardiaques, par exemple, en Amérique ne sont autorisés à la table qu'à l'âge de 37 ans, et cela aura lieu à l'âge de 40 ans en tant que chirurgien indépendant, c'est toujours une grande question. Cela vaut pour les médecins, les scientifiques, les enseignants, les travailleurs intellectuels ainsi que les travailleurs hautement qualifiés.
Faites attention aux «gens du travail intellectuel» - les programmeurs se rapportent-ils à eux, j'espère? Cela signifie que l'expérience est tout aussi importante que dans toute autre industrie intellectuelle.
Combien une personne peut-elle maîtriser de nouvelles choses à l'âge adulte? Je ne suis ni enseignant, ni psychologue, ni neuroscientifique qualifié pour répondre à cette question. Cependant, comme le montre la pratique, cela est tout à fait possible. Beaucoup de gens sont à la pointe du progrès même après quarante ans. Si nous nous distrayons de l'industrie informatique, nous pouvons rappeler le même Sergey Pavlovich Korolev. Il a fait les principaux développements après quarante-cinq ans - à peine uniquement sur la base des connaissances qu'il avait reçues avant l'âge de 30 ans.
Des connaissances implicites existent également. Ils ne peuvent pas être obtenus à l'université et glanés dans la littérature. Il faudra plusieurs années pour travailler (et parfois même plus d'une décennie) dans une industrie particulière. À 40 ans, un programmeur sait programmer, et aussi (s'il a participé aux projets dits désespérés) - comment ne pas programmer et quelles erreurs éviter lors du choix d'une architecture logicielle et de l'écriture de code.
Explication 3. Un programmeur à 35 ans ne donnera naissance à rien de valable
On nous dit: "Oui, vous pouvez être programmeur dans 35 à 40 ans, mais un tel programmeur ne fera rien de grave."
Ici, vous devez commencer par les bases - à partir de l'ordinateur lui-même. Il a été créé par Eckert et Mokley. Eckert avait alors 25 ans et Mokley n'avait que 35 ans.
Passons à ceux qui ont créé quelque chose de sérieux après 35 ans. Commençons par le célèbre et faisant autorité pour les programmeurs Donald Knuth. Il a développé la première version de son célèbre système TeX en 1978, à l'âge de 40 ans. Un peu plus tard, en 1981, il crée le concept de programmation alphabétisée.
Avance rapide vers des temps plus rapprochés. Martin Odersky est né en 1958 et a commencé à créer le langage Scala en 2001 - après plus de dix ans de travail sur les langages Pizza et Entonnoir (et sur le compilateur GJ, qui est devenu le prototype de javac).
Voici un autre exemple d'un programmeur qui était bon dans sa jeunesse et l'est resté dans sa vieillesse. Anders Halesberg a écrit la première version du compilateur Pascal en 1981, à 21 ans. Il a développé C # depuis 2000, alors qu'il avait un peu moins de quarante ans. Et en 2012 (à 62 ans), Halesberg a commencé à créer TypeScript. Par intérêt, j'avais l'habitude de regarder le dépôt de cette langue - il y a pas mal de commits d'Anders.
De plus, il y a une opinion que l'âge de 40 à 55 ans pour la profession d'ingénieur est le plus fructueux, car l'expérience s'est accumulée et rien ne distrait du travail: un homme a une famille, les enfants ont réussi à grandir ...
De plus, n'oubliez pas que tout découvreur n'est pas seulement une dizaine de géants, mais aussi une masse de bons ouvriers. Ils ont créé un ensemble d'infrastructures qui ont rendu possible le travail du découvreur. Quelqu'un écrit des pilotes pour les cartes vidéo, mais sans pilotes, les développeurs de jeux ne pourraient rien faire. Quelqu'un met en place des protocoles de mise en réseau, et sans eux, il est peu probable que les développeurs multijoueurs n'aient rien accompli. Tout cela est un travail énorme, qui pour la plupart n'est pas innovant et n'est souvent pas perçu comme quelque chose de sérieux dont on peut être fier. Cependant, sans ce travail, tous les géants n'auraient rien réussi.
Explication 4. N'êtes-vous toujours pas un leader?
On nous dit: «Un programmeur n'est que la première étape d'une carrière. À trente ans, au plus tard à trente-cinq ans, vous devriez vous lancer dans le leadership si vous avez des cerveaux et des capacités. »
C'est l'explication la plus choquante. Vous pouvez vous adonner à la programmation des jeunes, mais après trente ans, vous devez faire quelque chose de sérieux.
Il est facile de comprendre l'absurdité de ce point de vue, si vous essayez de l'appliquer à d'autres professions. Essayez de dire à un avocat de 50 ans: "Vous n'avez toujours pas votre propre cabinet d'avocats?" Essayez de dire à un chirurgien de 50 ans: "N'êtes-vous toujours pas le chef du service de chirurgie?" Enfin, essayez de dire à Sullenberger: «Avez-vous posé l'avion sur l'Hudson à l'âge de 58 ans? Les gens normaux à votre âge possèdent depuis longtemps leurs propres compagnies aériennes. »
Le programmeur et le chef de projet informatique sont des professions différentes, bien que les gestionnaires soient souvent issus de programmeurs.
Je considère la position «Programmeur est un métier pour les jeunes» très nuisible, car elle réduit considérablement la motivation. D'accord, il est assez difficile d'étudier dur pendant cinq ans dans une université si vous pensez que plus tard vous serez également programmeur pour un maximum de cinq ans. Imaginez qu'ils ont été obligés d'étudier en tant que médecin pendant huit ans, mais en même temps, ils déclarent: "Un médecin est une profession pour les jeunes, après trente ans, vous devez passer à des postes de direction." À quoi bon alors étudier dur toutes ces années?
D'où vient le mythe "Programmeur - une profession pour les jeunes"?
À un moment donné, j'ai essayé de découvrir et de mettre en évidence deux sources:
- Les débuts de la programmation. Ces mêmes années romantiques d'écriture de programmes ne sont même pas dans l'assembleur, mais dans les codes machine, et non pas dans un IDE normal, mais sur des cartes perforées. Ensuite, le développement de logiciels prenait beaucoup plus de temps que maintenant. Et j'admets volontiers que ce sont précisément les jeunes qui ont le plus facilement résisté à un tel processus.
Cependant, maintenant la situation a changé. Ce n'est déjà pas la cinquantaine dans la cour, le développement n'est pas si difficile. - Spécificités purement russes. Au cours des années zéro, l'âge d'or du Runet est arrivé: la sphère informatique s'est développée rapidement, tout a été automatisé, chaque entreprise a acquis son propre système d'automatisation des flux de travail, des bureaux étrangers sont arrivés dans le pays ... Ensuite, l'industrie s'est vraiment développée rapidement. Vous pouvez travailler en tant que programmeur pendant un maximum de cinq ans après un diplôme, puis devenir chef de projet. C'est peut-être alors que la conviction s'est développée que le programmeur est une étape transitoire de sa carrière.
Cependant, maintenant la situation a changé. Il y a plusieurs raisons à cela, mais la plus importante, à mon avis, est l'échec démographique. À Moscou, il m'est arrivé d'enseigner dans une université provinciale et de travailler dans des bureaux informatiques provinciaux. Je peux en témoigner personnellement: dans les régions déjà en 2010, la pénurie de personnel était très aiguë. Il y avait beaucoup moins de jeunes et les universités ne pouvaient pas mettre le bon nombre de programmeurs. Peut-être qu'à Moscou et à Pétersbourg, cela ne se ressent pas, mais dans d'autres villes, c'est le cas. Il n'y a personne pour remplacer tous les programmeurs de 30 ans. De toute évidence, ils ne peuvent pas partir pour d'autres postes - qui programme?
L'échec démographique a conduit au fait que la limite d'âge d'un programmeur dans les régions a commencé à augmenter imperceptiblement, mais régulièrement. Que cela se produise dans la capitale est une question ouverte.
Conseils aux étudiants en informatique
Comment vous relier à votre profession? Que faut-il apprendre pour qu'à trente-cinq ans vous ne soyez pas en reste et ne regrettiez pas le temps perdu à l'université? Voici mes pensées.
- Ne prenez pas votre profession comme temporaire - sinon vous aurez du mal. Le programmeur doit étudier dur, mais vous ne pouvez pas apprendre dur ce que vous ne considérez pas être les affaires de votre vie: quand vous prévoyez de lui donner cinq ans au plus, puis faire des choses vraiment intéressantes comme la gestion de projet. Décidez si vous allez vraiment être programmeur toute votre vie. Gardez à l'esprit que si vous percevez votre profession comme purement temporaire, la probabilité que vous la maîtrisiez augmente superficiellement.
- Ne négligez pas la programmation de bas niveau telle que l'assembleur et un langage tel que C / C ++, en particulier les pointeurs. Si vous ne maîtrisez pas cela, vous vous coupez automatiquement de plusieurs domaines de développement. L'exemple le plus frappant est le développement du système d'exploitation. S'il vous semble que c'est un domaine très niche, alors pensez à l'infographie pour les jeux: ça y est. Ou sur les pilotes pour les appareils modernes. Et des choses comme nginx seront problématiques à écrire. En termes de travail, n'oubliez pas que presque toutes les entreprises - que nous avons, à l'étranger - ont une tonne de microcontrôleurs, et il est peu probable qu'ils soient programmés en Python dans un avenir proche.
- Ne négligez pas la programmation fonctionnelle. Pendant longtemps, surtout dans les années 90, à l'apogée de la POO, ce style a semblé quelque peu académique, ce qui, en pratique, ne se retrouve pas dans le travail d'un programmeur ordinaire. Tout a changé depuis le milieu du zéro, et Twitter confirmera avec autorité que des systèmes très chargés peuvent être développés chez Scala. En général, les concepts de programmation fonctionnelle sont utilisés beaucoup plus largement que ne le pensent de nombreux étudiants. Presque tous les langages de programmation apparus dans le courant dominant au cours des 10 dernières années contiennent des éléments de programmation fonctionnelle. Ses concepts continueront à pénétrer dans divers domaines pendant longtemps. De moi-même, je recommande le cours d'Abelson et de Sassman. Il s'agit d'un cours classique du MIT des années 80, après quoi les langues modernes sont beaucoup mieux maîtrisées.
- Essayez-vous à la programmation sportive. Franchement: c'est le conseil le plus controversé. La programmation sportive, en raison de ses fonctionnalités (le programme passe un ensemble de tests automatisés avec une limite de temps, mais personne ne vérifie le style et la solidité de l'architecture) encourage l'écriture imprudente de code. Cependant, d'un autre côté, il n'est guère possible de trouver une connaissance plus intensive des algorithmes. Rappelez-vous combien de conférences sur les graphiques et les algorithmes de recherche que vous avez eues dans votre université? Deux ou trois? Combien de fois avez-vous appliqué ces connaissances? Aussi deux ou trois fois? Ne comparez pas avec l'expérience acquise dans la résolution de quelques centaines de problèmes. Comme dans tout travail, vous devenez un expert grâce à la pratique.
Au lieu d'une conclusion
Après trente-cinq ans, il est tout à fait possible d'être programmeur et d'obtenir un emploi - et pas seulement dans une usine pour prendre en charge l'ancien système, mais dans les entreprises informatiques modernes. L'essentiel est de se développer, de ne pas avoir peur du nouveau et d'aimer son métier.
Qu'en penses-tu? D'accord ou pas? Quelle expérience avez-vous?