Eugène Cozac sur le fait de devenir un développeur de haut niveau
Publié: 2022-10-26TechBullion : Comment êtes-vous venu à la programmation ?
Eugène Cozac : En grandissant, j'ai découvert mon intérêt pour les mathématiques et les sciences STEM. J'ai commencé à coder tout seul et, bien sûr, à la fin du lycée, j'étais sûr à 100 % de vouloir travailler dans l'informatique. J'ai donc obtenu un diplôme en génie informatique de la meilleure université de Moldavie. Avant de me lancer dans la programmation, j'ai assemblé plus de 300 ordinateurs car mon premier diplôme était en génie informatique.
TechBullion : Quel a été l'un des projets les plus difficiles pour vous au tout début ?
Eugène Cozac : Eh bien, je ne peux pas dire que j'ai eu des difficultés au tout début. Mais il y en a eu un au cours de la troisième année de ma carrière lorsque je suis devenu développeur front-end pour Samsung Pay. Depuis que j'étais le principal développeur d'interface utilisateur de Samsung Pay Promotions, j'étais responsable de tout. Samsung Pay comptait alors plus de 15 millions d'utilisateurs, et tout problème ou bogue pouvait influencer leur expérience. Si quelque chose se passait mal à un moment donné, tous les utilisateurs pouvaient le voir. J'ai donc été très prudent et j'ai essayé de fournir la meilleure qualité possible.
TechBullion : Habituellement, les gens se spécialisent dans un éventail restreint de langages de programmation. Comment en êtes-vous arrivé à être aussi complet en termes de langages de programmation ?
Eugene Cozac : Habituellement, le parcours d'un développeur est essentiellement une promotion du niveau Junior au niveau Senior au fil du temps, avec l'amélioration de ses compétences. Mais ce n'est pas assez. La plupart des développeurs travailleraient probablement dans la même entreprise et sur le même projet pendant quelques années, mais ce n'est pas ainsi que vous pouvez devenir le top 1% des développeurs. De plus, les gens ne sont pas nécessairement capables d'échanger des projets très rapidement, et s'ils veulent changer d'entreprise, cela peut devenir difficile. Donc je veux dire, c'est que beaucoup de développeurs sont dans leur zone de confort, ce qui est bien aussi. Dans le même temps, même les développeurs seniors ne seraient pas toujours disposés à assumer la responsabilité d'être à la tête du projet, ils font simplement leurs tâches. Probablement, cela a à voir avec une personnalité % la plupart des gens ne veulent tout simplement pas participer à des hackathons, faire partie de la science ou construire quelque chose qui résout un problème de programmation. Ils sont un peu paresseux et restent bien dans leur zone de confort. J'ai toujours été curieux et ma capacité à apprendre plusieurs langues vient de ma volonté de résoudre le problème de la meilleure façon possible plutôt que de simplement pouvoir coder dans une autre langue.
TechBullion : Avez-vous participé à des hackathons ou à des sprints de programmation ?
Eugène Cozac : Pas vraiment. Je sais que de nombreux développeurs peuvent tester leurs compétences lors de hackathons, mais je pense que le plus important est d'essayer de construire autant de projets que possible et de travailler dans différents environnements. Certes, les développeurs veulent souvent démontrer aux autres ou à eux-mêmes à quel point ils sont cool à travers les hackathons, mais, pour moi, une autre façon de prouver vos compétences est de construire votre propre framework sur JS/CSS, et de le rendre public ou d'implémenter votre cadre dans une entreprise où vous travaillez. Et là pour prouver pourquoi cette entreprise devrait utiliser votre propre framework, mais pas React ou Bootstrap, ou Material UI. Quoi qu'il en soit, seulement 1% des développeurs gagnent des hackathons, la création de leur propre framework peut créer des plateformes qui seront réutilisables pour des millions d'utilisateurs.
TechBullion : Quel a été votre produit le plus rapide ? Comment avez-vous interagi avec l'équipe pendant le processus ?
Eugene Cozac : Habituellement, les développeurs travaillent dans un environnement Agile, et ils ont un certain nombre de tâches par sprint (2 semaines). Que faire si ces tâches sont divisées par 2 semaines, mais que vous pouvez tout faire en 3 jours ? Toutes les entreprises ne sont pas éthiques pour demander plus de tâches car nous sommes égaux, l et aussi les chefs de projet prévoient une quantité de travail pour tous les développeurs. Mais j'ai eu une situation où j'étais un entrepreneur pour une entreprise dans laquelle je n'étais qu'un développeur, et c'est pourquoi j'ai choisi cette entreprise. Pour moi ce n'était pas si intéressant de travailler sur un petit nombre de tâches, je voulais construire une Web App pour une entreprise tout seul, par exemple au lieu de 5 développeurs. En 11 mois, j'ai créé un système CRM à partir de zéro jusqu'à la fin, il y avait du travail API, UI et UX. Ce projet a été réalisé très rapidement avec de nombreuses fonctionnalités telles que la gestion de projets, le suivi des stocks, la génération de factures, la création et la gestion des devis, ainsi que le suivi des stocks à l'aide du GPS. Je n'ai pas d'informations à jour, mais ce CRM sera vendu sous forme d'abonnement en raison de la petite niche d'activité : l'acoustique dans la construction.
TechBullion : Que faut-il pour être un développeur de premier ordre ?
Eugene Cozac : De nombreux développeurs peuvent vous répondre que l'expérience est la chose la plus importante si vous voulez être un développeur de premier ordre, mais ce n'est pas nécessairement vrai. Je connais de nombreux développeurs qui ont plus de 10 ans d'expérience, mais de nombreux projets ou différentes tâches complexes peuvent être difficiles pour eux. Cela peut expliquer pourquoi pour quelqu'un, il faut 7 à 8 ans pour devenir développeur senior alors qu'il ne faut que 4 ans pour les autres. Ainsi, la meilleure approche consiste à développer vos capacités exceptionnelles et la bonne façon de résoudre les tâches, puis de faire l'expérience. En même temps, c'est bien de faire des entretiens en développement à la location : j'ai fait plus de 100 entretiens pour différents clients. Comme je l'ai dit, prouver vos capacités et compétences exceptionnelles en programmation, c'est mettre en œuvre un projet dans votre propre cadre dans l'entreprise pour laquelle vous travaillez. Cela signifie que non seulement vous connaissez les langages de programmation et comment utiliser les frameworks, mais vous pouvez également créer votre propre framework et prouver à l'entreprise qu'il l'utilise. Ainsi, sur la base de votre propre cadre, vous créerez un produit qui utilisera des millions d'utilisateurs. Je pense que cela ne peut faire que 1% des développeurs. Par exemple, je construis mon propre framework d'interface utilisateur qui peut être utilisé en combinaison avec React, le nom est Krypton. Ce n'est toujours pas fini mais pour l'un de mes clients actuels, j'utilise des parties de Krypton pour construire un nouveau projet. Donc, le client actuel n'utilise pas mon framework entièrement mais partiellement, mais j'espère que jusqu'à ce que nous terminions le projet pour ce client, mon Krypton sera terminé, et plus de 60% du projet sera construit sur Krypton. De plus, un bon conseil pour être un développeur de premier ordre est d'écrire des publications scientifiques dans des revues professionnelles, j'en ai plus de 25. De plus, j'ai fait plus de 100 critiques d'articles par les pairs, car en tant que développeur, vous devez non seulement faire partie de la programmation, mais aussi de la science.
TechBullion : Quelles sont vos principales compétences ?
Eugène Cozac : Je dirais, la possibilité de rejoindre n'importe quel projet à n'importe quel moment. J'étais dans des situations différentes depuis que j'ai commencé le projet à partir de zéro ou que j'ai rejoint lorsque le projet était en cours. De nombreuses entreprises vous donnent environ 2 à 3 semaines pour le comprendre, généralement pour moi cela prend 2 jours. Les développeurs dotés de capacités exceptionnelles sont capables de comprendre n'importe quel projet et de commencer à résoudre des problèmes ou à effectuer des tâches en quelques jours, et non en quelques semaines. De plus, je peux travailler sur 4 projets en même temps. Je suppose que seulement 1 % des développeurs peuvent le faire, je veux dire toutes sortes de développeurs, de Junior à Tech Leads. J'ai eu l'expérience de travailler sur 2, 3 et 4 projets en même temps, et de livrer de très bons résultats, de plus, sur chacun d'eux, je suis au moins un Senior ou un chef d'équipe pour environ 4 développeurs. De plus, à ce niveau, vous devez être en mesure d'encadrer d'autres développeurs de Junior à Senior. Travailler aussi très vite non seulement dans des projets quotidiens, mais aussi pour construire quelque chose comme un framework open-source, écrire des publications scientifiques, etc. Qualité. La rapidité. Diversification.
TechBullion : Quelle langue a été la plus difficile pour vous ?
Eugene Cozac : Je ne pense pas qu'un framework ou un langage soit très difficile, une fois que vous connaissez un langage de programmation, les autres sont un peu pareils, il suffit de quelques autres règles, ou un framework peut avoir moins ou plus de fonctionnalités. Pour un développeur aux capacités exceptionnelles, il n'existe aucun langage de programmation difficile.