- Une aptitude à apprendre : l’un des faits sur lesquels peu de place est laissé pour une antithèse est que la technologie est très évolutive. De nouveaux langages sortent pour répondre à des besoins bien spécifiques, d’autres enrichissent leurs bibliothèques. La technologie est en constante évolution et refuse de demeurer statique. La résultante est très simple : ce qui semble être à la pointe de la technologie aujourd’hui en matière de logiciel ou de matériel peut s’avérer obsolète dans les années voire les mois à venir. Bien sûr, il y a des langages de programmations qui résistent à l’influence du temps, mais ce sont là des exceptions, pas des règles.
A ce rythme, les développeurs qui ne se contentent pas d’acquérir des bases dans les nouvelles technologies qui font leur apparition mais qui gardent dans leurs veilles technologiques des outils pour mettre à jour leurs connaissances sur des plateformes qu’ils maitrisent déjà possèdent un réel avantage. « Observez les développeurs que vous connaissez. Ceux qui trainent sur les forums, posent souvent des questions et s’essaient à de nouvelles plateformes sont ceux qui sont le plus susceptibles de réussir dans leurs carrières ». - Une palette de connaissance étendue : pour Kolakowski, l’expertise dans un ensemble de domaines peu fourni, que ce soit du côté logiciel ou du côté matériel, ne suffit pas. « Un développeur ardu a au moins une certaine expertise dans les serveurs, les clients desktop ainsi que les appareils mobile » a-t-il soutenu. « Vous voulez développer pour le Web? Préparez-vous à connaître Javascript, HTML, CSS, SQL, Node.js, PHP ou ASP.NET, et bien plus encore. Le développement de jeux correspond plus à votre goût ? Non seulement vous aurez besoin d'une solide compréhension de C ++, mais en plus d’une connaissance de UX, de la modélisation, de l’Intelligence Artificielle, et ainsi de suite ».
Selon lui, parce que le développement mobile est de plus en plus fragmentée, un développeur qui veut lancer son logiciel sur une variété de plateformes gagnerait à apprendre Objective-C et Swift (pour iOS), Java (pour Android) mais aussi le C et le C ++ « et ce, avant même de commencer à ingurgiter les subtilités de e-commerce et du marketing ». - Les bugs et les essais : avoir les capacités de concevoir un nouveau logiciel est une chose, mais il faut également savoir comment le rendre aussi meilleur que possible. Même si cela ne nécessite pas de se spécialiser en assurance qualité, un développeur devrait néanmoins être en mesure de résoudre des problèmes rapidement, surtout lorsqu’il est dans une équipe. Si les testeurs assurance qualité sont généralement bien informés dans les langages de programmation les plus populaires, ils disposent en plus d’un éventail de compétences non techniques, parce que la résolution des problèmes de logiciels nécessite souvent l’interaction avec des personnes diverses.
- Avoir des compétences non techniques : les compétences non techniques incluent la communication, l'engagement, la flexibilité, l'efficacité et la capacité d'observer son environnement de façon à avoir des idées sur une manière de procéder. Alors que certains développeurs pourraient reléguer les compétences non techniques au second rang, il va de soi qu’ils devront interagir avec des êtres humains sur une base régulière. Dans ce cas, il est donc préférable d’apprendre quelques tours pour que lesdites interactions se passent sans accros.
En définitive donc, pour lui, être un bon développeur ne saurait se résumer à avoir une bonne connaissance d’une palette de technologies et de plateformes, mais également un fort sentiment de curiosité et une volonté d’apprendre et la capacité à développer des aptitudes non techniques.
Source : Insights
Et vous ?
Quels sont les critères qui vous permettraient d’estimer si untel est un bon ou un piètre développeur ? Pourquoi vous paraissent-ils pertinents ?