Je suis dans un peu de position précaire.
Je travaille à distance pour un client qui a récemment apporté un développeur junior directement hors de l'université dans le projet. Il travaille physiquement à leur bureau. Je crois qu'il a étudié l'informatique (bien que je ne puisse pas rappeler 100% pour le moment).
Il a été avec la société de quelques mois de quelques mois et a été lancé, par le chef de projet, lors de tests et de se familiariser avec l'application et depuis environ le mois dernier, a été attribué de petits bugs et fonctionnalités.
Le problème est que, dans cette époque, il n'a commis que du code une fois et c'était le code que j'ai essentiellement marqué à travers et écrit pour lui. (Je pensais qu'il serait bénéfique pour lui de voir la solution de travail après avoir passé des jours à essayer de le faire travailler).
J'ai eu quelques appels avec lui et quelques sessions de programmation par paires, mais il passe des journées qui deviennent frustrées par un simple code JavaScript qui ne devrait vraiment pas être aussi difficile pour un développeur junior. Je commence à penser que peut-être que la programmation n'est pas une bonne voie pour lui, mais je veux faire autant d'effort que possible pour l'aider à trouver des solutions seul et à l'aider à s'améliorer.
C'est la première fois que je suis en mesure de devoir fournir une formation et un mentorat. Être à distance rend probablement cela beaucoup plus difficile aussi.
Que puis-je faire pour l'aider à m'améliorer et à le faire aller?
Selon l'endroit où il est allé à l'école, il n'a peut-être pas plus de quelques mois d'expérience de faire des choses très triviales dans une langue. Cela peut être corrigé, mais assurez-vous que cela vaut la peine d'être effort.
On dirait que vous devez dire s'il peut être récupéré ou non.
S'il peut proposer une solution semestre raisonnable, voire une mauvaise solution, mais en pensant à travers le processus de résolution de problèmes, il peut apprendre le code. S'il ne peut pas penser à travers le processus d'approximation d'une solution correctement, vous ne pouvez probablement pas lui apprendre à penser mieux.
Assurez-vous également que votre gestion comprend la situation ou vous allez faire le travail de deux personnes avant trop longtemps jusqu'à ce que votre nouveau gars attire.
J'ai eu une position très similaire depuis un certain temps, mais je pense maintenant que je fais des progrès avec le développeur. Je pense qu'à la fin, ce ne sera qu'un cas de timidité de commettre, mais je viens de lui dire "J'ai besoin de vous pour vous engager et appuyer sur le serveur afin que je puisse vous aider mieux si vous êtes coincé, et que vous pourrez m'aider à superviser le projet ", puis il a commencé à commettre.
Leur donner des responsabilités qu'ils peuvent traiter (c'est-à-dire inférieur à leur niveau) pour améliorer le moral.
Il est également important de les laisser prendre des décisions et échouer, cela s'appelle l'apprentissage. Donnez-leur le pouvoir de prendre de petites décisions architecturales ou de conception et de voir comment elles se produisent. Une fois qu'ils échouèrent, dites-leur comment ils peuvent faire mieux et alors assis avec eux.
Ne soyez pas impatient parce que vous savez que vous ferez en 5 minutes le travail qu'ils feront en cinq heures. Laissez-les le faire.
Avoir des missions plus petites et des objectifs plus clairs leur fera sentir moins perdu et attaquer mieux les problèmes à portée de main; Baby marche si vous voulez.
Toutes les personnes n'ont pas assez d'initiative, malheureusement, mais l'initiative peut être enseignée.
Continuer en partie le "laissez-les échouer" argument, mais reste toujours à la portée (par exemple, im) mais pas physiquement. Si vous restez connecté avec eux par im, vous pouvez parfois y répondre avec la bonne réponse, mais d'autres fois, vous pouvez simplement les laisser pendre et prétendre que vous êtes occupé (cruel, je sais * le sourire maléfique *), et juste leur dire "brb , Google XHR et ActiveX "ou" Erreur de compilateur Google "ou" Google "... En faisant cela, vous les faites en partie que vous vous sentez stupides de manière bête et perdez progressivement la peur de la recherche de choses en eux-mêmes.
Savent-ils sur Firebug ou Chrome Dev Outils ?. que diriez-vous des pièges JS communes ?. utilisent-ils un bon cadre JavaScript? (P. Ex. motoools ). Vous avez vraiment besoin de Pour leur donner les armes pour rendre son travail aussi amusant et productif que possible.
Vous n'étiez pas toujours un pro, non ?. Comment avez-vous appris ?, rappelez-vous cela et essayez de les mettre sur le même chemin.
Demandez-leur s'ils ont des problèmes avec quoi que ce soit et que vous sachiez que leur performance n'est pas assez bonne. Personnellement, j'aime être directement avec les gens, et je leur dis que à l'avance, il y a le moindre ressentiment.
Ils pourraient ne pas savoir qu'il y a un problème si vous ne leur dites pas.
J'ai eu une expérience comme celle-ci avec un programmeur junior. Je vais vous donner l'anecdote, avec l'avertissement évident que ce qui a fonctionné pour elle ne travaillerait pas nécessairement pour personne d'autre.
Son problème était qu'elle n'avait jamais eu à traiter de rien au collège qui n'était pas un système de jouet que vous pourriez raisonnablement être invité à faire dans un ensemble de devoirs. Ainsi, quand elle est confrontée à un vrai problème dans une base de code réelle qui évolue depuis des décennies, elle n'avait vraiment aucune idée où commencer.
Notre responsable lui a donné un problème réaliste difficile, qui n'avait pas trop de dépendances sur d'autres choses, que j'aurais fini dans quelques jours. Je l'ai vue de rester coincée dessus. Après un moment, j'ai commencé à y aller régulièrement et à lui demander: "Voulez-vous une suggestion?" Après un mois ou deux, elle a finalement rompu et était disposée à prendre mon aide.
Mon "aide" consistait à la faire briser le problème en petits morceaux. Chaque jour, je parlais, lui parler et lui demander ce que ses objectifs de la journée étaient. Invariablement, elle sculpt une pièce mal définie et trop grosse. Je lui dirais que ça sonnait trop gros pour moi et que je l'aurai de la sorte de balayer et de m'engager à faire quelque chose à faire de manière réaliste en déjeunant si elle rencontrait des problèmes graves. Après le déjeuner, je vous enregistrerais sur la façon dont ça se passait.
Dans une semaine, elle gagnait de bons progrès et avait compris le rythme. Après une autre semaine, elle a livré une solution parfaitement acceptable au problème à laquelle elle a été donnée. Elle a bien fait son prochain problème et a continué à faire parfaitement bien.
Il s'est avéré que notre responsable s'attendait à sa performance médiocre initiale. Je soupçonne qu'il aurait finalement intervenu, mais il a vu ce que je faisais et j'ai compris qu'il serait plus efficace de venir d'un pair qu'un gestionnaire.
En savoir plus sur son fond et ce qu'il connaît bien. S'il a un diplôme en informatique, il a probablement fait du codage (peut-être pas JavaScript). Quelle que soit la langue avec laquelle il connaît, voyez si vous pouvez expliquer les problèmes/solutions en termes de langue. S'il peut voir les similitudes, peut-être que les choses vont commencer à cliquer.
Les gens apprennent de différentes manières, essayez de comprendre comment il apprend mieux. Vous pouvez demander cela comme une question directe, ou à nouveau dans le cadre de son antécédent, découvrez quel type de projets il a apprécié et a bien fait à l'école et voyez s'il peut expliquer comment ils étaient structurés. Certaines personnes apprennent mieux en étant invitée à résoudre un problème avec peu de direction et d'expérimentation/d'essais et d'erreurs, tandis que d'autres voudront être montrés étape par étape ...
Un autre avantage de poser ses antécédents est que vous serez capable de mieux déterminer s'il n'est vraiment pas bon pour un travail de programmation. De toute évidence, il devrait avoir du temps et aider à s'améliorer, mais s'il n'est finalement pas mauvais pour vous deux s'il continue à essayer de travailler dans un emploi qu'il n'est tout simplement pas bon.
On dirait que vous essayez de faire la bonne chose en l'aidant.
(Aussi: est-il possible d'organiser de travailler sur place avec lui pendant une semaine ou plus?)
il est incompétent, ne le protégeez pas - Vous faites votre client sans faveurs en crainlant quelqu'un qui ne peut pas effectuer
désolé d'être dur, mais c'est une affaire; Tout le monde avec un diplôme fait un bon programmeur
cela dit, si vous voulez l'aider à vous aider à suggérer de participer au code KATAS, joignez un groupe d'utilisateurs local, essayez de coder des compétitions et de contrôler et de coder et de coder jusqu'à ce qu'il ait du sens ou qu'il réalise qu'il a choisi la mauvaise profession.
ne laissez en aucun cas que cette personne devienne votre responsabilité - à moins que ce soit en réalité votre travail
Dur.
Malheureusement, certaines personnes traversent leurs cours de programmation par la peau de leurs dents, et souvent sur l'aide (et le code) des autres, il est donc inévitable que quelqu'un vienne tout droit de côté de l'université sans avoir la première idée de savoir où commencer. (Je pouvais continuer et blâmer le système éducatif un peu, ici, car je pense qu'il y a une tendance à trop compter sur le code de cutter-cutter, ainsi que la tendance à résumer l'une des programmations de niveau bas de niveau - quelque chose que je trouver fondamental pour le processus de programmation, c'est-à-dire logique.)
Voici:
Il y a évidemment beaucoup de variables à jouer ici (et d'autres bonnes réponses), mais voici quelques questions à poser à vous-même et à quelques pensées:
Donc, vraiment, cela devrait descendre aux attentes, attitude, aptitude et contributions. S'il montre qu'il est capable d'apprendre et de ramasser ce qu'il doit savoir, il peut-être peut-être la peine d'être tenue s'il a aussi une bonne attitude.
L'important est qu'il montre des progrès et de la croissance et ne stagne pas ou ne se fait pas frustré facilement. C'est un rôle qui nécessite la patience et une certaine motivation.
Décision difficile. Essayez d'identifier les bases sous-jacentes qu'il manque.
Pour vous aider à localiser la région où se trouve le problème, demandez-lui quand était la dernière fois qu'il faisait bien, la dernière fois qu'il a vraiment compris ce qu'il faisait, juste avant qu'il ne soit confus. Cela pourrait être quelque chose qu'il a étudié avant d'avoir jamais eu la compagnie.
Vous constaterez que quelque part dans cette région, dans les choses qu'il croit comprendre, est la cause réelle de sa confusion. Cela pourrait être quelque chose de base que jamais n'ayant jamais compris une variable ou même quels moyens de programmation. Répétez cela plusieurs fois et il devrait commencer à devenir "plus lumineux".
Une autre approche serait de regarder les différentes choses qu'il est bloquée. Ensuite "triangulé" et trouver ce que sont les dénominateurs communs. Notez tout ce qu'il fait qui n'a aucun sens. Ensuite, essayez de comprendre comment cela correspond ensemble. Si vous pouvez trouver un modèle, cela devrait vous donner une très bonne idée de ce qu'il est qu'il ne comprend vraiment pas.
Une autre situation possible est qu'il ne comprend pas ce que la demande est censée faire et pourquoi. Une démonstration de l'application et un contexte du POV de l'utilisateur pourrait vraiment y aider.
Une fois que vous savez ce qu'il ne comprend pas, vous pouvez l'aider efficacement. Jusque-là, vous vous déconnectez et espérez avoir de la chance.
Cependant, gardez à l'esprit que le débogage pourrait ne pas être ce que votre client paie, donc à moins que vous ne compreniez avec votre client, ne vous laissez pas tomber sur vos propres objectifs.
Bonne chance.