Carte de développement des développeurs mobiles

Chaque jour, nous rencontrons les concepts de «juin», «moyen», «senior», mais nos idées sur les connaissances qu'un développeur doit avoir à différents stades de croissance varient. L'absence d'un plan de développement clair et le manque de compréhension de la suite des choses conduisent souvent à la frustration et à des changements de poste imprudents.



Les gars d'AppsCast en collaboration avec le chef du mobile du projet Pandao Alexander Cherny ( @AlexChernyy ) ont essayé de comprendre le problème et d'élaborer leur propre carte du développement d'un développeur mobile à partir du moment où il est entré dans la profession et aux postes de direction. Sous le chat sont des conseils pour interviewer les jones, où trouver de bons développeurs, des recommandations pour les débutants pour trouver un emploi, les principales différences entre les jones, les intermédiaires et les seniors, et l'importance des compétences en communication à tous les niveaux.

Daniil Popov : Aujourd'hui, notre invité est Alexander Cherny, de Mail.ru du projet Pandao. Parlez-nous de vous.

Alexander Cherny : Salut. Je dirige l'équipe de développement mobile du projet Pandao, dédié au e-commerce. Maintenant, il y a six personnes dans le personnel, et tout a commencé avec moi seul.

J'ai commencé ma carrière en tant que programmeur C et Assembleur, et suis venu au développement mobile en tant que développeur iOS. Le premier facteur était la motivation personnelle à rechercher une nouvelle voie de développement. Ensuite, il y avait deux options: soit Java dans le secteur financier, soit le développement mobile, qui commençait tout juste à apparaître. J'ai fait un excellent travail pour trouver des gens des deux régions, j'ai écouté leurs recommandations et leurs réflexions. Le deuxième facteur était aléatoire: l'ordinateur portable est mort et sur les conseils d'un ami, j'ai acheté un MacBook d'occasion.

Daniil Popov : Il s'avère que vous êtes passé d'un simple développeur au chef de département?

Alexander Cherny : Le chemin était linéaire. Au début, j'ai grandi en tant que développeur iOS, puis j'ai eu un coéquipier, puis ma propre petite équipe de développement iOS, puis une plus grande équipe distribuée. À un moment donné, il y a eu une transition vers la direction de tout le développement mobile.

Entrée dans le développement mobile


Daniil Popov : D'après votre expérience, discutons de cette voie plus en détail et commençons par le poste de junior. Qu'attendez-vous d'un spécialiste novice que vous emmenez dans l'équipe? Comment une personne extérieure peut-elle accéder au métier de développeur mobile?

Alexander Cherny : La façon la plus cool est de repêcher toutes les premières écoles de développement mobile qui ne sont pas hébergées périodiquement par diverses entreprises. Les entreprises ont un montant fixe du nombre de joons par nombre d'aînés dans l'équipe, alors elles en prennent un ou deux dans ces écoles. Il n'y a plus de juin à digérer en même temps, ou il n'y a tout simplement pas assez de postes vacants.

Mais le reste n'est souvent pas pire que ceux pris par les organisateurs du cours. J'ai appelé un développeur junior dans mon équipe et il a recommandé un gars à la prochaine équipe avec laquelle j'ai étudié ensemble.

Alexei Kudryavtsev : Il s'avère que les gars des cours peuvent être des Jones normaux et être capables de se développer correctement? Il me semblait que beaucoup de gens là-bas ont la motivation de tout parcourir rapidement pour commencer à gagner de l’argent le plus tôt possible, mais en réalité ils ne savent rien.

Alexander Cherny : Il y a un indicateur supplémentaire de qualité - c'est la présence d'une sélection préliminaire obligatoire des cours éducatifs et des points de contrôle pendant tout le cycle des cours. Cela signifie que le diplômé, au minimum, avait la volonté d'aller jusqu'au bout et la patience des professeurs pour le former.

Coffret Gentleman's June


Daniil Popov : Quelles sont les trois choses qu'un junior devrait savoir des compétences dures et douces?

Alexander Cherny : De compétences solides, vous devez connaître la langue de la plate-forme sélectionnée, si possible, connaître la plate-forme SDK. Connaître l'architecture n'est pas important pour moi car je ne comprends pas comment l'architecture peut être comprise si vous n'avez pas rencontré les problèmes qu'elle résout.

Il est plus intéressant d'entendre de juin la réponse à la question «Pourquoi avez-vous choisi Android ou iOS?».

En termes de compétences générales, j'aimerais voir les compétences de communication de base de tout le monde, car ce ne sont pas seulement les dzhuns qui ont du mal à parler. Lorsqu'un développeur junior entre dans l'équipe, la capacité de signaler quand quelque chose ne va pas est importante. Beaucoup de gens pèchent dans leur jeunesse, croyant que s'ils ne pouvaient pas faire quelque chose, alors c'est la fin de l'histoire.

Daniil Popov : Comment comprendre indépendamment votre niveau: êtes-vous arrivé à maturité en juin, moyen ou senior?

Alexander Cherny : Le niveau est mesuré par rapport à l'équipe dans laquelle se trouve actuellement le développeur.

Daniil Popov : Il s'avère que dans une équipe, vous pouvez être senior et dans un autre milieu?

Alexander Cherny : Oui, et ici l'objectivité souffre, car ils commencent à exiger des compétences d'un spécialiste, dont la présence n'est pas complètement claire. Par exemple, ils vous demandent de sauter de trois mètres, mais vous ne savez pas comment. En général, le saut n'est pas le vôtre, et personne ne peut expliquer pourquoi ils sont nécessaires dans l'application client-serveur. Ne saute pas? Donc - pas un senior.

Alexei Kudryavtsev : Les Joons viennent souvent pour trouver un emploi avec la certitude qu'ils sont déjà excellents, mais en même temps ils ont des compétences différentes. Quelles sont les autres difficultés des entretiens?

Alexander Cherny : Le plus gros problème est l'évaluation à partir de zéro, car on ne sait rien de juin: il n'y a personne pour écrire et demander des recommandations, il n'y a pas de projets achevés.

Ceci est bien traité par le référentiel en direct sur GitHub, même si ce n'est qu'un projet synthétique et qu'une activité et demie est écrite.

Si un test et demi pour cette activité est écrit - bien fait, et s'il y a un semblant d'architecture - vous devez le faire. Quelque chose comme ça, je prends les jones. J'ai un autre critère subjectif et difficile à évaluer - c'est la curiosité .

Pour résumer, voici les recommandations pour le mois de juin:

  • comprendre la langue, connaître toutes les constructions de base de la langue et ne pas simplement répéter ce qu'ils ont vu dans les vidéos;
  • personne ne s'attend à une connaissance approfondie du SDK, car les mises à jour sortent souvent et j'ai moi-même cessé de les regarder, mais vous devez savoir les choses au niveau du cycle de vie;
  • comprendre votre motivation et entrer consciemment dans la profession.

Alexei Kudryavtsev : Quand j'étais en juin, il me semblait que pour une compréhension de base du langage dont vous avez besoin pour parcourir tous les quais Apple, connaître chaque classe et fonction. À votre avis, qu'est-ce qui est inclus dans la base de données?

Alexander Cherny : Il s'agit de la syntaxe de base du langage qui met immédiatement en évidence l'IDE, les principales collections de la série «comment travailler avec des tableaux / listes», «comment travailler avec des dictionnaires / cartes». Par UI, les connaissances de base sont formées au moment de la rédaction d'au moins un projet de test.

Grandir au milieu


Daniil Popov : Comment passer du junior au milieu? Comment comprendre instantanément qu'un spécialiste est passé à l'étape suivante?

Alexander Cherny : Bien sûr, du jour au lendemain, je ne comprends pas. La question même de la catégorisation est le problème. Imaginez que vous remplissiez un ensemble de critères, mais l'un d'eux n'est pas rempli et vous ne pouvez pas passer officiellement au niveau suivant. Je suis réservé à une telle approche, notamment en petites équipes.

En même temps, il existe des critères clairs qui ne peuvent être contournés. Par exemple, le niveau de définition des objectifs et la responsabilité que vous en portez. A partir de juin vous n'attendez rien. Il lira la tâche, pour l'écriture claire dont son chef est responsable, et le maximum posera des questions sur des points obscurs. Vous ne vous attendez pas à ce qu'il réfléchisse à ce qui se passera, s'il évalue des cas limités, pour imaginer un nouveau paradigme de code pour la solution. Le milieu commence à franchir cette ligne.

Daniil Popov : Quelles compétences avez-vous ajoutées au milieu en plus de celles du junior?

Alexander Cherny : Il devrait y avoir une compréhension de l'architecture et une priorité sur ce que vous écrivez et comment .

L'une des caractéristiques d'un développeur junior est que pour lui le fait d'écrire du code est précieux. Pour le milieu, le code est secondaire, la tâche qu'il résout vient au premier plan.

Dans la division des développeurs en juin, moyen et senior, il y a une visualisation infructueuse de la croissance à travers une séquence d'étapes stricte. Dans la gestion des produits, il y a le triangle MVP - un produit peu viable. MVP est une ligne qui n'est pas tracée parallèlement à la base, mais de la base au sommet du triangle. Dans un tel schéma, vous savez toujours un peu de tout, le milieu peut faire plus qu'un junior et le sénateur devrait théoriquement fermer tout le triangle par compétence.

Il est plus correct de considérer les critères non pas par «je sais / je ne sais pas», mais par «à quel point je sais». Le junior peut connaître l'existence, le milieu sait ce qu'il y a à l'intérieur et le senior comprend pourquoi il a été inventé.

Daniil Popov : Le milieu devrait-il comprendre l'informatique? Structures de données, algorithmes, collections de hachage?

Alexander Cherny : Oui, il est difficile de résoudre un problème appliqué sans comprendre le travail des mêmes collections, par conséquent, une telle exigence de milieu peut certainement être présentée.

Alexei Kudryavtsev : Vous avez mentionné le triangle des compétences, puis qu'est-ce qui y est inclus?

Alexander Cherny : Dans une version simplifiée des compétences techniques, il y a le langage, la plate-forme et l'architecture. Si vous regardez plus en profondeur, vous devez utiliser la formule de Daniel et briser les blocs en informatique et en génie logiciel.

Alexei Kudryavtsev : Qu'en est-il des compétences dont un ingénieur n'a pas toujours besoin, mais qui peuvent être utiles: débogage, cryptographie, performances?

Alexander Cherny : Tous les ingénieurs devraient être intéressés par la possibilité d'utiliser le péage. Le junior peut ne pas être capable de travailler avec tous les outils, mais du milieu, j'attends le même niveau de curiosité que le June à l'entrée. Je suis sûr qu'à un moment donné, il sera fatigué de cliquer sur les boutons de l'IDE et qu'il commencera à apprendre le raccourci clavier. Au lieu de se connecter pour rechercher des fuites de mémoire, il lancera l'outil d'application.

Daniil Popov : le milieu devrait-il s'intéresser à des domaines connexes et élargir ses horizons?

Alexander Cherny : Je suis pour le développement des horizons et l'érudition. Si une personne montre une telle curiosité - c'est un bon vecteur pour la personne âgée. Il est simplement différent dans sa capacité à répondre à la question «Pourquoi existe-t-il?» Si le milieu écrit la classe la plus simple de l'application, que tout le monde fait référence au client-serveur, mais ne comprend pas pourquoi le trafic n'est pas capturé avec https, et tout fonctionne lors de l'installation de Charles, cela est insultant. Mais pour le junior, je l'expliquerais moi-même.

En général, le milieu était le plus malchanceux. C'est une zone de croissance trop longue et imprévisible, il n'est pas clair si elle s'étirera pendant longtemps.

Les mêmes dzhuns sont plus simples: avec un emploi constant sur des projets dans une équipe adéquate, votre croissance vers le milieu prendra entre un an et deux ans et demi, pas plus.

Daniil Popov : Qu'en est-il des compétences générales pour le milieu?

Alexander Cherny : Middle ne devrait plus avoir peur de parler des problèmes et être capable de prendre une fonctionnalité et de la travailler seule, peut-être pas encore de comprendre son interaction avec d'autres fonctionnalités. Par exemple, une tâche a volé avec une image du concepteur et a brièvement décrit ce qui doit être fait. Sur la base de ce milieu introductif, je dois dire quels problèmes peuvent être, par exemple, il y a un élément qui n'est pas dans le système et qui prendra beaucoup de temps à faire. Il s'agit d'une sorte de mécanisme d'autocensure concernant les tâches qu'il reçoit. Même à ce stade, la compétence d'estimation des délais est ajoutée.

Daniil Popov : Et les communications? Sans eux, la tâche ne peut être élaborée et évaluée?

Alexander Cherny : Oui, vous devez pouvoir parler avec les parties intéressées. Ne compliquez pas la chaîne et demandez directement au concepteur, allez voir les développeurs d'une autre plateforme et découvrez si vous comprenez la tâche de la même manière.

Daniil Popov : Qu'est-ce que les intermédiaires ignorent le plus souvent?

Alexander Cherny : Beaucoup de gens dépassent la langue et le SDK, et dans les endroits les plus fantastiques. Combien de middles sont morts à cause du malentendu selon lequel l'itérateur est un objet, ou par la question de savoir si la chaîne est représentée - un tableau ou une liste.

J'essaie de vérifier non pas le niveau de connaissance et même pas le raisonnement, mais la réaction au raisonnement. Par exemple, je vous dis qu'il y a trois situations différentes et que le compilateur se comporte différemment. L'un peut rejeter cette situation, et l'autre peut dire qu'il n'y a jamais pensé, mais avec un ordinateur portable dans ses mains, il pourrait reproduire la situation dans l'IDE afin que le débogueur montre quelle est la différence.

Félicitations, vous êtes sénateur!


Daniil Popov : Quelles compétences devraient être ajoutées aux compétences intermédiaires pour que vous puissiez vous appeler senior?

Alexander Cherny : Que fait le señor? Il définit la culture technique du projet dans son ensemble, car il comprend les avantages que toutes les activités de développement apporteront à l'entreprise.Vous avez ici besoin d'expérience, de compréhension de l'entreprise et de capacité à prendre des risques. L'aîné comprend les problèmes du niveau "J'ai un vidos qui gèle, mais je veux qu'il feuillette en douceur." Comment exactement cela sera fait n'a pas d'importance.

Senior - le garant de l'expertise technique. Ils s'adressent à lui avec une question et un désir d'obtenir un ensemble spécifique d'actions.

Du milieu, j'attends de comprendre qu'il existe une machine virtuelle et qu'elle existe pour une raison, du seigneur - comment elle peut être utilisée avec avantage.

Alexei Kudryavtsev : Qu'en est-il des connaissances en rétro-ingénierie?

Alexander Cherny : Tout le monde peut inverser. N'ayez pas peur de le faire - c'est la frontière du milieu et de l'aîné. Vous devez comprendre où les données et les ressources sont stockées - rien de fantastique.

Une caractéristique intéressante du milieu, qui distingue son aîné, qu'il dit toujours qu'il est prêt à faire la tâche, mais ne comprend pas toujours ce qui se cache derrière cela et quelles seront les conséquences.

Pour distinguer les niveaux, vous pouvez ajouter l'utilisation de bibliothèques. Junior fait glisser n'importe quelle bibliothèque si elle résout un problème. Middle traîne, mais pense que nous devons voir s'il existe une solution similaire dans le projet. Senior écrit son vélo pour mettre des étoiles sur GitHub.

Vous pouvez faire glisser une bibliothèque en mode silencieux et supposer qu'elle a résolu le problème. Vous pouvez le regarder et voir que vous n'avez besoin que d'un petit morceau et ne le prendre que. Vous pouvez faire glisser la bibliothèque entière car les délais étaient épuisés, mais créez un problème approprié afin de le résoudre plus tard. Le point est de savoir avec quel niveau de compréhension approcher le tirage.

Daniil Popov : Senior devrait non seulement sélectionner correctement les bibliothèques, mais aussi les comprendre, elles peuvent également avoir des problèmes. Contrairement au milieu, qui couvrira tout avec try-catch, le senior fourchera, réparera et fera une demande de traction pour ce problème.

Alexander Cherny : Lors de l'ajout d'une bibliothèque, le seigneur assume l'entière responsabilité des conséquences. Middle fera glisser et transférera la responsabilité à la bibliothèque elle-même ou à ses développeurs.

Où ensuite?


Daniil Popov : Y a-t-il une vie après la seigneurie? Je vois des options: chef de file, chef de département, directeur technique ou gestion de projet.

Alexei Kudryavtsev : Qu'en est-il du développement technique: expertise technique, principal ou même changer de direction?

Alexander Cherny : Toutes les options ont leurs propres conséquences. Oui, vous pouvez accéder à des postes de direction, mais vous pouvez rester dans l'environnement technique - ce n'est certainement pas un arrêt de développement.

Daniil Popov : J'ai le sentiment que l'ensemble des compétences exigeantes dépend fortement de l'entreprise pour laquelle vous travaillez et de son profil.

Alexander Cherny : Cela affecte. Une grande entreprise d'épicerie comme Facebook compte des milliers de techniciens. Tous sont très limités dans le choix des solutions techniques - il y a une pile approuvée, il y a des équipes d'infrastructure entières et un comité d'architecture qui prend les décisions pour tout le monde. Dans ce cas, l'ingénieur devient un développeur verrouillé de l'entreprise, qui est obligé d'utiliser les paradigmes de l'entreprise. Au fil du temps, elle devient plus précieuse pour l'entreprise, mais pas le fait que cette valeur sera perçue de l'extérieur.

Daniil Popov : Et si je voulais m'engager dans une compétence qui n'est pas typique d'un produit d'entreprise?

Alexander Cherny : Je demande d'abord à la personne d'où vient l'idée. Parfois, les gens viennent avec des désirs étranges et ne peuvent pas expliquer leur nature. Si le développeur peut justifier, alors vous devez regarder plus loin comment cette idée correspond au produit. Il est probable que cela sera toujours utile pour les entreprises.

Il est important d'aborder ce processus individuellement. Il s'avère souvent que ce n'est pas le mieux qu'une personne puisse faire maintenant.

Daniil Popov : Vous avez dit que vous considériez la division en juin, intermédiaire et senior floue. Est-il nécessaire alors?

Alexander Cherney : Lorsque l'équipe est petite et que tout le monde sait tout, vous pouvez vous passer de raccourcis. Dans une grande entreprise, l'obtention du diplôme sera nécessaire pour se conformer au code du travail afin de transférer les salaires.

Cartes de développement pour développeurs


Alexei Kudryavtsev : Comment un développeur peut-il déterminer des points de croissance?

Alexander Cherny : Je suis d'avis que l'employé devrait être engagé dans une carrière, car il est impossible de fréquenter tout le monde. Si une personne veut chercher quelque chose, la bonne demande est le nom de la plate-forme et de la feuille de route du développeur. Vous pouvez trouver un tas de cartes mentales avec des informations détaillées, dans quel ordre et quoi développer.

Daniil Popov : Lors de la préparation de la version, nous avons examiné la carte de développement du développeur iOS. Il y a tellement de choses qu'il semble qu'après avoir étudié l'ensemble du spectre, un ingénieur deviendra surqualifié pour 90% des entreprises du marché russe.

Alexander Cherny : Personne ne vérifie la profondeur des connaissances. Par exemple, je regarde la carte et je vois le framework Core Location, mais il n'y a pas de détails précis sur ce qu'il faut exactement: connaître son existence ou comprendre des choses de bas niveau, par exemple, quels coprocesseurs sont capables de produire une efficacité énergétique supplémentaire en arrière-plan.

La feuille de route n'est qu'une carte d'enquête que vous regardez et analysez la ville que vous avez déjà visitée et photographiée sur le fond d'un panneau à l'entrée. Dans le même temps, la feuille de route n'est pas linéaire et vous n'avez pas besoin de connaître la précédente pour passer à la suivante, vous pouvez vous déplacer où vous voulez ici et maintenant.

Alexei Kudryavtsev : Les feuilles de route ne sont pas toujours utiles, car elles ne coïncident souvent pas avec ce qui est requis au travail, et elles ne couvrent pas toujours les choses dans lesquelles vous "nagez". Comment créer une feuille de route personnelle?

Alexander Cherny : Hackerrank a récemment mené une étude sur ce que les employeurs attendent désormais des développeurs. Quelle que soit la taille de l'équipe, la première est la résolution de problèmes - le désir de l'employeur d'entendre de l'ingénieur une réponse claire sur la façon de résoudre un problème particulier et à quel prix.

Alexei Kudryavtsev : Que pensez-vous des cartes de développement individuelles, où les compétences sont décrites, avec un chef d'équipe, les résultats sont évalués et il est déterminé quoi pomper ensuite?

Alexander Cherny : C'est formidable si les deux parties ont le temps pour cela. Dans toutes les conversations sur le développement, il y a une nuisance: à un moment donné, l'employé comprend qu'il n'y a nulle part où se développer ici et change son travail dans l'espoir d'un développement. La distorsion cognitive survient - avec le changement d'environnement, vous arrêtez de penser au développement réel, et toutes les forces vont à l'adaptation dans un nouvel endroit.

Alexei Kudryavtsev : Alors vaut-il la peine de changer de travail pour le développement?

Alexander Cherny : Si l'employeur est stable et permet de résoudre les problèmes technologiques et que l'équipe de développement ne change pas, alors non. Je ne veux pas que les développeurs changent de travail pour résoudre certains problèmes personnels. Je pose toujours la question lors de l'entretien quelles mesures la personne a prises pour résoudre les problèmes qui ont conduit à son licenciement de son emploi précédent.

Soit dit en passant, il y a des problèmes avec le poste de responsable du développement et d'autres postes de direction du développeur. Il n'y a pas beaucoup de gens au-dessus, et ce haut de gamme considère que vous êtes une personne autosuffisante qui devrait non seulement aider à résoudre les problèmes de ses employés, mais aussi à gérer ses difficultés seule. Je ne sais pas si c'est la bonne approche.

Daniil Popov : Que demandez-vous d'autre lors de l'entretien en plus des questions techniques?

Alexander Cherny : Récemment, j'ai utilisé des cas de projets antérieurs de nos équipes. Il est important pour moi de comprendre comment une personne réagit à diverses situations. Par exemple, deux développeurs comprennent différemment le rôle et la responsabilité du modèle d'affichage. Tu es le troisième. , . , . -, , . ?

, , , 30 , soft skill .

: : soft hard?

: , . hard skill. - — . . . soft skill , 65% 35%.

, , soft skill . , Saint AppsConf 2019 . Introductory- , General- . , — 16 .

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


All Articles