Combien d'entretiens techniques avez-vous eu dans votre vie?
Au cours des cinq dernières années, j'ai visité 35 entretiens techniques de tous types et spécificités imaginables - des startups du Kazakhstan pour l'achat collectif de viande pour l'hiver aux services de fintech allemands et américains et aux banques; avec des biais dans la programmation, la distribution et la gestion; à distance et au bureau; limité et illimité dans le temps; stressant et détendu, dans différentes langues.
Ceci, couplé à environ 20 entretiens que j'ai moi-même menés en tant qu'employeur, suffit à
devenir le roi des entretiens pour faire l'observation suivante (au départ totalement non évidente) et m'y établir: je suis convaincu que cela est largement dû au nombre d'entretiens qui commencent à ressembler une habitude marginale, j'ai étudié ma pile professionnellement et suis devenu un spécialiste de la compétition malgré le fait qu'avant j'avais déjà travaillé 10 ans dans le développement web.
Cet article s'adresse aux programmeurs qui sont au début du chemin et qui n'ont pas encore épuisé les connaissances. Dans ce document, je souhaite développer la thèse sur les énormes avantages pédagogiques des tâches de test et des questions techniques posées pour les entretiens - et inviter tout le monde à mon bot de télégramme fraîchement écrit
ActualizeBot , où, à mon avis, vous pouvez passer par un entretien technique au moins tous les jours jusqu'à la fin. Et pour qu'ils ne se terminent pas, vous pouvez également partager une tâche technique intéressante, une question ou une situation utile / ludique vécue lors d'un entretien.
Je vais vous en dire plus sur le bot ci-dessous, essayons d'abord de comprendre pourquoi il est si important de connaître et de comprendre les réponses à ces questions et tâches techniques, même si vous avez réussi à couper des projets indépendants pendant des années.
Pourquoi la qualité de nos connaissances fondamentales laisse-t-elle tant à désirer?
Les entretiens techniques, si vous n'êtes pas encore devenu le roi des entretiens, sont un sérieux stress pour le corps, ainsi qu'une recherche d'emploi en général - que vous soyez un spécialiste débutant, un switcher, ou un développeur qui a longtemps travaillé au même endroit (et pour une «longue période» dans notre temps descendra un an).
Dans de nombreuses interviews, ce stress a un facteur humain aggravant. Votre intervieweur n'est peut-être pas Alena Vladimirskaya, mais une programmeuse ordinaire, de qui il est difficile d'attendre des tâches adéquates et leur évaluation ou un chef d'équipe hardcore qui attendra un moment pour faire baisser toute votre sévérité à vos yeux, posant la question: Qu'est-ce pour vous agile!?
Une fois, sans donner la réponse nécessaire, mais, comme vous le savez, imprévisible à cette question, je me suis retrouvé sans offre, ce dont je suis extrêmement heureux.
En essayant d'éviter ce stress et les mouvements inutiles en général, nous nous éloignons non seulement de la forte exposition de notre ignorance de certaines caractéristiques de base de la langue, mais aussi de la réduire un peu.
Le problème est qu'en pratique, une telle classe de tâches ne nous suffit pas.
Tout développeur qui a dû travailler à plusieurs endroits confirmera que les tâches fondamentales ou créatives posées dans l'entretien ont rarement à voir avec ce que le programmeur traite dans la vie réelle - vous n'avez pas besoin de récursions, de graphiques ou de systèmes de contrôle d'ascenseur asynchrones sur la planète avec gravité négative dans l'autre bras de la galaxie. Désolé.
En ce qui concerne mon JavaScript natif, il y a un bon exemple - si React.JS n'était pas apparu, 98% des programmeurs JavaScript auraient réussi à vivre béatement sans savoir ce qu'est la liaison - plus de 20 ans après son apparition - et continueraient d'être perplexes. obtenir des questions sur lui lors des entretiens, et seuls ceux qui inventent toutes ces bibliothèques, cadres et modules très abstraits continueraient à travailler avec lui. Aujourd'hui, grâce à la réaction, ce nombre a été réduit, selon les sentiments, à 97%.
De toute évidence, voyant "l'isolement des réalités" de ces tâches, de nombreux développeurs les ignorent ou perdent du temps pour s'y plonger - et continuent de s'engager dans une routine quotidienne, c'est-à-dire, au sens figuré, de marcher le long du champ de mines pour la production non seulement sans détecteur de mines, mais aussi sachant qu'ils sont dans un champ de mines.
Ce qui se heurte à un manque de connaissances fondamentales de la langue
La réponse à cette question semble banale, mais pour une raison quelconque dans la nature humaine - poussant toujours sa solution dans le coin le plus éloigné - et cela joue un triste rôle dans la vie des programmeurs juniors et intermédiaires, étendant leur chemin vers les hauteurs (et profondeurs) de la connaissance de la langue par quelques ans.
Le code d'application utilisant les frameworks et les bibliothèques qu'ils sont habitués à écrire quotidiennement ne peut pas être considéré comme fiable s'ils l'écrivent sans une compréhension suffisante des différents aspects de son exécution. Une bonne illustration de cela dans le monde de JavaScript est le sort de la bibliothèque JQuery, qui était autrefois un moteur de progrès, et aujourd'hui, étant un champ de connaissances autonome arraché au reste de la langue, il occupe sa place naturelle sur le marché - semi-professionnel écrit à la hâte et travaillant comme vous avez des scripts comme cadeau à la même mise en page rapide sur bootstrap de pigistes peu coûteux.
L'avenir des projets en cours d'élaboration avec cette approche, certes inconsciente, mais irresponsable, est prosaïque et de courte durée: perte de temps considérable, perturbations, pertes financières et de réputation et, par conséquent, diminution de l'enthousiasme pour une coopération continue.
En revanche, peu pour une personne qui a choisi la voie d'un programmeur peut être comparé au plaisir de comprendre ce qu'il fait. Comprenant que lui, comme le baron Munchausen, caracolant sur un champ de mines à cheval. Inutile de dire qu'un employeur décent peut clairement voir des gens qui marchent imprudemment autour du champ de mines et des gens qui sont figés dans l'indécision pour faire un pas dans une situation où vous pouvez courir et sauter sans penser à quoi que ce soit?
ActualizeBot
En voyant les avantages des entretiens et en comprenant que le fait de passer à des entretiens inactifs n'est pas entièrement éthique, j'ai pensé qu'il serait formidable de créer un bot où un développeur débutant ou passant à une autre langue pourrait faire du travail éducatif sans recourir à de véritables entretiens de ce montant dans lequel m'est arrivé. Et en me rappelant comment les programmeurs aiment discuter et comparer les tâches qu'ils devaient résoudre - surtout si c'était quelque chose de non trivial - je me suis rendu compte que tout s'emboîtait, rejetais tous les doutes et le tour est joué.
Pour le moment, il existe 3 fonctions simples dans le bot:
- S'abonner à un langage / framework particulier afin de recevoir de nouvelles tâches dessus. Vous vous abonnez et lorsque vous recevez des tâches, vous les recevez dans la newsletter quotidienne
- Publier une tâche ou un test - Dans mon livre, ils disent que partager c'est prendre soin
- Un excellent générateur de noms, avec lequel vous pouvez choisir la signature optimale pour le texte de la mission que vous publiez, y compris les dictionnaires féminins, non dénués de féminatives
À l'heure actuelle, les langues suivantes sont proposées au choix: JavaScript, Java, Python, PHP, MySQL. Le choix est quelque peu limité en raison des limites de ma compréhension. J'espère qu'avec l'aide de la habrasociety pour reconstituer cette liste.
Le bot est lancé dans un format purement rock and roll, aucun paiement n'est prévu.
Vous pouvez y accéder
via le lien:
ActualizeBotEn bref sur la mise en œuvre technique
Ce bot est l'un de plusieurs petits projets sur lesquels j'apporte la première version publique de ma mini-trame open source open source pour développer des bots avec une structure complexe, nommée avec amour Hobot et disponible en NPM pour le hardcore.
Le framework est construit sur la base de Telegraf.JS et TypeScript, sa version zéro-zéro-première, équipée d'un exemple d'utilisation, peut être visualisée sur le
github et l'essayer immédiatement. Bientôt, je vais décharger la version 0.0.2 étendue et peignée pour la personne de côté et lui consacrer un article séparé (tronc). Je serais heureux si pour quelqu'un cela se révélait aussi pertinent que pour moi.
À combien d’entrevues avez-vous dû assister?
Je suis sûr que vous avez quelque chose à dire!