Peur et dégoût en informatique

Bonjour à tous. Je suis un programmeur régulier portant un manteau de personne âgée dans une entreprise d'épicerie régulière. Je suis engagé dans le développement commercial depuis environ 10 ans, j'ai commencé avec le développement de firmware pour de petits morceaux de fer, et maintenant je fais des backends de degrés de complexité variables principalement sur le Java / Kotlin désormais à la mode. J'ai choisi ce métier par vocation - en tant qu'écolier tout le temps je soudais quelque chose, programmé sur un morceau de papier (il n'y avait pas d'ordinateur) et tout ça. Viennent ensuite l'éducation de profil, le travail dans diverses entreprises - éminentes et ordinaires, étrangères et nationales. Par conséquent, je peux dire que je suis un programmeur idéologique. Et je n'ai jamais compris les gens qui attendent vendredi - je suis toujours allé travailler avec plaisir, peu importe ce qui se passait là-bas. C'était, du moins jusqu'à récemment. À partir d'un certain moment, je me suis «cassé» et je pouvais à peine me forcer à reprendre mon travail autrefois bien-aimé. Quelque chose me dérangeait auparavant, mais maintenant que mes pensées ont pris forme dans ma tête, je peux dire ce qui ne va pas dans mon monde informatique autrefois confortable.

Complexité excessive


Lorsque j'ai travaillé sur les glandes, j'ai vraiment aimé la propriété que je vois à travers le fonctionnement de cette chose - quels octets se déplacent, dans quelle zone de mémoire cela se produit et comment le compilateur a géré le code. Il y avait un sentiment de calme et de contrôle. Lorsque je suis passé au développement backend un peu plus tard, j'ai gloussé sur des configurations xml sans fin pour EJB ou le même ressort. Je saurais ce qui m'attend à l'avenir. Maintenant, je ne comprends tout simplement pas (et je désespérais déjà de comprendre) ce qui se passe à l'intérieur de mon attachement simple. Un tas de couches d'abstractions, des conteneurs dans des conteneurs, des tonnes de manuels, scripts, outils, versions, fichiers de configuration. Je n'ai toujours pas compris comment le projet est déployé, sur lequel je travaille depuis six mois maintenant. Et bien sûr, vous ne pouvez pas faire un monolithe, au moins dans la première étape. Assurez-vous de tout diviser immédiatement en microservices, car c'est très bien (lors de la conférence, ils ont dit qu'ils le faisaient dans l'entreprise X). Et bien sûr, nous ne pouvons pas utiliser le bon vieux client HTTP Apache pour accéder au service dont nous avons besoin toutes les quelques minutes, car ce client n'est pas asynchrone, et il n'a pas de limiteur de débit intégré, de mécanisme de contre-pression ou d'autres trucs fantaisistes. A ma question «Pourquoi tout cela est-il nécessaire pour une charge de 1 requête / min?» Je n'obtiens qu'un regard de reproche de la part de mes collègues, sur le front desquels apparaît l'inscription «Ici tu es stupide».

Un autre sujet est M. Javascript avec ses innombrables cadres. Honnêtement, je ne comprends pas comment tant de choses pourraient être inventées pour un outil qui a juste besoin de dessiner des formulaires sur des pages Web et d'envoyer de temps en temps une demande de backend. Heureusement que je fais le backend.

Sur l'exemple du frontend (et pas seulement), nous pouvons voir clairement comment nous marchons en rond: exécutons toute la logique côté serveur -> et maintenant côté client -> et maintenant encore sur le serveur et ainsi de suite à l'infini. Écrivons le frontend et le backend dans une seule langue -> et maintenant, allons dans différentes langues -> et recommençons dans une seule. Faisons des schémas pour les formats de données -> schémas uniquement pour les anciens -> et non, les schémas sont tout de même nécessaires. Un de mes acolytes vers le haut de sa bibliothèque open source de yaml au xml, tout simplement parce qu'il y a des schémas là-bas et c'est génial lorsque vous gloussez une énorme configuration, et un IDE connaissant XSD peut faire la moitié du travail pour vous. De ce qui précède, le problème suivant suit:

Trop


Outils, langages, livres, conférences, cadres, etc. Longtemps derrière ces jours où, pour le développement de logiciels, il suffisait de connaître un PL, quelques bibliothèques, et c'est tout. Maintenant, nous attendons des centaines de frameworks, avec une douzaine de langues (même dans le cadre d'un projet), à la mode et pas trop de SGBD, des courtiers de messages omniprésents, des centaines de kilomètres carrés de râteaux répartis et d'autres amusements. En règle générale, un programmeur moyen n'a pas le temps d'étudier tout cela au travail (à l'exception des outils qui sont déjà utilisés dans ses projets), car vous devez y travailler. Beaucoup de gens doivent passer du temps personnel à étudier ces technologies, bien que 90% des personnes étudiées ne seront probablement jamais utiles. J'ai moi-même cinq cents articles dans ma poche, un tas de vues vidéo invisibles de conférences, et chaque appel à Habr présage une visite obligatoire à McConaughey.

Mais même travailler dur avec une langue spécifique ou, par exemple, un SGBD dans votre entreprise ne vous permet parfois pas de rester dans la tendance, car les technologies deviennent obsolètes avant de pouvoir être appliquées. Même java sera désormais publié à la vitesse de Firefox.

Grâce au flux infini de connaissances en croissance rapide, beaucoup d'entre nous se sentent comme des étudiants ou des imposteurs éternels, quel que soit le nombre de systèmes que vous avez réellement construits. Et cela est très bénéfique pour les RH et les employeurs - vous pouvez facilement faire tomber votre demande de propositions avec quelques questions délicates. Ce genre de course de rats HR est politiquement correct appelé auto-développement.

Récemment, j'ai observé une tendance à imposer l'autorité d'un département commercial aux développeurs. Maintenant, en plus d'accomplir ses tâches principales, le développeur est obligé de comprendre le sujet au niveau d'un bon analyste et de penser généralement aux affaires. Laissez-moi tranquille, je ne sais pas comment augmenter votre taux de conversion

Entretiens d'embauche


Il s'agit de la discipline spéciale la plus importante et la plus appréciée. En effet, cela dépend si vous dormirez sur un vieux canapé écrasé dans une odnushka louée quelque part en dehors du périphérique de Moscou, ou si vous devrez vous cacher dans du carton allongé sur une canalisation principale sous un pont. Si au début de ma carrière l'interview était un peu une conversation de cœur à cœur, elle ressemble plus à un examen. Peut-être que cela est dû au fait qu'à cette époque, il n'y avait pas de salaires et d'énormes foules qui voulaient se lancer dans l'informatique ou simplement dans la mode, je ne sais pas. Mais le fait est que lorsque vous venez à un entretien pour le poste de développeur senior, avec une forte probabilité, vous rencontrerez des tâches assaisonnées de questions de quiz. «Eh bien, résolvez un problème sur un morceau de papier que nous avons volé hier avec leetetcode. Mauvais sur une unité dans la condition aux limites? Fuuuuu goof! Vous ne savez pas comment fonctionne% methodName% dans le% frameworkName% le plus en vogue. Qui l'a mis ici du tout? La sécurité! "Personne ne se soucie plus que votre tête soit arrangée différemment et vous ne pouvez pas souligner le regard méprisant et condescendant des nerds au nez haut rapidement et sans erreurs pour envelopper l'algorithme pour une tâche à laquelle vous n'avez pas encore eu le temps de penser. Comme le nombre de kilomètres de code et de systèmes de production derrière vous. Eh bien, au moins les questions du puzzle sont mortes, et merci pour cela.

Les informaticiens


Nous analyserons ici quelques sous-espèces de cette population, avec lesquelles nous devons le plus souvent faire face.

Développeurs et sympathisants. Contrairement aux stéréotypes - pour la plupart pas des nerds orthodoxes, mais des gars tout à fait normaux. Mais en règle générale, il n'y a rien à leur dire. Toutes les conversations en dehors des heures de travail se résument au travail. Mais sinon, si vous êtes obligé d'apprendre tout ce technomuth 24 heures sur 24? Mon conseil est de rester loin des gars en chemises à carreaux avec des sacs à dos, sinon vous pouvez gagner une dose mortelle d'ennui. Beaucoup d'entre eux vont travailler non pas pour travailler, mais pour jouer à des jouets. Inventons un vélo, fixons un nouveau cadre (et nous ratisserons l'enfer la nuit) et nous allons certainement tout laisser tomber à mi-chemin, car ce jouet est fatigué, d'ailleurs, nous en avons apporté de nouveaux. Mais ensuite, nous nous ferons sauter les joues et dirons lors de conférences comment nous avons vaincu le problème que nous avons nous-mêmes créé. PROFIT! Ces personnes sont tout aussi facilement conduites à toutes sortes de déchets, comme des «tâches intéressantes» et des «systèmes complexes» (il est impossible de construire une calculatrice sans une douzaine de microservices dans la culture informatique), ce qui signifie en termes humains ramasser dans la merde aigre d'un mammouth, mais pour moins d'argent, réduisant ainsi les salaires de l'industrie. Comme dans une blague "- Papa, qu'est-ce qu'on va manger aujourd'hui?" "Rien, mon fils, je travaille sur des tâches intéressantes dans une équipe amicale."

Chefs de projets. Honnêtement, pendant 10 ans, je n'ai pas compris qui sont les chefs de projet et pourquoi ils sont nécessaires. Dans des bureaux complètement différents, cela ressemblait à quelque chose comme ça: il y a un tas de tâches, trier ce qui est là et comment, et le faire avant telle ou telle date. Et je suis allé chercher un café au lait des hipsters au premier étage et écrire sur Instagram quelle journée difficile c'est aujourd'hui. Ce n'est qu'une fois que j'ai vu un mec qui a construit tous ces horaires ennuyeux, jonglé avec les tâches et était notre assistant, et pas seulement un gars cool qui ne pouvait pas programmer, mais je veux vraiment un ITP.

Serveurs. Chèrement aimé par de nombreuses catégories. Grâce à leur dumping, les joons sensés et idéologiques ne peuvent pas entrer dans l'industrie - à la recherche d'un long rouble, de nombreux travailleurs mobiles sont prêts à travailler gratuitement.

Nous garderons le silence sur le reste.

Entreprise


Le logiciel dans le monde moderne ne se fait pas simplement parce qu'il est amusant (bien que cela semble parfois). Cela se fait le plus souvent pour gagner des préposés - directement ou indirectement. Et en relation avec ce fait, nous pouvons diviser les gens en 2 catégories.

Ceux qui se soucient de la façon dont tout à l'intérieur est beau et correct.

Ceux qui se soucient de ce que sont ces gens qui se soucient de l'essence du produit qu'ils fabriquent.

En règle générale, le développeur contient ces deux catégories, juste dans des proportions différentes.

Pour les deux, j'ai une triste nouvelle.

Pour la première catégorie - du point de vue de faire de l'argent, peu importe comment la bonne architecture est choisie et la beauté du code. Tout comme toute votre sécurité, les meilleures pratiques, etc. Vous pouvez coller des béquilles, gagner des grands-mères, puis le manager qui a fait tout cela saute sur le bateau voisin "pour acquérir une nouvelle expérience", et l'équipe racks les écuries la nuit.

Pour la deuxième catégorie - 90% d'entre vous font ce que d'autres ont fait il y a longtemps. À de rares exceptions près, tous vos produits sont profondément secondaires. Néanmoins, des hommes d'affaires rusés tentent de donner une «idéologie» au prochain système de paiement, aux services bancaires en ligne et autres. J'ai vécu tout cela moi-même, et je dois dire qu'il est beaucoup plus facile de travailler lorsque vous avez une réponse claire à la question "pourquoi est-ce nécessaire?" Pour une raison quelconque, tous ces «changeurs» du monde oublient de dire qu'un changement dans le monde se produit comme un sous-produit de l'argent, et non l'inverse. Il est difficile de changer le monde quand un fusil de chasse du conseil d’administration est attaché à votre temple et qu’un nœud d’actionnaires est jeté autour de votre cou. Quant à moi, l'expression «nous travaillons pour gagner de l'argent» semble beaucoup plus honnête. Une autre chose est que si vous dites aux RH en ce moment que vous travaillez au travail pour de l'argent, alors 146% auront un regard perplexe et quelque chose comme "Vous ne nous convenez pas, nous avons besoin de personnes enthousiastes qui ont besoin de développement personnel et de tâches intéressantes".

La santé


Tout le monde sait que si vous soulevez des poids pendant une longue période, sans une préparation adéquate (ou même avec), vous êtes assuré d'avoir des problèmes de dos et d'articulations. On peut en dire autant du cerveau, mais c'est moins évident. Notre travail nécessite des rendements et une concentration élevés, même si nous refaisons simplement les tests sur la machine, en écoutant en arrière-plan un autre sondage du renseignement. Il me semble que le cerveau n'est tout simplement pas conçu pour de tels exploits quotidiens. J'ai travaillé sur divers emplois de merde, y compris physiques, et je peux dire que je ne me suis jamais senti aussi pressé et frustré que lorsque je quittais le bureau tous les jours. Beaucoup de mes 35+ collègues pensent de la même chose, et des questions comme «Et si vous avez 25 ans et épuisé?» Ou «Comment s'en sortir?» A commencé à apparaître sur les forums. Le temps qu'il faudra pour s'étirer dans ce mode est une question intéressante.

Total


Pendant 10 courtes années, la sphère informatique d'un petit monde confortable de nerds informatiques assis dans le sous-sol près du moniteur vacillant s'est transformée en une énorme industrie de battage publicitaire avec de gros salaires, du marketing et d'autres grandes nouvelles. La programmation n'est plus de l'ingénierie, mais juste un métier ennuyeux, dont le but principal est de transformer le govnokod et les béquilles en argent. Il ne reste plus qu'à attendre que tout ce colosse s'effondre sous son propre poids et nous reviendrons dans nos caves. Ou pas.

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


All Articles