Conseils aux nouveaux développeurs de logiciels

J'ai le plaisir de gérer et de développer des développeurs depuis quelques années. La plupart des nouveaux développeurs ne souffrent pas d'un manque de compétences mais plutôt d'un manque de perspective. Cela est vrai à la fois sur la structure du code mais aussi sur la structure des carrières.

Que faire ces premières années.

La plupart des personnes fraîchement sorties de l'école vont se retrouver dans une entreprise de produits ou dans une société de conseil. Réfléchissez bien à aller ailleurs. La voie de consultation a l'avantage de voir de nombreux projets sur une courte période de temps. Une entreprise de produits a l'avantage de voir évoluer un seul produit et les contraintes qui en découlent.

Les deux expériences sont précieuses. Cependant, les options de carrière ont tendance à être meilleures pour la personne travaillant dans le conseil.

Pourquoi? Parce que les consultants sont rarement embauchés pour des compétences obsolètes. En tant que «pistolets loués» coûteux, ils sont embauchés pour entreprendre des projets de grande valeur que l'entreprise ne peut pas doter en interne. Le personnel interne est souvent bloqué par une maintenance ingrate du code produit par les consultants - quelle que soit la qualité.

Ce qui semble mieux sur un CV:

Membre de l'équipe clé qui écrit le code Java pour expédier le {projet majeur X}, dans les délais et le budget

ou:

A écrit du code en java corrigeant des bugs pour la société {produit majeur X}.

Le premier est bien meilleur. Quelques années dans un cabinet de conseil et vous aurez plusieurs projets à votre actif. Cela signifie que vous obtenez plusieurs lignes sur votre CV et plusieurs choses dont vous pouvez parler lors des entretiens. Le développeur de maintenance n'a aucun avantage. En tant que développeur junior, la maintenance du code est très probablement un premier emploi, mais ce n'est pas idéal pour les carrières. Lorsque vous êtes l'équipe de maintenance, vous êtes considéré comme une pure dépense par la direction, donc ils détestent vous payer. De plus, les leçons tirées de la maintenance ne signifient tout simplement pas autant. Il y a aussi la chance que la direction décide de jeter la base de code héritée - et l'équipe avec. Naturellement, ces conseils dépendent tous de l'entreprise. Travailler sur un produit ou faire de la maintenance pour Facebook fera des merveilles pour votre carrière, mais cela ne se produira tout simplement pas pour tout le monde.

La leçon: évitez de devenir un développeur de maintenance pour vos premiers travaux, si vous le pouvez. Être dans une entreprise de produits est acceptable, tant que vous faites partie d'une équipe qui fabrique de nouvelles choses à vendre.

Une fois que vous êtes plus avancé dans votre carrière, une entreprise de produits est un excellent choix. Votre expérience existante vous préparera à une responsabilité plus élevée et la croissance d'un produit au fil du temps offre une perspective nouvelle et très précieuse.

L'économie est actuellement très forte. Si vous avez les compétences et le choix, prenez un travail qui vous exposera à plusieurs projets, plusieurs gestionnaires et plusieurs industries le plus rapidement possible. C'est dans l'un des cabinets de conseil ou dans une agence.

En prime, le monde du conseil augmentera également votre réseau extrêmement rapidement. Étant donné que la plupart des emplois sont obtenus grâce à des connexions, l'avantage ici devrait être évident.

Comprendre le monde de l'entreprise

La politique craint, mais vous devez quand même apprendre

L'autre avantage de travailler dans un cabinet de conseil est la politique. Vous pouvez reculer d'horreur mais écoutez-moi. Vous connaissez cette phrase «Rien n'est certain dans la vie, sauf la mort et les impôts»? Ajoutez la politique à la liste. Qu'on le veuille ou non, peu importe où vous allez, il y aura un certain niveau de politique d'entreprise. Dans un cabinet de conseil, vous serez exposé à la politique de votre propre entreprise ainsi qu'à celle d'autres. Vous n'avez pas à l'aimer, mais vous devez l'apprendre. En fait, plus vous détestez la politique, plus vous êtes bon dans ce domaine, car c'est ainsi que vous évitez les conneries.

De plus, ces entreprises ont tendance à être axées sur la performance. Si vous êtes bon dans ce que vous faites, cela va beaucoup plus loin dans une entreprise où votre travail (et votre facturation) va directement au résultat final.

C'est un équilibre. D'après mon expérience, moins le lieu de travail est politique, mieux c'est parce que les gens sont de véritables coéquipiers. Mais vous n'aurez pas toujours ce luxe. Essayez de faire des citrons en limonade en apprenant ce que vous pouvez sur ces environnements, puis trouvez un meilleur endroit.

Comprenez votre industrie

Il existe un logiciel pour résoudre les problèmes commerciaux. Les étudiants en informatique sont exposés à des algorithmes et à l'analyse de complexité, puis obtiennent des emplois là où ces choses ne se présentent pas. Dans la plupart des langues, des éléments comme les arbres rouge-noir, etc., sont déjà implémentés en arrière-plan. Ce qui compte vraiment, c'est que les logiciels soient livrés rapidement et fonctionnent correctement. Et puisque la plupart des logiciels sont un tas de bibliothèques parlant à un tas de services, vous travaillerez à un niveau d'abstraction beaucoup plus élevé. Faut-il encore maîtriser les structures de données? Oui. Mais cela ne suffira pas.

Donc, si ce n'est pas l'implémentation de bas niveau qui compte, qu'est-ce qui le fait? Résoudre les problèmes. Et pour bien résoudre un problème, vous devez comprendre pourquoi il existe et pour qui. Cela signifie comprendre l'entreprise.

Ainsi, l'un des moyens les plus simples de faire la différence et de briller en tant que développeur est de connaître votre industrie et de connaître vos clients. J'ai vu tant de développeurs se démarquer comme ça, mais il est presque impossible de se démarquer uniquement pour le code seul. Possible - mais cela arrive environ 1 / 10ème aussi souvent.

Apprendre le service à la clientèle, comprendre l'entreprise et vous faciliter la vie à votre (vos) patron (s), c'est comment vous démarquer. Et votre «patron» en termes pratiques est probablement un chef de projet, un propriétaire de produit, un directeur d'unité commerciale ou un développeur principal. Trois personnes sur quatre ne verront jamais votre code. La moitié du temps, le responsable peut ne pas le faire non plus et simplement le confier à quelqu'un d'autre. Mais tous sont obsédés par le produit et le client.

Entrevues

Les entretiens de développement logiciel sont interrompus. Les modes des entrevues vont et viennent, et aucune des manies n'a aucun effet sur la recherche des bonnes personnes. Cela est dû en partie au fait que les entreprises n'ont pas vraiment de définition commune du «bien». Et si l'entreprise ne sait pas qui y réussira, vous feriez mieux de croire que l'intervieweur non plus.

Voici ce qui se passe habituellement: les RH disent à l'équipe que quelqu'un vient pour une entrevue. L'un des développeurs est chargé «d'interviewer la nouvelle personne». Ils se souviennent de la façon dont ils ont été interrogés, des «questions d'entrevue avec les développeurs» de Google, puis écrivent un groupe 10 minutes avant de se présenter. Tout ce qu'ils ont vu sur Google: c'est votre interview, plus quelques questions spécifiques sur votre passé.

Ces tactiques sont spectaculairement inefficaces. Au mieux, ils savent que vous ne pouvez pas être trop terrible parce que vous avez fait quelque chose sur commande sur un tableau blanc. Ou peut-être avez-vous réimplémenté à la main un algorithme bien connu, même si ce n'est jamais ce que vous ferez dans le travail et si vous le faisiez, ce serait une idée terrible.

Comment la décision d'embauche est réellement prise

Dans la plupart des entreprises, environ 80% du choix d'embaucher ou non se résume à la personnalité et peut-être seulement 20% à la qualité de votre code. Souvent, les gens seront interviewés et la réponse officielle de l'entreprise est qu'ils veulent vraiment «quelqu'un avec beaucoup plus d'expérience chez X». Lorsque cela se produit, c'est généralement une question de personnalité. S'ils vous aimaient juste totalement, la réponse serait "Eh bien, ils ne connaissent pas X mais ils semblent VRAIMENT intelligents et ils ont fait Y, ce qui est similaire, ils iront bien".

Si vous n'obtenez pas d'offre d'emploi et que vous sentez que vous avez bien fonctionné dans la technologie, c'est une question de personnalité. Le charisme compte le plus.

Vous pourriez penser que c'est irrationnel, mais ce n'est pas le cas. Une fois embauché, vous passeriez plus de 40 heures par semaine avec cette équipe. Tout le monde préfère aller travailler avec des gens qu'ils aiment tous les jours. Vous embaucher, ce n'est pas seulement gagner de la capacité de travail, c'est aussi prendre une socialisation forcée avec quelqu'un qu'ils viennent de rencontrer. Travaillez donc sur votre code, mais aussi sur vos compétences relationnelles.

Commentaires et documentation

Chaque mois, documentez vos succès. Si vous avez augmenté la couverture des tests unitaires - document. Si vous étiez en réunion avec la haute direction - document. Si vous avez entrepris un nouveau projet, documentez. Vous le souhaitez lorsque les avis reviennent et aussi pour votre propre CV quand vient le temps de passer à autre chose.

Tous les 3 mois, obtenez de manière proactive les commentaires de vos collègues et de toute personne qui interagit régulièrement avec vous. Prenez à cœur ce qu'ils disent. La plupart des entreprises ont des cycles de rétroaction terribles qui ne vous aideront pas. En règle générale, les commentaires sont traités avec autant de planification et de réflexion que les entretiens. Votre patron pense à vous pendant peut-être une heure, écrit grognon un tas de trucs dans le système de RH que l'entreprise a acheté, frappe et sauve avec soulagement. Ce sont les rares entreprises et dirigeants qui sont vraiment obsédés par la croissance de leur personnel. Vous saurez que vous en avez un lorsque vous recevez régulièrement des commentaires constructifs sans l'application du bot RH.

Conclusion

Si vous êtes un diplômé nouvellement formé ou au début de votre carrière, vous souhaitez rechercher des postes qui optimisent votre apprentissage non seulement sur le code, mais sur les gens. Les relations déterminent le succès au moins autant que la capacité de code, sauf si vous êtes vraiment un développeur au 1/10 000, auquel cas créez votre propre entreprise.

Lorsque vous entrez dans une interview, sachez qu'il vous sera probablement demandé de créer un tableau blanc, d'écrire des algorithmes ou tout autre nombre de cerceaux. Ceux-ci n'auront probablement aucun rapport avec votre travail réel, mais vous devez quand même les faire. Mais la vraie clé est d'être agréable. Vous aimer en tant que personne ira plus loin dans une interview rapide que d'aimer votre code. Mais si vous n'obtenez pas le poste, sachez que cela n'a peut-être rien à voir avec vous.

Continue. Un jour, vous ne serez plus développeur junior.

Cette histoire est publiée dans The Startup, la plus grande publication sur l'entrepreneuriat de Medium, suivie par + 380 756 personnes.

Abonnez-vous pour recevoir nos meilleures histoires ici.