À propos du rôle des tâches de test dans la vie d'un développeur

Combien d’entretiens techniques avez-vous eu dans votre vie ?

Au cours des cinq dernières années, j'ai assisté à 35 entretiens techniques de tous types et spécificités imaginables - des startups kazakhes pour l'achat collectif de viande pour l'hiver aux services et banques fintech allemands et américains ; en mettant l'accent sur la programmation, la prestation et la gestion ; à distance et au bureau ; limité et illimité dans le temps ; stressant et détendu, dans différentes langues.

Ceci, couplé aux ~20 entretiens que j'ai moi-même menés en tant qu'employeur - un nombre suffisant pour que je devienne le roi des entretiens pour faire le constat suivant (au départ totalement peu évident) et m'y imposer : je suis convaincu qu'en grande partie grâce à tant d'entretiens, cela commence à ressembler à une habitude marginale, j'ai étudié mon stack au niveau professionnel et je suis devenu un spécialiste de la concurrence, malgré le fait que je travaillais déjà dans le développement web depuis 10 ans.

Cet article s'adresse aux programmeurs qui sont au début de leur parcours et n'ont pas encore épuisé la profondeur de leurs connaissances. Dans ce document, je souhaite développer la thèse sur les avantages pédagogiques colossaux des tâches de test et des questions techniques posées lors des entretiens - et inviter tout le monde à mon robot télégramme nouvellement écrit ActualiserBot, où, selon mon plan, vous pouvez passer un entretien technique au moins tous les jours jusqu'à leur fin. Et pour qu’ils ne s’arrêtent pas, vous pouvez également partager une tâche technique intéressante, une question ou une situation utile/amusante vécue lors d’un entretien.

Je vais vous en dire plus sur le bot ci-dessous, voyons d'abord pourquoi il est si important de connaître et de comprendre les réponses à ces questions et tâches techniques, même si vous menez avec succès des projets indépendants depuis des années.

Pourquoi la qualité de nos connaissances fondamentales laisse-t-elle beaucoup à désirer ?

Les entretiens techniques, si vous n'êtes pas encore devenu le roi des entretiens, sont un stress important pour le corps, tout comme la recherche d'emploi en général - que vous soyez un spécialiste novice, un switcheur ou un développeur ayant travaillé dans un lieu depuis longtemps (et à notre époque « long » peut être considéré comme un an).

Dans de nombreux entretiens, un facteur humain aggrave ce stress. Votre interlocuteur n'est peut-être pas Alena Vladimirskaya, mais une programmeuse ordinaire comme vous l'avez trouvée, de qui il est difficile d'attendre des tâches adéquates et leur évaluation, ou un chef d'équipe inconditionnel qui attendra le moment pour faire tomber toute sa sévérité dans ses yeux sont fixés sur toi, posant la question : Qu'est-ce que c'est pour toi agile !?

Un jour, sans donner la réponse nécessaire, mais, comme vous le comprenez, imprévisible à cette question, je me suis retrouvé sans offre, ce dont j'étais incroyablement heureux.

En essayant d'éviter ce stress et ces mouvements inutiles en général, nous nous éloignons non seulement de l'exposition bruyante de notre ignorance de certaines caractéristiques fondamentales de la langue, mais aussi de la réduction au moins un peu de cette ignorance.

Le problème est qu’en pratique, il existe peu d’endroits où l’on peut rencontrer ce type de problèmes.
Tout développeur qui a dû travailler à plusieurs endroits confirmera que les problèmes fondamentaux ou créatifs posés lors des entretiens ont rarement quelque chose à voir avec ce qu'un programmeur traite dans la vie réelle - pas de récursions, de graphiques et de systèmes de contrôle d'ascenseur asynchrones sur la planète avec des effets négatifs. gravité dans un autre bras de la galaxie. Malheureusement.

En ce qui concerne mon JavaScript natif, il existe un bon exemple : si React.JS n'était pas apparu, 98 % des programmeurs JavaScript continueraient à vivre dans une ignorance béate de ce qu'est le bind - plus de 20 ans après son apparition - et continueraient être perplexe, recevoir des questions à ce sujet lors d'entretiens, et seuls ceux qui inventent toutes ces bibliothèques, frameworks et modules hautement abstraits continueraient à travailler avec. Aujourd'hui, grâce à la réaction, ce chiffre a été réduit à ce qui semble être 97 %.

De toute évidence, voyant « l'isolement de la réalité » de ces tâches, de nombreux développeurs les ignorent ou perdent du temps à s'y plonger - et continuent de vaquer à leurs occupations quotidiennes, c'est-à-dire, au sens figuré, parcourir le champ de mines du développement pour la production non seulement sans détecteur de mines, mais aussi sans savoir qu'ils se trouvent dans un champ de mines.

Quelles sont les conséquences d’un manque de connaissances fondamentales d’une langue ?

La réponse à cette question semble banale, mais pour une raison quelconque, c'est la nature humaine de toujours pousser sa solution dans le coin le plus éloigné - et cela joue un triste rôle dans la vie des programmeurs débutants et intermédiaires, allongeant leur chemin vers les hauteurs (et les profondeurs). ) de connaissances linguistiques de quelques années.

Le code d’application utilisant des frameworks et des bibliothèques qu’ils ont l’habitude d’écrire au quotidien ne peut être considéré comme fiable s’ils l’écrivent sans une compréhension suffisante des différents aspects de sa mise en œuvre. Une bonne illustration de cela dans le monde de JavaScript est le sort de la bibliothèque JQuery, qui était autrefois le moteur du progrès et qui aujourd'hui, étant un domaine de connaissance fermé sur lui-même, séparé du reste du langage, prend naturellement sa place dans le marché - des scripts semi-professionnels écrits à la hâte et fonctionnant selon les besoins en cadeau avec la même mise en page rapide sur bootstrap par des pigistes bon marché.

L'avenir des projets développés avec une approche aussi irresponsable, bien que par ignorance, est prosaïque et de courte durée : pertes de temps importantes à l'improviste, échecs, pertes financières et de réputation et, par conséquent, diminution de l'enthousiasme pour la poursuite des projets. coopération.

En revanche, pour une personne qui a choisi la voie d'un programmeur, peu de choses peuvent se comparer au plaisir de comprendre ce qu'elle fait. Comprenant que lui, comme le baron Munchausen, caracole à cheval à travers un champ de mines. Inutile de dire qu'un employeur décent peut clairement voir des gens marcher imprudemment à travers un champ de mines et des gens figés dans l'indécision de faire un pas dans une situation où ils peuvent courir et sauter sans penser à rien ?

ActualiserBot

Ayant vu les avantages des entretiens, et réalisant également que passer des entretiens vierges n'est pas tout à fait éthique, j'ai pensé que ce serait formidable de créer un robot où un débutant ou un développeur qui se transplante dans une autre langue pourrait suivre une formation pédagogique sans avoir recours à de vraies interviews à ce point-là, dans lesquelles cela m'est arrivé. Et en me rappelant à quel point les programmeurs aiment discuter et comparer les problèmes qu'ils devaient résoudre - surtout s'il s'agissait de quelque chose de non trivial - j'ai réalisé que tout s'accordait, j'ai rejeté tous les doutes et le tour est joué.

Le bot dispose actuellement de 3 fonctions simples :

  • Abonnement à un langage/framework particulier afin de recevoir de nouvelles tâches pour celui-ci. Vous vous abonnez et au fur et à mesure que les tâches arrivent, vous les recevez dans la newsletter quotidienne
  • Publier une tâche ou une tâche de test – Dans mon livre, on dit que partager est attentionné
  • Un excellent générateur de noms avec lequel vous pouvez choisir la signature optimale pour le texte du travail que vous publiez, y compris les dictionnaires féminins, non sans féministes

Actuellement, les langages suivants sont disponibles : JavaScript, Java, Python, PHP, MySQL. La sélection est quelque peu limitée en raison des limites de ma compréhension. J'espère ajouter à cette liste avec l'aide de la communauté habra.

Le bot est lancé dans un format purement rock and roll, aucun paiement n'est prévu pour quoi que ce soit.
Vous pouvez y accéder en utilisant ce lien : ActualiserBot

En bref sur la mise en œuvre technique

Ce bot est l'un des nombreux petits projets dans lesquels j'apporte la première version publique de mon mini-framework open source pour développer des robots avec une structure complexe, affectueusement nommé Hobot et disponible en NPM pour les hardcore.

Le framework est construit sur la base de Telegraf.JS et TypeScript, sa version zéro-zéro-premier, accompagnée d'un exemple d'utilisation, est consultable sur githabé et essayez-le tout de suite. Bientôt, je mettrai en ligne la version 0.0.2, développée et peignée pour une personne de l'extérieur, et lui consacrerai un article séparé (le coffre). Je serai heureux si cela s'avère aussi pertinent pour quelqu'un que pour moi.

Alors, à combien d’entretiens avez-vous dû assister ?
Je suis sûr que vous avez quelque chose à dire !

Source: habr.com

Ajouter un commentaire