Il existe de telles choses dans les structures C #. C'est comme les classes, mais elles sont stockées sur la pile et ne fonctionnent pas par référence, mais par valeur. Dans le développement moyen, ils ne sont presque jamais utilisés. Les structures ont de nombreux avantages, et j'ai sincèrement trébuché sur le fait qu'elles peuvent être utilisées pour améliorer le code. Comme, regardez, nous pouvons utiliser les fonctionnalités des structures pour écrire du code plus sûr et plus tolérant aux pannes.
De telles absurdités peuvent être dites par une personne qui ne sait pas que les structures ont un constructeur par défaut vide qui ne peut pas être supprimé ou redéfini. Savez-vous pourquoi je ne le savais pas? Oui, car je ne les ai jamais utilisés. Après tout, j'ai une très bonne expérience de développement. Je ne veux pas lire de livres sur sisharp pendant longtemps. Pourquoi, si je suis payé quand même?
Avant mon premier emploi, et jusqu'à ce que je reçoive l'offre d'un signataire, j'apprenais comme si je n'étais pas moi-même. J'ai lu des livres, décompilé mes cours natifs dans Dotnet, harcelé les experts: «Comment ça marche? Et pourquoi? Comment feriez-vous cela? Qu'est-ce qui est le plus rapide? " Le jour où je n'ai pas appris de nouvelles choses a été reconnu comme un échec. Et dans chaque tâche, j'ai vu une opportunité d'apprendre. Il a apprécié les commentaires sur l'examen et a pu appeler un ami au milieu de la nuit pour discuter de la décision avec lui.
J'ai fait tout cela parce que je sentais que je n'étais pas assez bon, je ne comprenais rien. Il m'a semblé alors que je tirais mon rôle de June avec une grande extension, tout le monde était intelligent et compétent, et je voulais vraiment, vraiment devenir le même. Je pensais que si vous étudiez tout normalement, devenez un développeur senior, alors vous serez le genre de mec qui a proposé un projet le soir, l'a fait la nuit et l'a envoyé au marché le matin. Comprenez bien, à quoi peut rêver un garçon de 22 ans? Il rêve de devenir un gars cool.
À cette époque, mon bon ami, qui n'avait pas travaillé pendant une journée en tant que programmeur, a pris et obtenu un emploi de développeur senior à la Sberbank. Il a beaucoup étudié, fait ses projets et a donc pu passer l'examen de sécurité sociale. Avec son salaire de l'époque, il aurait pu embaucher dix personnes comme moi pour faire son travail, et j'ai été assez offensé.
Un de mes amis du même âge, une personne sans expérience, a pris et est devenu officiellement ce que je voulais devenir. Pas d'étapes intermédiaires stupides avec des années d'expérience et de formation. Après cela, je ne voulais plus étudier.
Au lieu d'une douzaine de livres, d'articles et de questions à des personnes intelligentes, j'ai commencé à perdre tout mon temps sur une loterie d'entretiens. Cela fonctionne élémentaire - le développeur doit savoir tellement de choses que cette connaissance ne peut être pleinement vérifiée, même théoriquement. Par conséquent, ils sont contrôlés de manière sélective. C'est comme un examen sur les billets, où vous n'en avez appris qu'un, mais vous pouvez passer à dix examens de ce type par jour - et au moins un, vous l'obtiendrez.
Donc ça a marché pour moi. J'ai eu une bonne question, j'ai repris la conversation - et maintenant le vieux Phil est déjà un développeur senior avec beaucoup d'argent. Cela fonctionne d'une manière très étrange. Je savais que j'avais touché un jackpot fou, et en même temps j'étais fier d'être enfin devenu signataire.
Le développement dans son ensemble est organisé de telle sorte que lorsque vous n'êtes pas assez compétent, rien ne se passe. Vous ne remarquerez pas beaucoup de problèmes, mais personne n'en mourra. Vous avez passé la sécurité sociale, et au nouvel emploi, personne n'essaie de prouver que vous avez été embauché en vain. Au contraire, si vous commencez à échouer, ils essaient de vous convaincre à vous et à eux-mêmes qu'il n'y a pas d'erreur ici. Même lorsque vous montrez une incompétence flagrante dans certains domaines, ils diront simplement: "D'accord, Phil a un écart avec l'architecture de la base de données, nous avons tous des lacunes." Et, peu importe comment, personne ne remarquera que vous avez 10 fois plus de tels écarts que d'autres.
Il est facile de confondre un ingénieur normal avec une personne qui n'est pas assez compétente, car tous les programmeurs craignent de ne pas être assez bons. Eh bien, écoutez, si nous embauchons un étudiant de première année pour devenir technicien et qu'il commence à se plaindre qu'il n'est pas assez bon, nous ne dirons pas que c'est le syndrome de l'imposteur, n'est-ce pas? Il n'est vraiment pas assez bon. Il n'a pas les connaissances nécessaires. Et les perspectives nécessaires. Il doit être congédié ou rétrogradé.
Mais non - le développeur dit qu'il est mauvais, et les gens autour de lui pensent que bien, une personne ne peut pas se comprendre et s'apprécier normalement, cela ne se produit pas. Et ils concluent qu'il a eu tort - c'est-à-dire qu'il est vraiment bon, en plus il est autocritique, ce qui signifie qu'il est encore meilleur. Et même si un miracle se produit et qu'un tour est remarqué à l'un des emplois - ce n'est pas encore un fait qu'ils seront licenciés, mais s'ils sont licenciés, vous en trouverez un nouveau, puis vous vous asseyez et vous direz à tout le monde que ce sont des abrutis qui ne comprennent pas à quel point vous êtes cool.
C'est comme ça que ma carrière s'est déroulée. Je me suis assis dans un endroit éloigné, j'ai fait semblant de travailler, et j'ai moi-même suivi un programme de sécurité sociale et tous les quelques mois, j'ai reçu une offre plus grosse.
J'ai été Senior Developer, Lead Developer, Consulting Expert, Team Lead. Il a travaillé avec des Russes, des Américains, des Indiens et des Vietnamiens. Construit des systèmes géants et de petites startups. J'ai appris aux gens à écrire du code, j'ai essayé d'inventer mes propres outils. Il a développé sa propre philosophie et approche. J'ai commencé à écrire un livre sur le développement.
Mais ce que j'ai oublié de faire, c'est d'apprendre à programmer.
Lorsque vous avez une note élevée, vous pouvez tout déléguer. D'accord, vous ne comprenez pas la base de données - laissez celui qui comprend le faire. Besoin d'optimiser vos performances? Je ne suis pas un expert, laissez Lyokha le faire. Je lui donnerai mon avis plus tard. À un moment donné, j'ai réalisé que je déléguais presque toutes les tâches que je ne savais pas comment résoudre à l'avance. Le cerveau est paresseux et il est bon que la vie vous garde généralement en forme. Mais si vous êtes un génie de la technologie autoproclamé qui a trompé le système, votre cerveau ne gardera rien en bon état. Tout le travail vraiment dur sera fait par des esclaves.
La triste réalité est que la plupart des tâches de développement peuvent être effectuées plus ou moins par n'importe lequel d'entre nous - et presque toujours personne n'a le temps ou le désir de déterminer à quel point vous l'avez fait. Les développeurs sont des personnes sans responsabilité. Personne ne nous demande les bogues que nous avons produits il y a un an, et avant, ils n'étaient généralement pas trouvés.
Il est admis dans l'industrie que les gros plans inventent des outils sympas à leur guise. Pour inventer quelque chose de vraiment nécessaire sur sisharp, il faut un vrai ingénieur qui a pris une bonne gorgée de merde, a trouvé une douleur difficile au cours de ses dix années d'expérience et a trouvé comment y remédier. J'ai donc inventé un outil pour les développeurs frontend. Je connais assez bien le texte dactylographié, mais je n'ai jamais travaillé avec un front propre, et donc, même ayant un concept complet dans ma tête et la volonté de le coder rapidement, je suis tombé sur le fait que je n'ai généralement aucune idée de comment créer et concevoir une lib front-end. Comment configurer les configurations, comment concevoir une API externe, comment et quels tests se connecter, quelle structure de fichiers utiliser sur le projet - oui, je ne savais rien. J'ai donc appelé mon ami du front et je l'ai persuadé de tout faire pour moi. Quand il l'a fait, mon intérêt pour le projet s'était déjà refroidi.Je cherchais un nouvel emploi.
Sur le bon, je brûlerais de honte, et j'irais tête baissée à l'entraînement - mais cela ne fonctionnera pas. Je suis un homme adulte, j'ai des choses plus importantes à faire que de parcourir les manuels. Et la vie ne l'exige pas. Si vous voulez juste vous reposer et réduire votre budget, vous devez tout faire exactement comme moi.
Mais je suis devenu un putain de développeur pour faire des choses intéressantes et importantes. Construire quelque chose, apporter quelque chose au monde. Résolvez un problème réel et important, soyez fier de la qualité de votre travail. Et j'en ai perdu toute chance. Et en retour, il a reçu un show-off incompréhensible, la possibilité de ne rien faire et un rêve américain inachevé. Et en plus - un énorme tas de cynisme tout simplement astronomique.
Merde à deux, je vais au moins comprendre quelque chose, apprendre ou faire quelque chose du tout, jusqu'à ce qu'ils me conduisent dans un coin. Et ils me conduiront dans ce coin pour deux. Je me sens comme une merde au travail, mais je n'ai pas de retour en arrière - et je l'ai accepté. Ils prennent, paient, ne conduisent pas - eh bien, au diable avec lui. J'étais assez comblée pour apprendre à vivre en acceptant que j'étais une merde.
Mais si je pouvais remonter le temps, j'aurais tout fait différemment. Vous pouvez devenir un très bon professionnel senior sans jouer à un signataire de 23 ans. Vous devez trouver un emploi par rang, et de préférence dans toutes sortes de Yandex, où votre expérience de trois ans avec Junov fera de vous un intermédiaire et un intermédiaire de trois ans - un signataire novice. Oui, pendant cinq ou six ans, vous recevrez moins que moi. Mais. Même un bas salaire en juin dans l'informatique est une bonne affaire. Vous aurez toujours le syndrome de l'imposteur, mais contrairement à moi, vous ne serez pas un imposteur. Et le plus important, c'est que je me suis alors heurté à mon plafond, et je ne deviendrai jamais un développeur qui définit l'industrie. Mais tu peux. Putain, tu fais de ton mieux.
La publicité
Serveurs virtuels puissants avec processeurs AMD EPYC pour les développeurs. Fréquence du cœur du processeur jusqu'à 3,4 GHz. La configuration maximale vous permettra d'obtenir le plein - 128 cœurs de processeur, 512 Go de RAM, 4000 Go de NVMe.