J'ai réalisé plus d'une centaine d'entretiens, d'une part et d'autre part. Dans cet article, je voudrais partager mes expériences, observations et points intéressants. Peut-être que cela sauvera quelqu'un d'erreurs, de conclusions incorrectes et de temps perdu.
Quel genre d'oiseau est senior?
Ainsi, Senior Software Developer (aka Senior Developer) est un développeur avec une expérience significative (à partir de 5 ans) et une connaissance approfondie du développement de logiciels commerciaux. L'expérience de travail de développement pour l'argent est une condition nécessaire mais pas suffisante. Assurez-vous de participer à tout projet de niveau Entreprise, et s'il est également parfait dès le début, il donne une expérience inoubliable et une large perspective. Senior diffère de Middle principalement en ce qu'il peut mettre n'importe quelle tâche à l'état de production. Il sait clairement ce qui peut être fait et ce qui ne peut pas. Il est capable de saisir le moment où il est temps de refactoriser le logiciel ou simplement de le réécrire à partir de zéro. Écrit un code de qualité assez élevée sans erreurs critiques et architecturales.
C'est une erreur de supposer que Senior est plus rapide que Middle. Dans ma pratique, il y a eu de nombreux cas où Middle a effectué des tâches simples plus rapidement. Mais Senior travaille presque toujours mieux et plus rapidement sur des tâches complexes, lorsque vous pouvez appliquer l'expérience accumulée, éviter les erreurs et perdre du temps au stade du développement, de la maintenance et du développement.
L'objectif principal de l'entretien
Curieusement, mais parfois les intervieweurs ne suivent pas l'objectif principal de l'entretien - pour déterminer si le développeur sera utile à l'équipe et dans quelle mesure cet avantage est lié au coût de ce développeur. Au lieu de cela, l'intervieweur révèle souvent ce que le développeur ne sait pas, au lieu de comprendre ce qu'il sait et ce qu'il peut faire. En conséquence, il arrive à des conclusions erronées avec toutes les conséquences qui en découlent.
Qui devrait interviewer?
Ici, la seule bonne réponse est le futur chef immédiat de aka Team Lead. Une erreur courante consiste à interroger 2-3 personnes de la part de la personne interrogée, en posant des questions transversales et incohérentes. Tout cela crée un stress inutile pour la personne interrogée et empêche l'établissement de contacts psychologiques.
Atmosphère
L'interview est toujours un stress pour le développeur, pour quelqu'un de plus, pour quelqu'un de moins. Beaucoup d'entre eux ne savent pas se "vendre" qualitativement. Par conséquent, il est extrêmement important d'attirer un développeur et de transférer l'entretien à une communication amicale entre deux collègues. En effet, c'est dans une conversation amicale que vous pourrez découvrir les vrais détails de la sortie de votre emploi précédent et quel type de compétences la personne interrogée possède sans embellissement.
Apprenez les compétences
Comme je l’ai déjà écrit dans «Objectifs», il est important de découvrir les points forts de l’interviewé, avec quoi il a travaillé plus tôt, sur quoi il a mangé le chien, quelles approches il a utilisées, quel type d’équipement il a rencontré en cours de route.
Compétences clés pour un développeur senior:
- Des algorithmes
- Architecture, modèles de conception.
- Bases de données
- Exécution parallèle et synchronisation des processus.
- Bases des performances logicielles.
- Débogage et journalisation.
Un rôle important pour un développeur est de comprendre comment cela fonctionne, de connaître les concepts et les fonctionnalités, plutôt que de connaître un outil spécifique. Par exemple, s'il comprenait parfaitement MySQL, il ne lui serait pas difficile de traiter avec PostgreSQL. Dans la plupart des cas, il n'est pas difficile pour un développeur senior d'apprendre rapidement n'importe quel outil.
Très souvent, les personnes interrogées passent à des détails qui leur sont familiers, voici les cas de la pratique réelle:
- Comment utiliser SQL pour supprimer une ligne si plusieurs répondent aux critères de sélection?
- Quelle commande git annulera le dernier commit?
- Quelles méthodes d'un objet Object en Java connaissez-vous? Il peut y avoir d'autres options dans d'autres langues - quelque chose que l'intervieweur connaît bien.
Ces questions sont également de la catégorie des «jetons une pièce en l'air», leur connaissance ou leur ignorance ne permet pas de conclusions objectives sur l'expérience du développeur.
Il existe également une catégorie distincte d'amateurs «pleins d'esprit» de questions stupides et de tâches pour vérifier «l'intelligibilité», de vrais exemples:
- Pourquoi la trappe est-elle ronde?
- Comment verser exactement 4 litres d'eau dans un seau, s'il y a deux seaux - 3 et 5 litres?
- Résolvez des énigmes, par exemple, récupérez un cube de Rubik.
Le problème avec de telles questions est que non seulement les personnes ayant un faible QI sont éliminées, mais également une partie importante des gars intelligents qui ne sont tout simplement pas prêts pour de telles questions ou qui sont stressés. Ici, au lieu des gars intelligents, allez souvent plus loin ceux qui connaissent déjà les réponses et les solutions aux questions et tâches standard.
A la recherche de motivation
Il y a une telle question fréquemment posée du côté de la personne interrogée - "Pourquoi voulez-vous travailler avec nous?" Il est entendu que l'interviewé révélera honnêtement et ouvertement sa motivation - «Je veux plus d'argent» ou «Tout va mieux que là où je suis maintenant». Mais pour l'interviewé, une telle question peut provoquer un malentendu littéral et il répond rarement ouvertement. Par conséquent, il vaut mieux se renseigner sur la motivation avec des questions indirectes.
Quelles sont les motivations:
- L'argent . La motivation la plus populaire, mais il n'est souvent pas accepté de l'admettre. Cela fonctionne bien pour les familles et ceux qui ont l'habitude de dépenser beaucoup ou qui veulent vraiment épargner.
- Tâches intéressantes . Lorsque les gens aiment vraiment leur travail et qu'ils sont prêts à faire des heures supplémentaires et le week-end sans exiger de paiement supplémentaire.
- Améliorez de nouvelles compétences . L'industrie ne s'arrête pas et doit constamment les pomper pour rester en demande sur le marché du travail.
- Croissance de carrière . L'une des principales motivations pour travailler dans une startup.
- Entreprise bien connue ou hype . L'occasion de faire partie d'elle et de récolter les fruits de sa renommée.
Ce que vous ne devriez pas demander au développeur principal
- Fonctionnement de l'algorithme XXX rarement nécessaire (par exemple, tri rapide). Pourquoi demander ce qui n'est pas nécessaire dans le travail quotidien du développeur, mais google en 5 secondes?
- Possédez-vous un simple outil YYY (par exemple git). Je n'ai pas encore rencontré de développeur qui n'aurait pas maîtrisé les fonctionnalités de base de git nécessaires au travail quotidien en un jour ou deux.
- Savez-vous comment écrire des tests. Question avec un astérisque. Le processus de rédaction des tests est simple, mais apprendre à comprendre ce qui doit être testé et dans quelle mesure - cela demande une longue pratique. En fait, un seul testeur expérimenté dans une équipe qui peut contrôler ce processus de manière efficace suffit.
- Qu'est-ce que Agile / Kanban / Scrum. La méthodologie, au fur et à mesure du développement, est choisie par le chef d'équipe; en conséquence, les artistes ordinaires n'ont pas besoin de la connaître à fond et les principes de base sont compris en quelques jours.
Types de développeurs seniors
Pour comprendre la motivation et les capacités d'un développeur particulier, il est nécessaire de mettre en évidence les types inhérents à lui. J'ai identifié les types courants suivants:
- Créateur ou passionné . Il se précipite du travail lui-même, des tâches non triviales, où il faut inventer quelque chose. Parfois, les vélos sont obtenus, mais avec la croissance des compétences, ils produisent des produits de très haute qualité. La motivation principale est des projets et des tâches intéressants.
- La routine . Capable d'effectuer des travaux très routiniers sans compromettre la productivité dans le temps et sans nécessiter de motivation.
- Super-héros . Effectuez la tâche à tout prix, même s'il n'y a pas suffisamment de compétence et de temps. Il sculpte souvent de la merde et des bâtons, mais avec la croissance des compétences, on obtient quelque chose de plus ou moins décent. Très précieux pour les startups et les patrons exigeants.
- Compétent . Vous ne pouvez pas le tromper sur la balle, vous ne pouvez pas le tromper avec battage médiatique, il essaie toujours de comprendre l'essence de la technologie et des tâches, pense-t-il profondément et structurellement. Employé précieux dans tout projet.
- Superficiel . Ils saisissent des mots intelligents, des approches, étudient (superficiellement) des technologies et des outils de battage publicitaire et essaient d'appliquer tout cela dans le projet, en versant de grandes poignées, même s'il est possible d'en gérer de petits. Typiquement à l'aube d'une carrière et de camarades simplement motivés et impressionnables.
- Humeur d'otage . Il y a une humeur - le travail bat son plein de façon à n'apporter que des coquillages, il n'y a pas d'humeur - cela fera un regard réfléchi et philosophera plus que le travail.
- Carrière . Visiblement axé sur la croissance de carrière. Pas de croissance depuis plus d'un an - un candidat potentiel au départ.
- Conservateur . Un amoureux de la stabilité et des traditions, se réfère négativement à toutes ces petites choses, outils et approches nouveaux.
- Manimen . Cela fonctionne là où ils paient plus, donc la fidélité à l'entreprise est assez faible. Il aime les bonus, les bonus, les nishtyaki gratuits et autres motivations financières.
Souvent, un individu particulier combine plusieurs types dans différentes proportions. Au fil du temps, les types et leurs proportions chez l'homme changent, et il y a aussi des individus qui peuvent s'adapter aux tâches (typiques des super-héros). Il est à noter qu'avec l'âge, la part des conservateurs augmente dans beaucoup, le créateur peut s'épuiser et le superficiel peut devenir un compétent.
État psychologique
Malheureusement, les développeurs seniors développent parfois de mauvaises compétences et leur caractère peut se détériorer, ce qui complique grandement la compréhension mutuelle et le travail d'équipe efficace.
Il existe souvent de telles conditions:
- La vie est la décadence . Parfois, il arrive que le code écrit ne soit pas mis en production pour une raison quelconque (par exemple, pour des décisions commerciales) ou ne vive pas longtemps (démarrage ou gestion inepte). C'est sérieusement démoralisant avec toutes les conséquences. Cela ne doit pas être confondu avec un cynisme ordinaire sain en raison de l'expérience de travail.
- Zen compris . Au fil des ans, dans un projet d'entreprise statique, un développeur l'étudie de haut en bas et il a le sentiment qu'il est désormais un spécialiste rare. En fait, ses compétences en dehors de ce projet ne coûtent presque rien, il y a une réévaluation de ses capacités par le développeur.
- Sous-estimé et incertain . Une série de projets infructueux, une mauvaise gestion et d'autres risques font que le développeur doute de ses capacités et de ses compétences, bien qu'en réalité il puisse s'avérer être un employé très compétent et précieux. Se sous-estime souvent en termes de salaire et / ou de poste.
- Surévalué . Contrairement aux personnes sous-estimées et incertaines, cet individu a attrapé un projet ou une série réussie, qui a été extrêmement réussi et sur cette vague surestime considérablement ses capacités et capacités.
Mais qu'en est-il de la tâche de test?
Le problème dans la tâche de test court (2-3 heures) est que selon ses résultats, il est impossible de tirer des conclusions définitives si l'auteur a de l'expérience dans le développement du niveau senior ou non. Avec le même succès, vous pouvez simplement lancer une pièce en l'air.
Conclusions
Selon les résultats de l'entretien, une impression objective du développeur devrait se former:
- Quelles sont ses forces.
- Comment peut-il renforcer l'équipe.
- De combien de temps at-il besoin pour atteindre la "vitesse de croisière".
- Combien le sn souhaité correspond aux points ci-dessus.
- Y a-t-il un contact psychologique et une compatibilité avec l'équipe?
Si, pour une raison quelconque, il n'est pas possible de répondre en toute confiance à toutes ces questions, vous pouvez effectuer une autre série d'entretiens ou refuser le candidat. Le prochain tour peut consister en n'importe quelle tâche spécifique qui révélera les informations manquantes, par exemple - une demi-journée de codage directement aux entreprises payées à un taux moyen.
PS Tous les points d'un article ne peuvent pas être décrits, donc si vous avez des questions ou souhaitez discuter de quelque chose - écrivez dans les commentaires ou par
e -
mail .