Compétences d'un programmeur moderne sous un angle différent

Salut, je m'appelle Pacha! Je travaille chez Mad Devs, et je pense que la programmation ne suffit pas pour être un bon spécialiste.


J'espère que ce matériel ne fait pas de mal aux sentiments de quelqu'un. Ce matériel est une tentative de révéler le système de compétences du programmeur moderne sous un angle différent. Pas plus.


Un programmeur est un maillon essentiel de la chaîne logicielle. Sans cela, aucun nouveau logiciel ne peut être créé. Qu'est-ce qui est si important pour un programmeur? Quelle responsabilité lui incombe, car il est tellement irremplaçable.


Je veux immédiatement attirer votre attention sur le fait que la responsabilité d'un programmeur dépend de la chronologie historique. Nous reviendrons il y a environ 20 ans.


image


Ce mème a peu à voir avec l'image d'un développeur moderne. Néanmoins, discutons de la responsabilité de ce fantastique spécialiste. Très probablement, il développe un système instable en fonctionnement. Les utilisateurs de ce logiciel sont à l'époque les utilisateurs dits d'ordinateurs personnels avancés. À cette époque, seuls les utilisateurs avancés pouvaient utiliser le logiciel au-delà d'un éditeur de texte.


Quelle est la responsabilité d'un tel spécialiste? Il devrait simplement écrire du code dans un langage de programmation. Ce spécialiste s'appelle fièrement programmeur C ++ (remplacez un autre langage de programmation, populaire à l'époque). Son leadership, en règle générale, ne comprend pas complètement ce qu'il fait. À cet égard, il a la possibilité de créer l'image de son activité qu'il souhaite lui-même. Cette image peut être négative, les programmeurs n'étaient pas très bien payés alors, c'est pourquoi ils étaient en colère. Cela peut être positif, il peut résoudre les problèmes de son leadership et créer une magie utile. Certains de mes collègues croient toujours que le maintien de l'image d'un spécialiste négatif est la norme. Dans leurs entreprises, les managers ne comprennent toujours pas ce qu'ils font et ces spécialistes sont absolument négatifs sur leur monde entier autour d'eux. Mais il n'y en a pas beaucoup - ça fait plaisir. Quoi qu'il en soit, il me semble que les sociétés informatiques sont celles où les managers comprennent ce qui se passe dans l'industrie moderne. C'est un critère suffisant pour être une entreprise informatique, comme pour moi.


À cet égard, la question: quelle est la responsabilité d'un programmeur moderne? On peut répondre à cette question pendant très longtemps, mais je vais essayer de la révéler plus rapidement et de rejeter immédiatement les choses importantes, mais je peux étirer ce matériau à l'infini. Et nous commencerons à le révéler avec les compétences qu'un programmeur moderne peut posséder.


Les compétences des spécialistes modernes dans n'importe quelle industrie sont divisées en trois grandes catégories:


  • Compétences solides;
  • Compétences générales;
  • Compétences numériques.

La logique suggère que, dans chaque spécialiste, tous les types de compétences devraient être également développés. Ils se complètent mutuellement.


Je ne divulguerai pas ces termes, car en russe, ils n'ont même pas de nom permanent. De nombreux professionnels de l'éducation se réfèrent à ces compétences différemment, ce qui déroute parfois le public. Je porterai à votre attention un tableau de correspondance de ces noms.


Clé primaireLe nom que j'utiliseraiAutres synonymesDans le RubleshTuez pour ça
Compétences solidesCompétences professionnellesCompétences approfondies, compétences duresHard Skills, Hard SkillsCompétences solides
Compétences généralesCompétences professionnellesCompétences générales, compétences généralesCompétences non techniques, compétences non techniquesCompétences générales
Compétences numériquesCompétences numériquesCompétences numériques, Compétences numériquesCompétences numériques

Si les noms du problème, avec la définition et encore plus. Je ne donnerai que les concepts nécessaires à la discussion d'aujourd'hui.


Pour être bref. Chaque spécialiste a exactement une compétence professionnelle : un programmeur - pour programmer, un constructeur - pour construire, un chirurgien - pour la chirurgie (plaisanterie inappropriée), etc. Cette compétence comprend la quantité infinie de connaissances qu'un spécialiste possède. Dans le cas d'un programmeur, cela comprend la compréhension de la très grande base que tout le monde devrait connaître, la compréhension des principes de son langage de programmation, etc.


Les compétences numériques sont une histoire différente pour la plupart des professions. Parce que l'informatique pénètre aujourd'hui dans toutes les industries. Il est difficile de trouver une industrie qui ne soit pas numérisée aujourd'hui: à un autre moment, je dirais que c'est une religion, mais non! Par conséquent, pour les spécialistes de la plupart des professions, les compétences numériques sont un article distinct avec lequel travailler. Pour les programmeurs, les compétences numériques et les compétences professionnelles, pour des raisons évidentes, se chevauchent. Bien que je sois chaque programmeur, je pense que je devrais être un utilisateur avancé de logiciels. Je veux dire, utilisez différents services pour organiser votre vie, essayez de faire une maison intelligente, utilisez des applications modernes pour la vie, etc. Il développe davantage les compétences numériques. Après tout, pour être un bon fournisseur, c'est bien d'être un bon consommateur.


Compétences trop professionnelles - c'est la chose sur laquelle nous nous attarderons plus en détail. Par rapport aux compétences professionnelles, chaque spécialiste a besoin de plusieurs, et de préférence beaucoup, de compétences supraprofessionnelles. Exemples de compétences professionnelles: gestion du temps, recherche de ressources, utilisation des ressources, compétences en négociation, compétences en communication, gestion des personnes, prise de parole en public, etc.


Pourquoi ai-je besoin de ces compétences? J'écris dans React! - sonnera du public.


C'est là que commence la différence de responsabilité entre les programmeurs d'il y a 20 ans et les programmeurs d'aujourd'hui. Aujourd'hui, nous sommes les fournisseurs du futur; sans nous, le développement de logiciels est impossible. Nos collègues des entreprises (managers, chefs de produit, commerciaux, parties prenantes, marketeurs et autres) ont besoin de notre aide. Nos compétences (notamment les compétences professionnelles) et la manière dont nous pouvons les appliquer jouent parfois un rôle décisif dans le développement d'un produit. Pourquoi J'ai décrit dans un article des vraies piles complètes sur Habré. Il décrit où vous devez appliquer vos compétences professionnelles plus que la plupart d'entre nous. En fait, les compétences sur lesquelles j'écris maintenant viennent s'ajouter à une qualité très cool, que nous avons bien développée chez Mad Devs - l'affinité client (proximité avec le client).


Comme je l'ai écrit ci-dessus, tous les types de compétences devraient être développés de manière égale dans chaque spécialiste. Et pour appliquer qualitativement vos compétences professionnelles dans les situations que j'ai décrites dans l'article au lien ci-dessus, vous devez également avoir des compétences super-professionnelles bien développées.
Lequel spécifiquement? Je vais énumérer les 6 principales compétences professionnelles importantes que, selon moi, tout spécialiste moderne devrait avoir:


  • Gestion du temps . Ici, je pense, évidemment. La compétence en gestion du temps ne concerne qu'indirectement l'évaluation des tâches. L'évaluation des tâches est une compétence professionnelle. La gestion du temps pour un programmeur est une distribution logique du temps pour le codage, la lecture d'articles, l'auto-éducation et les rassemblements.
  • Capacité à travailler en équipe . Presque personne ne fait seul des projets. La capacité de travailler en équipe est une compétence absolument indispensable.
  • La capacité d'enseigner . Et pour être précis, la capacité d'introduire dans le contexte, une compétence comparable à la capacité d'enseigner. La tâche de la personne qui enseigne est essentiellement une introduction au contexte. Seul l'ensemble de connaissances est plus étendu. Les programmeurs changent très souvent de contextes en raison du changement de projets et d'équipes. Et la capacité d'introduire un collègue dans le contexte, en soulignant les détails les plus importants et en omettant les détails inutiles, est une compétence très importante, compte tenu du coût actuel de l'opération de saisie du contexte. Soit dit en passant, cette compétence est également utilisée dans le mentorat.
  • Étiquette commerciale . Partant du respect des règles de la langue russe et se terminant par les règles élémentaires de communication avec les clients. Certains hommes d'affaires oublient qu'ils ne sont pas dans le bavardage des gophers ou du framework Yii (remplacez votre technologie). Dans certaines entreprises, l'étiquette commerciale est importante dans la correspondance par courrier au sein de l'entreprise. Chez Mad Devs, l'étiquette commerciale n'est importante que dans son contexte lorsqu'elle est importante pour le produit que nous fabriquons. S'il est plus facile pour les membres de l'équipe de percevoir uniquement ce type de communication, une telle étiquette de communication sera adoptée. Mais au moins tous les clients avec qui j'ai travaillé sont des gens qui se concentrent principalement sur le résultat et préfèrent communiquer sans soupe sérieuse. Ici à chacun le sien. Mais! La capacité d'inclure l'étiquette commerciale lorsque la situation l'exige est importante!
  • Fixation d'objectifs . Deux sortes. Personnel et design. Dites-moi, programmeur, qui serez-vous dans 5 ans? Une question typique à l'entrevue, mais la réponse à celle-ci aide à comprendre comment une personne est liée à la planification à long terme. Mon opinion personnelle (cela signifie que je n'impose à personne, ce qui signifie qu'il est inutile de discuter): malgré l'entropie du monde moderne, une planification à long terme est NÉCESSAIRE, NÉCESSAIRE, NÉCESSAIRE! Personne ne vous demande de vous en tenir à un plan, quoi qu'il arrive. Les plans doivent être modifiés, et c'est une façon adulte. Mais garder à l'esprit l'objectif et l'ensemble des tâches pour les années à venir (de préférence autour de 10 ans) est une ligne directrice en fonction de laquelle les décisions sont prises. Plus précisément, je trouve plus facile de travailler avec des personnes ayant une planification à long terme. Vous pouvez investir et évoluer avec eux sans craindre qu'ils ne pleuvent demain. L'établissement d'objectifs dans le projet est également un point important. En tant que programmeur, même si vous abandonnez tout ce type de bêtises sur les compétences professionnelles et autres, vous êtes responsable de l'une des parties du projet. Et vous devez planifier le développement de cette partie du projet à long terme. Quelles abstractions apparaîtront, quels modules iront séparément pour vivre leur propre vie, etc.
  • Sociabilité . Il s'agit de la capacité de communiquer avec des collègues d'autres professions. Soyez réactif, aidez vos collègues à comprendre leurs problèmes liés à nos compétences professionnelles. Soyez une bouée de sauvetage pour eux lorsqu'ils sont à l'arrêt et ainsi de suite. La sociabilité aide également à établir un contact avec le client, ce qui est toujours utile pour tout projet.

Ces compétences supraprofessionnelles, à mon avis, aideront à révéler pleinement vos compétences professionnelles.


Le principal message qu'un programmeur n'est pas aujourd'hui un typer de code. Il s'agit d'une unité de combat importante: une unité qui peut décider de l'issue d'une bataille si elle utilise correctement tous ses sorts.
Et pour cela, vous devez non seulement être un bon développeur et être capable de coder, mais également disposer d'un ensemble de compétences qui, à première vue, vous aident à distance dans l'exercice de vos fonctions, mais ce n'est pas le cas.


Nous répondons à la question: quelle est la responsabilité du programmeur moderne. En première approximation, c'est du code à écrire. Mais en fait, un bon programmeur moderne dans la plupart des cas a un ensemble de responsabilités aussi vague, autant que les concepts de compétences professionnelles sont aujourd'hui vagues. Cela, en plus de tout, dépend de l'entreprise, de l'équipe, du projet et du chef d'équipe.


Bien sûr, chaque développeur décide qui il doit être. Et quelles compétences développer, ce qui est important, etc. Vous pouvez continuer à être un composeur de code, et dans les années à venir, vous vous sentirez très bien.


Certes, il y a des experts qui diront que les spécialistes informatiques étroits commenceront bientôt à s'éteindre. L'extinction complète ne les menace pas, mais sous la forme dans laquelle ils se trouvent actuellement, les professions ne resteront pas à coup sûr.


Il y a un projet tellement intéressant: Atlas des nouveaux métiers . Vérifiez-le et voyez que les nouvelles professions sont, en règle générale, des professions du type informatique + une autre industrie.


Il manque quelque chose dans la profession de JS- .


J'espère que ce matériel n'a blessé personne. Ce matériel est une tentative de révéler le système de compétences du programmeur moderne sous un angle différent. Pas plus.

Source: https://habr.com/ru/post/fr451482/


All Articles