Quand je commençais à peine à me tourner vers la programmation, et c'est vers 2012, mes tentatives de google quoi apprendre et où commencer se sont résumées aux réponses du stackoverflow alors inconnu pour moi et qui semblait presque la seule ressource en elle - Habré.
Depuis lors, beaucoup d'eau a coulé, mais regardez:
«Le top 5 des livres les plus impressionnants que chaque développeur de logiciels devrait lire» - article 2012.
Pour les paresseux, ils proposent de lire les livres «Perfect Code», «Programmer - Pragmatist», «How to Write Good Algorithms», en soumettant avec sauce: «Si vous pouviez remonter le temps et vous conseiller de lire un livre, quel genre de livres serait-ce? ", - et ci-après ce sont ceux que j'ai décrits.
Il est curieux, sans doute, de regarder aujourd'hui une ressource de 2012 et de remarquer 2 choses:
- La première est qu'environ les mêmes livres mentiront (et mentiront) aujourd'hui sur des pages avec des titres similaires.
- La seconde est que, tout à coup, il s'avère que, avant d'écrire de bons programmes, vous devez d'abord écrire un tas de mauvais code sans valeur. Vous ne pouvez pas d'abord lire Knut ou Horstman et après avoir lu, devenez un bon développeur si vous n'avez pas été mauvais. Ça ne marchera pas. Dans le sens opposé, cependant, tout fonctionne plutôt bien: vous devenez un mauvais développeur et, si vous voulez devenir bon, vous allez lire des auteurs reconnus et vous comprenez que tout ce que vous avez écrit auparavant est un tas de fichiers inutiles (ou insuffisamment utiles) dans un conteneur sur une jambe avec une charge de 20 requêtes par seconde, bien que vos «tests» aient montré que votre service devrait en contenir 500. Ensuite, vous commencez à comprendre, à vous enfoncer lentement dans vos règles logiques pour organiser le fonctionnement des applications, vous comprenez que «parallèle» et «depl e « - pas de mots magiques en temps de débogage après le temps de leur code et devenir dans tous les sens plus intelligent et la compréhension.
Que se passe-t-il ensuite?
Il s'avère que pendant que vous êtes allé pour une bière, le monde entier exécute déjà le code asynchrone de deux cents de ses microservices dans des conteneurs sous le cuber et stocke toutes ses données dans cassandra.
Probablement quelque chose qui mérite d'être appris à ce sujet. Et puis il s'avère que 80% des informations lues l'année précédente ne sont plus, approximativement, complètement adaptées. Aujourd'hui, ou plutôt hier, vous avez dû comprendre ce que sont les conteneurs et les orchestrateurs, comment travailler avec aws, la version 5 de Spring, Springboot - la seconde.
Probablement, l'étudiant qui a célébré la remise des diplômes hier après 4 ans de diplôme universitaire est choquant, pour le moins.
C'est bien si les universités (pas seulement Moscou et Saint-Pétersbourg) commencent soudainement à enseigner le Kotlin, la Scala, le Python3, le Java9, le Spring, le Rx ... mais si ce n'est pas le cas? - Dans la plupart des cas, la réponse à ma question est plus élevée - oui, ils n'enseignent certainement rien à l'université.
C'est parce que l'université, en tant que plate-forme pour le futur personnel des entreprises, à son avantage, ne prépare pas les étudiants à travailler ailleurs que dans son propre département, nos universités sont un tel dessin animé dans lequel une personne pensait vouloir un enseignement supérieur (parce que le processus recevoir, semble-t-il, devrait lui donner des connaissances pour un début de carrière réussi), mais, en fait, il avait vraiment besoin d'une bonne "éducation programmeur" spéciale de haute qualité, de sorte que beaucoup de codage et pas tellement de travail matan + moitié- années à regarder pour dire s'il veut entrer dans la science ou non.
Je sympathise sincèrement avec les étudiants qui ont découvert une fois que leurs connaissances étaient obsolètes avant même leur entrée à l'université.
Après 4 ans, dans le tas des entreprises, le code asynchrone, avec un tas de microservices, se transformera en légendes, qui commencent en quelque sorte dans le docker, sont équilibrés par l'orchestre et font un tas de choses importantes et intéressantes, mais ... Quel genre de tâches à donner à une personne qui comprend le fer a des idées sur l'érudition, perdu activement quelque chose dans le laboratoire, mais entendu quelque chose sur les flux et Rx quelque part?
Il semble que vous n'en donniez pas, vous devez le renvoyer chez lui pour étudier, ou appeler pour des cours gratuits ou payants.
Il se trouve également que l’étudiant d’hier s’est assis aujourd’hui pour obtenir des informations très à jour, a trié et a obtenu un emploi en juin et, après un an ou deux, il se débrouille déjà bien.
Cela arrive, mais rarement.
En conséquence, les éléments suivants
Si quelque chose ne change pas radicalement, les 5 prochaines années, chaque diplômé universitaire (s'il veut devenir développeur) aura besoin d'une autre année d'en haut (ou alors qu'il étudie dans une université, cela arrive souvent) pour évoluer un peu dans la situation réelle de la profession, pour apprendre, trouver un emploi et d'une manière ou d'une autre s'intégrer, au moins, dans les tâches des projets hérités.
Pour les entreprises, cela ne signifie rien de plus qu'un manque total de mains des programmeurs. Une entreprise qui se ressemble déjà (site Web, magasin, catalogue, jeu, application) ne peut se permettre de se développer dans de nouvelles directions, simplement à cause des freins du côté du développement. Et les développeurs ne sont pas à blâmer - il n'y a pas assez de gens.
La fin.
Merci de votre attention!