Vous attendez à la réception du campus de Google à Boulder, dans le Colorado, en attendant que votre entretien de codage commence. En face de vous dans le hall sont assis deux autres candidats :
Un développeur charismatique affichant des airpods qui peut charmer n'importe qui dans la pièce mais qui a besoin de 8 heures angoissantes pour faire fonctionner une liste chaînée
Un prodige de la programmation qui écrit des jeux en assembleur, mais qui est un imbécile si colossal que personne ne jouera à son jeu de toute façon
Lequel d'entre eux fournira une concurrence plus féroce pour le poste? Abordons la question séculaire : qu'est-ce qui est le plus important, les compétences techniques ou générales pour les programmeurs ?
J'expliquerai d'abord ce que sont les hard skills et les soft skills, mais ensuite nous plongerons dans la raison pour laquelle j'ai voulu écrire cet article : l'analogie du rectangle . Cette analogie vous aidera à comprendre où vous devriez passer votre temps à vous améliorer pour maximiser vos chances de décrocher un emploi.
Tout d'abord : que sont les compétences techniques ? Ce sont les capacités tangibles et mesurables dont vous avez besoin pour faire le travail. En tant que développeur, vous devrez :
Les compétences techniques sont le pain et le beurre de votre carrière en programmation. Ils sont une exigence absolue pour la plupart des postes de programmation et ils démontrent vos compétences techniques. En fait, si vous ne pouviez avoir qu'un seul type de compétence, les compétences spécialisées seraient plus importantes. Après tout, il est assez difficile d'écrire du code sans, vous savez, savoir coder.
Le monde de la technologie évolue à une vitesse vertigineuse, et si vous n'améliorez pas continuellement vos compétences techniques, vous allez vous retrouver dans la poussière. N'oubliez pas que Rome ne s'est pas construite en un jour, et votre expertise en programmation non plus. Investissez du temps et des efforts dans l'apprentissage de nouveaux langages, outils et techniques au fil du temps.
Vous n'avez pas besoin d'être un expert en tout , mais vous devez savoir comment fournir un code fonctionnel qui résout de vrais problèmes dans votre domaine. Si vous souhaitez être développeur back-end et travailler dans des entreprises SaaS, vous devez au moins :
Les compétences non techniques, en revanche, sont les capacités immatérielles et interpersonnelles qui peuvent donner de belles bottes à votre carrière. Elles ne sont peut-être pas aussi faciles à quantifier que les compétences spécialisées, mais elles sont presque aussi vitales. Les soft skills incluent :
Les compétences générales sont la sauce secrète qui peut propulser votre carrière vers de nouveaux sommets. Ils facilitent la collaboration et le travail d'équipe, ce qui vous permet de travailler plus facilement avec les autres et de faire le travail. De plus, avoir de solides compétences non techniques peut améliorer votre satisfaction professionnelle globale et votre croissance de carrière. Après tout, personne ne veut travailler avec un génie qui est aussi un abruti.
Les compétences techniques sont une condition requise pour obtenir un emploi dans la technologie, mais en supposant que l'écart de compétences techniques entre deux candidats est similaire, j'ai en fait vu le candidat le plus charismatique et sympathique obtenir le poste plutôt que celui légèrement plus compétent sur le plan technique. Pourquoi? Les managers sont des personnes, et les gens aiment travailler avec d'autres personnes qu'ils aiment.
Si vous avez une personnalité de merde, ne vous inquiétez pas trop. Vous n'avez pas besoin d'être un orateur brillant ou un maître de l'écrit juste pour obtenir un emploi en tant que singe du code. La règle numéro un devrait être facile à suivre : ne soyez pas un connard. Si vous faites cela, vous êtes à mi-chemin.
La règle de suivi connexe est d'équilibrer la confiance et l'humilité . Si vous êtes un développeur gentil et ouvert d'esprit qui sait de quoi vous parlez, vous vous en sortirez très bien.
Maintenant que nous avons exploré à la fois les compétences techniques et générales, plongeons dans l'analogie du rectangle pour comprendre comment elles fonctionnent ensemble. Imaginez que vos compétences spécialisées aient la longueur d'un rectangle, tandis que vos compétences générales en représentent la largeur.
L'aire de ce rectangle correspond à votre probabilité de décrocher un emploi. Plus la zone est grande, meilleures sont vos chances de trouver un concert qui correspond à vos compétences.
Cela signifie que l'équation de votre probabilité d'emploi est :
hard_skills * soft_skills = job_probability
Pour maximiser job_probability
avec le moins d'effort possible, consacrez plus de temps à la compétence qui vous manque. L'aire d'un carré est plus grande que l'aire d'un rectangle déséquilibré de même périmètre.
Si vous pensez que cela ressemble un peu à une feuille de personnage de Donjons & Dragons où vous avez un nombre limité de points de compétence à allouer, ce n'est pas ainsi que fonctionne le monde réel. Dans le monde réel, vous pouvez simplement obtenir plus de points de compétence . Vous pouvez exceller dans les compétences techniques et générales.
Si vous travaillez dur et faites de votre mieux, vous pouvez être à la fois un excellent programmeur et une personne formidable. Ce n'est pas une situation de choix. Dans les mots immortels de Shia LaBeouf, "Just do it!"