En tant que développeur, je ne connais jamais ma propre valeur, car il n'y en a pas. Mais tout le système est construit comme s'il était


Chaque fois avant l'entretien de sécurité sociale, je me dis: "Calmement, vous n'avez pas besoin d'inventer, de finir et de mentir, vos connaissances et votre expérience suffisent pour travailler avec elles. Vous renforcerez n'importe quelle équipe, vous avez quelque chose à offrir et des lacunes dans vos connaissances - "S'ils savaient tout ce que vous saviez sur vos compétences, ils vous prendraient certainement." Mais quand l'entretien commence, j'arrête toujours d'y croire. Pendant les deux heures de l’entretien, je marche comme un champ de mines, pour que Dieu s’interdise de ne pas se brûler, que je ne sache pas quelque chose.


Pendant longtemps, j'ai pensé qu'un jour je saurais tout ce dont j'avais besoin. Je suis venu interviewer pour le poste de milieu, et j'ai moi-même pensé que je n'ai pas tenu le coup. Ils ont tellement à exiger, je ne connais pas toutes ces choses à un bon niveau. Ils m'ont emmené, mais l'entretien lui-même n'a fait que confirmer mes pensées. Les gars à l'arrière de Skype sont des gens très cool. Je ne sais pas comment, mais pendant une heure de conversation, ils parviennent à me plonger dans la tête la pensée que leurs compétences sont inaccessibles. Puis le mirage disparaît, je commence à travailler avec eux, et je comprends que nous sommes tout aussi stupides. Maintenant, ils ne savent pas les choses «élémentaires», maintenant je leur explique quelque chose. Maintenant, je parle habituellement à Signora. Tout est pareil ici, mais exagéré à tel point qu'il ressemble à la mauvaise blague de quelqu'un.


Lorsque vous vous préparez à un entretien de sécurité sociale à un niveau élevé, vous ne vous dites même pas que vous n'avez pas besoin de mentir. Au besoin. Ils ne vous auraient pas embauché s'ils savaient tout de vous, car eux-mêmes n'avaient pas encore admis qu'ils ne savaient pas. Vous acceptez les règles d'un jeu stupide et vous vous vantez de la sécurité sociale en réponse à leur spectacle, ils mentent sur leur sang-froid - et vous mentez encore plus cool. Alors vous savez ce qui va se passer. Ils sont stupides aussi, comme toi.


De toute évidence, quelque chose ne va pas ici. Il semble que nous ne pouvons accepter l'idée que la compétence est une chose relative, elle ne peut pas être comptée et mesurée. Et puisque les compétences en développement sont notre arme principale et notre réussite dans le monde, tout dépend d'eux, nous avons tous prétendu que cette chose éphémère était absolument réelle. Et regardez-le attentivement.


Dans un monde idéal, nous pourrions avoir un mécanisme, un test parfait, qui évaluera vos compétences sur une échelle de un à mille. Et les entreprises qui filtrent les candidats en fonction de ces estimations, recrutent les bons, paient exactement en fonction de leurs compétences. Cela ne fonctionne pas dans notre govnomir. Tout crétin essayant d'introduire un système d'évaluation des compétences ne fait que compliquer nos vies. Vous avez travaillé quelque part, étudié quelque chose, fait quelques morceaux sympas. Il arrive un moment où vous devez chercher du travail. Vous ouvrez des postes vacants et vous comprenez qu'en général vous n'avez aucune idée de qui vous êtes. Vous essayez différents niveaux - quelque part, il s'avère, quelque part non, et cela n'a rien à voir avec la demande de propositions et les exigences formelles pour le poste vacant. Vous commencez à penser: "Eh bien, d'accord, si j'ai été emmené au milieu à trois endroits, alors je suis maintenant au milieu." Puis le mois de juin arrive à votre équipe, qui tâtonne mieux. Et puis le signor qui fouille moins. Vous commencez à devenir confus, mais le fait est que le concept de "tâtonner pour le meilleur ou pour le pire" est trop compliqué. Lors de l'une des premières œuvres, nous avions un signataire de quarante ans venu aux tranchants des pros. J'étais absolument convaincu qu'il était un fond complet par rapport à moi. Maintenant, je comprends que pendant encore dix ans, je ne saurai pas et la moitié de ce qu'il savait alors. Je ne connaissais rien aux algorithmes, aux bases de données, aux structures de données ... Je viens de lire un livre sur la dernière sisharp, un code parfait et une brochure avec des modèles de conception. Cela m'a permis de regarder vers le bas sur toute l'équipe, en leur expliquant régulièrement comment écrire du code.


Je pense que le problème n'est pas seulement en moi. Si vous communiquez avec des développeurs, vous êtes à la recherche d'un emploi ou vous écrivez quelque chose dans un magazine geek - tout autour, faites juste qu'ils sont mesurés par une compétence. J'ai en quelque sorte écrit un article qui n'est pas du tout lié à ma qualité de développeur. Qu'en penses-tu? Il y avait une douzaine de commentaires dans le style de "Oui, ce crétin n'est pas un signataire, que diable écrit-il!?". La communauté elle-même l'est, mais le pire, c'est qu'elle se répercute sur la recherche d'emploi. J'ai eu une fois la chance de travailler dans une équipe où le leader a découpé les gens dans une interview technique, si leur CV attendu était plus élevé dans son CV que le sien. Et puis il était même indigné, genre, qu'est-ce que cette chmoshnik demande pour 3 pièces, et ne sait pas la chose "la plus élémentaire" que je connaisse? Ce n'est pas de l'envie ordinaire, c'est exactement l'histoire de l'habileté. L'idée qui se trouve dans nos têtes est qu'il existe une mesure exacte des compétences; le médecin généraliste devrait y être lié. Il n'y a tout simplement pas de métrique, donc pour la plupart d'entre nous, cette métrique fonctionne comme ceci: "Hmm, combien coûte cette personne - moi?"


Je ne suis plus moi-même appelé à mener des entretiens, j'applaudirai tout le monde sans discernement. Je ne comprends pas si une personne travaille en tant que développeur depuis trois ans, quels sont les problèmes techniques avec lui? Va ralentir l'équipe? Enseignez. Va poser des milliers de questions - nous répondrons. Écrira du code merdique? Revue


Une telle rhétorique est de la merde. Vous la comprenez toujours comme ceci: "Et puis que tout le monde soit la Signora, que chacun paie ce qu'il demande." Cela conduira au fait que les mauvais développeurs demanderont beaucoup d'argent et feront des projets importants, mais pas les bons. Ce sera très injuste et l'injustice est toujours mauvaise. Et le fait que la vie et le marché soient intrinsèquement injustes ne signifie pas que nous ne devons rien y faire. Den Abramov a écrit une fois un article dans lequel il admet qu'il ne sait pas beaucoup de choses qu'il devrait savoir, dans le bon sens du terme, et finalement il écrit quelque chose comme «Cela ne signifie pas que maintenant nous devons déprécier notre expérience , il suffit de bien comprendre les lacunes dans les connaissances. " Den a raison, mais cette simple recommandation est trop difficile à suivre.


La compétence du développeur est formée d'un grand nombre de choses: votre connaissance des YaPs, des plateformes, de l'expérience, du rake que vous avez assemblé, des systèmes que vous avez construits. Capacité à concevoir, compréhension de divers modèles et mécanismes dans un développement moderne et peu développé, les principes sur lesquels tout est construit. La façon dont vous travaillez avec les tâches, comment vous les décomposez et les comprenez. Votre don de prévoyance et la capacité de le combiner avec du pragmatisme. Votre capacité à anticiper l'émergence de nouveaux bugs et tâches.


La plupart de ces choses sont très difficiles à évaluer. Il y a des compétences plus ou moins claires, je peux comprendre à quel point je connais bien C #. Je ne donnerai pas un nombre de zéro à cent, il me semble que c'est supérieur à la moyenne - il n'y a pas de fonctionnalités dans YaP que je ne connais pas, je connais bien toutes les pratiques courantes d'écriture de code C #. Mais même si j'imagine que je suis ici, la connaissance de C # indépendamment des autres compétences n'est qu'un tas d'ordures. Comprendre la plate-forme .net ne fonctionnera pas.


L'expérience est facile à compter. Si les gens ont besoin d'un donneur avec cinq ans d'expérience, ils trouvent juste un mec qui a travaillé comme donneur pendant cinq ans. Mais il y a aussi des problèmes ici - la qualité et la portabilité de cette expérience sont des choses très controversées. Personne ne veut m'écouter lorsque j'essaie de trouver un développeur Xamarin, car j'ai travaillé trop longtemps avec Xamarin. Je les ai invités à m'interviewer en tant que développeur Xamarin, j'ai spécialement passé un mois à l'étudier avant l'entretien. Cela, et le fait que je fais presque la même chose sur WPF, et en général travaille avec C # et .net depuis 7 ans, ne signifie rien pour eux. Je crois qu’ils se trompent, mais je ne peux rien prouver, mon potentiel à travailler avec Xamarin est une chose incommensurable. L'expérience, puisqu'elle peut être comptée en années, est trop souvent trompeuse. Ils embauchent donc des imbéciles à des postes où vous devez réfléchir, car ils ont déjà travaillé dans de tels postes. L'ironie est que la seule métrique dénombrable est la plus trompeuse.


Avec les systèmes que vous avez construits, c'est un problème similaire. Vous ne les faites pas seuls, leur qualité n'est pas tellement liée à votre qualité. La compréhension des modèles est difficile à calculer. J'ai des histoires spéciales pour les conversations sur la façon dont j'ai utilisé différents modèles. Il n'y a également aucun lien avec la compétence.


Le pragmatisme, le don de la prévoyance et la capacité d'anticiper les bugs sont des choses qui ne peuvent pas être comptées. Il est impossible d'estimer ces compétences de manière approximative. D'une manière ou d'une autre, j'ai dû faire une tâche de test, dans la description de travail, il y avait un accent particulier sur la compréhension de SOLID, l'évolutivité du code, etc. Eh bien, je leur ai confié quelque chose comme un mot d'ordre sur tous les modèles de conception. Ils m'ont emmené avec plaisir, c'était mon seul travail (je me suis enfui après le test), où je n'étais absolument d'aucune utilité. Il n'y avait pas un seul motif dans leur code. Et ils n'ont pas observé de solide pendant une seconde. Je ne comprenais pas comment ils fonctionnaient, et pas une seconde de ma vie n'était une personne qui pouvait travailler sur leur projet.


Dans les entretiens, ces compétences sont testées en écoutant vos histoires de réussite. Il ne dira rien de vous en tant que développeur - seulement de votre capacité à raconter des histoires. Il est si important pour nous de définir une compétence que nous sommes prêts à prendre tout ce qui y est indirectement lié, à en faire une norme et à faire comme si cela fonctionnait.


La précision est nécessaire, mais elle ne l'est pas. Le développement est lié aux mathématiques, mais il ne peut pas être qualifié de science exacte. Ceci est similaire à mon argument avec Drugan - il me frotte tout le temps qu'il y a une meilleure musique dans le monde que Nirvana, et je pense qu'il est tout simplement ridicule avec cette "opinion" de lui. Eh bien, ici, nous nous asseyons et discutons pendant deux heures. Oui, j'ai certainement raison à 900%, mais il est impossible de le prouver. Parfois, vos capacités sont testées à l'aide de tâches abstraites que vous devez résoudre. Une bonne façon, mais ils vérifient en fait comment votre décision correspond à leur décision. Il y a une chance de tomber sur une personne super-adéquate qui verra une approche différente. Mais la façon dont vous avez résolu un problème ne dit pas grand-chose sur la façon dont vous résolvez généralement les problèmes. Après tout, les types de tâches en développement sont infinis. Vous devez faire beaucoup de choses très différentes, et lorsque les gens ont une tâche pour évaluer comment vous allez faire cela, ils, réalisant l'irréalité de cela, proposent des béquilles qui diront au moins quelque chose. Et si ces béquilles ne fonctionnent pas - personne ne le remarquera. C'est juste qu'un homme peut être malchanceux avec la tâche, et il sera renvoyé chez lui avec honte.


Quand je cherche du travail, toute ma vie dépend de ma qualité. Salaire, qualité et valeur du projet sur lequel je travaille, mon bien-être et mon estime de soi. Pour moi, ce n'est pas un problème d'apprendre quelque chose - de savoir quoi, et de savoir à quel moment vous pouvez vous considérer comme ayant étudié. S'ils me disent qu'il existe un mécanisme idéal pour déterminer la compétence de un à dix, et je dois deviner le mien - sinon ils me tireront dessus - je n'ai aucune idée de quoi répondre. Probablement environ deux. Oui, tu te souviens que j'ai un travail de signora? S'ils me demandent de deviner la compétence moyenne du Signor, je choisirai également un diable ou un triple. Sur dix. Mais lorsque vous cherchez du travail, il vous est proposé de choisir sur une échelle allant jusqu'à trois, où tout ce qui est inférieur à trois est la pauvreté et le travail sans but.


Je ne sais pas s’il est normal d’obtenir un emploi de dur à cuire quand tu es un surgeon? Ça m'énerve beaucoup quand les autres le font. Je semble mépriser ces gens. Serveurs sans valeur qui veulent prendre un emploi de vrais ingénieurs qui aiment leur travail. Je ne m'identifie pas à eux, car je sais avec certitude que j'aime le développement. Et je me dis souvent que je veux un poste supérieur pour avoir accès à des projets plus cool, gérer des processus et autres. Oui, je ne me crois pas. Pour me justifier, j'essaie d'en savoir plus. Mais bien sûr, je ne vais pas demander moins d’argent.



L'argent illustre parfaitement le problème. Il nous manque les qualités de signataire de mi-juin pour comprendre qui est le meilleur. Ici, le butin entre en jeu. Plus il y a de bons de commande, meilleur est le développeur. Les chiffres de l'offre sont importants pour moi car ils parlent plus de moi que je ne sais de moi. De plus, ils me disent non seulement. Quand ils me demandent ce que je demande tant - je dis que j'ai reçu le même montant au poste précédent, les questions disparaissent. Autrement dit, si j'accepte de travailler sur un projet intéressant pour quelques centimes, je commencerai immédiatement à être cité plus bas que maintenant. Mon bon ami reçoit de l'argent de l'espace et il a récemment décidé de trouver secrètement un deuxième emploi. Et il a expliqué qu'il avait besoin de stabilité. Une garantie qu'il sera toujours embauché pour un gros salaire. Et c'est plus facile à réaliser si vous êtes vraiment riche.


Le problème du marchandage sur la sécurité sociale est le symptôme le plus terrible d'une mauvaise évaluation des compétences des développeurs. Tout est mélangé en un tas, le montant qui vous sera offert dépend de votre qualité, de votre appréciation, de votre sexe et de votre budget. Combien ils ont besoin de vous en ce moment, dans quelle mesure vous négociez et connaissez votre prix. Quelle chance vous avez eu avec des questions lors d'un entretien technique, combien avez-vous obtenu auparavant. La demande de propositions d'une personne qui décide combien elle vous paiera est particulièrement bonne. Mais quand vous voyez l'offre finale, vous n'y pensez pas. Vous pensez que c'est ici - le chiffre dans lequel votre compétence a été convertie au taux du marché. Tout cela est exacerbé par la position du marché et du monde, que nous, en général, sommes foutus avec nos demandes. Et bien, j'ai deux enfants, j'envoie en enfer avec tous ceux qui disent que j'en aurai trop. Mais tout le monde ne peut pas faire ça.


Fait intéressant, malgré tous les problèmes, il y a suffisamment de cas où vous venez vous installer, racontez-leur votre expérience, ils disent que tout est cool, ils ont des tâches similaires, puis vous faites très bien leur travail. Je crois que tous ces cas sont, premièrement, de la chance, et deuxièmement, de l'injustice. En effet, au lieu de vous, ils pourraient prendre un mec qui ne sait pas comment parler si brusquement de leur expérience, et qui est en général plus habitué à résoudre des problèmes, mais il s'adaptera beaucoup mieux à leur projet. Il y a toujours un tel problème - ils peuvent ne pas vraiment vous prendre, simplement parce qu'ils ne vous aiment pas. Et ils y ont vraiment droit, car personne n'est obligé de travailler avec des gens qu'ils n'aiment pas. L'efficacité même du système est largement due au fait que même si tout le monde commence à mettre à niveau tous les candidats en général, personne ne mourra. Parce que les développeurs ont des normes moyennes.


Le système fonctionne, mais des questions demeurent. Combien d'argent doit être indiqué dans le CV? Est-il possible de monter sur la pile de quelqu'un d'autre sans perdre de terrain? Pourquoi mes connaissances stupides gagnent-elles plus que moi, et mes connaissances intelligentes reçoivent-elles moins? Pourquoi les célèbres développeurs sympas ne farfouillent pas dans ce que je fouille? Si je pense moi-même que je suis stupide - puis-je mentir, quoi non? Mais après tout, après-demain, je commencerai certainement à penser que je suis un super génie, pourquoi devrais-je arrêter? Si je ne suis souvent pas pris pour des compétences générales, dois-je prétendre que je suis une personne douce et amicale? Si je travaille déjà en tant que signataire avec un salaire énorme, alors vous ne pouvez pas aller moins cher? Ou cela signifie-t-il que je dois y aller et admettre honnêtement que je n'en vaut pas la peine? Pourquoi n'ai-je pas été invité à parler, jusqu'à ce que j'aie fini git dans les compétences clés? Pourquoi les employés vendent-ils des stagiaires de manière industrielle, comme Signor, et le monde ne s'effondre pas?


À différents moments, ces questions me tourmentaient, moi et mes amis. Cela fait probablement partie de notre travail, mais je pense que quelque chose doit être fait avec cela. Je sais avec certitude qu'il existe de meilleurs et de pires développeurs. Il y a de plus en moins d'expérience, il y a des intelligents et des idiots. Lorsque vous cherchez une personne pour rejoindre votre équipe, il y a de fortes chances que vous embauchiez quelqu'un qui créera plus de problèmes que de résolution. Et il y a une chance d'embaucher un homme qui viendra et améliorera considérablement tout. Et il est évident pour moi que l’indemnisation devrait dépendre de l’utilité d’une personne. Ne serait-ce que parce que les gens devraient être motivés pour étudier, penser et devenir meilleurs - il y a trop de processus dans le monde liés à l'informatique, tous les gens sur terre sont intéressés par le niveau moyen des développeurs qui augmente régulièrement.


Il y a une telle idée - l'employeur peut embaucher qui il veut et comme il veut. Je pense que non. Si vous embauchez cent imbéciles, payez-les trois fois le marché, dites que ce sont des super-mineurs - vous pouvez supposer que vous ne vous souciez pas de toute l'industrie. Ces gars-là vous quitteront un jour, accrocheront des nouilles aux oreilles d'autres employeurs, puis les ingénieurs nettoieront ensuite pendant des années la merde derrière eux dans le code. Si vous emmenez une personne très talentueuse dans un projet stupide et que vous demandez une compensation mendiante pour lui - considérez que vous avez détruit un bon développeur. Il continuera très probablement à travailler avec des connards comme vous tout au long de sa carrière. L'embauche interrompue crée un précédent et augmente le nombre d'embauches interrompues. Pour nous tous.


Le problème est de deux côtés - pour les employeurs et pour les candidats. C'est plus facile avec les locataires: je lis souvent des gens de l'industrie qui travaillent sérieusement à leurs processus d'embauche. Oui, ils sont jetés d'un extrême à l'autre, ils développent différentes méthodes de sécurité sociale, des types de tests. Ils enseignent leurs eychars en détail pour trier le CV. Tout cela fonctionne généralement un peu mieux que ceux qui ne fument pas du tout, et embauche des gens selon le même schéma idiot. Et voici la solution - si vous travaillez constamment à l'embauche, si toutes les personnes qui font cela dans l'industrie pensent et améliorent ce processus - cela deviendra sensiblement meilleur.


Pour les personnes à la recherche d'un emploi, tout est beaucoup plus compliqué. Dog-talk est un jeu, et vous pouvez très bien apprendre à jouer à ce jeu. Mais je ne sais pas comment évaluer vous-même vos compétences, comment comprendre à quel point vous êtes bon, sur quoi vous devez travailler et combien obtenir. J'ai rencontré des gens qui n'ont pas de tels problèmes. Mec vit pour lui-même, sait avec certitude qu'il est un milieu frontal, sait avec certitude qu'il se trouve X dans la ville de Y, et ne connaît pas le doute et la peur. Je ne comprends pas comment ils le font. J'ai essayé de comprendre qui je suis toute ma carrière. Des phrases sur les "vrais" développeurs qui doivent savoir connaître ou comprendre la prochaine merde, je les ai toujours pris au sérieux. Mais en sept ans, je n'ai pas réussi à faire correspondre la plupart de ces déclarations. En même temps, j'ai moi-même généré ce non-sens. Il a également dit à ses collègues de cette façon, comme si vous ne vous êtes pas donné la peine de comprendre le solide, vous n'avez pas du tout le droit d'écrire du code. Apparemment, les flatulences et les FAQ sont attachées à votre premier IDE. J'ai vu toutes sortes de tableaux qui décrivent ce que tel ou tel programmeur devrait savoir - et je me suis vérifié par rapport à eux. . , , , , . ? , . : - , , . — , , , . , — . , — .


, , , . , , , , , , . . , , //. , , . , , — , , — , , . , , , . , , — .

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


All Articles