La programmation est-elle difficile ?
C’est une question que beaucoup de non-programmeurs me posent. Cela la place au même rang que des questions comme « les programmeurs travaillent-ils à domicile » et « quel type d’éducation faut-il pour être programmeur ? ». Les esprits curieux veulent savoir.
Mais contrairement à certaines de ces questions, celle-ci est en fait assez difficile. C’est une question simple, mais la réponse est très nuancée.
Donnons-nous donc la peine d’y plonger, en détail, et de vous aider à comprendre si la programmation est difficile ou non.
La programmation est-elle difficile ? La réponse courte
Donc, tout d’abord, abordons la question avec une réponse courte et directe. Cela préparera le terrain pour le reste du post.
La programmation est-elle difficile ?
Eh bien, comme les consultants aiment le dire, « ça dépend ». Que la programmation soit difficile ou non dépend de nombreux facteurs, tels que le type spécifique de programmation et comment vous, en tant qu’individu, pensez. Donc, la réponse courte est que la programmation va vraiment de l’étonnamment facile à l’incroyablement difficile.
Pensez de cette façon. Essayez de répondre à certaines de ces questions en vous basant sur votre expérience :
- Est-ce difficile de jouer au basket ?
- Est-ce difficile de parler portugais ?
- Est-ce difficile de conduire une voiture ? Est-ce que c’est difficile ?
Vous pouvez voir pourquoi j’hésite et que je dis « ehhh… ça dépend ».
Les gens ont tendance à être trop intimidés par la programmation
Je vais, cependant, offrir une opinion un peu plus nuancée. Plus précisément, je pense que les non-programmeurs ont tendance à surestimer considérablement la difficulté de la programmation.
Vous avez déjà entendu quelqu’un dire quelque chose comme ceci:
Oh, je ne suis juste vraiment pas une personne de mathématiques!
Eh bien, j’entends cela souvent. Mais j’entends la même chose à propos de la programmation plus. Et je considère cela comme ironique parce que, si certains domaines de la programmation nécessitent vraiment des mathématiques, beaucoup ne le font pas. La programmation, à mon avis, est un ensemble de préoccupations beaucoup plus diversifiées que les « maths ».
Je crois vraiment que beaucoup de gens supposent qu’ils ne réussiront jamais en tant que programmeur, mais ils ont complètement tort. C’est un sujet beaucoup plus abordable que le vaste monde semble le croire.
Démontons quelques mythes sur la programmation, au-delà de celui des maths
Pour vraiment enfoncer le clou, examinons d’autres idées fausses sur la programmation, au-delà du mythe selon lequel les programmeurs doivent être vraiment bons en maths.
Idée fausse 1 : les programmeurs sont des hackers d’élite, comme le type dans Mr. Robot
Quel que soit votre âge, il y a un film de votre âge d’or qui présente les programmeurs comme des hackers de type Bond (ou Bond-villain). Pour moi, en grandissant, c’était le film Sneakers. Si vous avez grandi un peu plus tard que moi, vous avez peut-être eu la malchance de voir Hackers ou Swordfish. De nos jours, le genre s’est amélioré, et vous pourriez apprécier Mr. Robot.
Mais que le film soit génial, comme Sneakers, ou terrible, comme Hackers, vous avez toujours des protagonistes hackers et des antagonistes hackers qui semblent à la fois être des quasi-sociopathes et des programmeurs incroyablement brillants.
Ce n’est pas la vraie vie. Ce n’est même pas du vrai hacking, et encore moins de la programmation banale. Donc ne supposez pas que la programmation nécessite de déplacer des cubes autour d’un écran, ou quoi que fasse Hugh Jackman dans Swordfish. Habituellement, cela nécessite juste beaucoup de Googling.
Misconception 2 : Vous avez besoin d’un diplôme en informatique
Nous avons couvert cela dans beaucoup de détails, donc je ne vais pas insister sur le point ici. Mais non, vous n’avez pas besoin d’un diplôme en informatique pour programmer. Vous n’avez pas besoin d’un diplôme de commerce, et vous n’avez peut-être même pas besoin de suivre un bootcamp.
Ces choses faciliteront toutes l’obtention de ce premier emploi, mais elles ne sont pas obligatoires. Ainsi, lorsque vous vous demandez si la programmation est difficile, vous confondez probablement les cerceaux que vous devez franchir avec l’activité. Il n’y a pas de prérequis à la programmation au-delà d’un bloc-notes et du téléchargement d’un seul interprète ou compilateur.
Misconception 3 : les programmeurs ont des compétences sociales terribles
Celle-ci pourrait vous faire vous gratter un peu la tête. Vous vous dites probablement : « Qu’est-ce que l’idée des programmeurs ayant de terribles compétences sociales a à voir avec moi, ou avec la raison pour laquelle la programmation est difficile ? »
Eh bien, c’est subtil, mais réel. Le monde regarde des émissions de télévision et des films où l’on peut identifier les programmeurs compétents par leur tendance à « geeker ». »
Alors la logique inverse s’insinue et vous pensez : « Si je ne suis pas follement maladroit socialement, pourrais-je jamais être un « vrai » programmeur ? »
Oui, oui, vous le pouvez. Les programmeurs assistent à de nombreuses conférences et meetups, donnent des conférences, forment des communautés et ont des vies sociales formidables et normales.
Misconception 4 : les programmeurs sont immédiatement bons à tout ce qui concerne les ordinateurs
J’ai personnellement obtenu un diplôme en informatique, puis un emploi de programmation. Et, lorsque j’ai fait cela, tout le monde a immédiatement supposé que j’étais un expert en tout ce qui concerne les ordinateurs.
- Erik, mon ordinateur fait ce bruit bizarre – que pensez-vous qu’il y ait un problème ?
- Hey, j’obtiens l’erreur #90314 lorsque j’essaie de fermer MS Word. Qu’est-ce que ça veut dire ?
- Quelle est la meilleure carte vidéo ?
Toutes ces questions étaient le genre de questions que j’entendais. Et en gros, je me contentais de googler la réponse (si ce n’est de dire, « wow, je ne sais vraiment pas. »). Je gagnais ma vie en écrivant des logiciels, mais cela ne signifiait pas que je savais tout et n’importe quoi sur les ordinateurs.
Je mentionne cela parce que vous ne devriez pas penser que vous devez savoir tout et n’importe quoi sur les ordinateurs pour être un programmeur.
Il y a beaucoup de variété dans la programmation
Ayant brisé quelques mythes, regardons la réalité de la programmation. Et la réalité est qu’elle est en fait très diversifiée. Voici un petit échantillon des choses que les gens font sous le parapluie général de la « programmation »:
- Conception de la mise en page et des propriétés visuelles d’une page Web.
- Création d’algorithmes d’intelligence artificielle.
- Scripter des tâches manuelles pour les automatiser.
- Modélisation statistique complexe.
- Créer des applications mobiles simples et reproductibles.
Et ce n’est qu’un minuscule échantillon des différents types de programmation. Cela n’aborde même pas tous les différents rôles que vous pourriez occuper qui contribuent à ces efforts.
Il y a autant de variété dans « être un programmeur » que dans « être un homme d’affaires ». »
Certains rôles de programmation sont plus abordables
Compte tenu de cette variété, j’aimerais creuser un peu pour savoir quels rôles pourraient sembler plus abordables.
Je vais m’éloigner un peu du spectre « facile à difficile », seulement parce que cela dépend tellement de ce que vous, en tant qu’individu, trouvez difficile. Par exemple, je me suis toujours très bien débrouillé avec les mathématiques et les algorithmes, mais je suis franchement terrible en conception et en mise en page. Vous pourriez avoir des inclinaisons opposées et penser que je suis ridicule de dire « programmer un algorithme de tri est facile » et répliquer avec quelque chose que je trouverais tout aussi ridicule : « mettre en page une belle page web est facile. »
Donc comprenez que je ne qualifie pas catégoriquement les choses de faciles ou difficiles. Au lieu de cela, je souligne des choses que vous n’auriez peut-être pas envisagées, si vous n’aviez jamais pensé que la programmation était hautement mathématique.
- Certaines personnes dans des rôles de programmation se concentrent largement sur la mise en page et l’expérience utilisateur. Cela signifie se concerner fortement avec l’esthétique de l’application ainsi que la façon dont les utilisateurs interagissent avec elle.
- D’autres programmeurs se concentrent largement sur les données et les bases de données. Au lieu de construire de grands logiciels utilisant des instructions complexes, ils se concentrent beaucoup plus sur les données réelles et le raisonnement sur ces données.
- Enfin, une autre discipline est plus proche des opérations et du support. Certaines personnes travaillent un bon bout avec des ordinateurs en tant qu' »utilisateurs avancés » et apprennent à programmer en apprenant ici et là comment automatiser et rendre plus efficace ce qu’ils font manuellement.
Et ce ne sont là que quelques exemples. Comprenez donc que, même si la programmation vous semble difficile, il pourrait y avoir des rôles en son sein qui semblent en fait plus abordables.
La programmation est, cependant, étrangère, ce qui peut signifier que la programmation est difficile
À ce stade, j’aimerais changer de vitesse juste un peu. J’ai l’impression d’avoir passé un bon bout de temps sur le thème « hey, la programmation n’est pas aussi difficile que vous le pensez ». Et c’est vrai. Je pense que beaucoup de gens répondraient à la question « la programmation est-elle difficile » par un « oui » simplement parce qu’ils ne savent pas ce que la programmation implique.
Mais je vais tempérer un peu cela ici. La programmation est difficile dans le sens où elle vous demande de penser d’une manière dont vous n’avez pas l’habitude.
Pour comprendre ce que je veux dire, pensez à traiter avec Alexa.
Alexa peut répondre à beaucoup de questions tactiques, et elle vous ravira et vous surprendra parfois. Mais elle est aussi très frustrante. Son caractère informatique transparaît parfois lorsqu’elle comprend mal, de manière comique, les interactions humaines de base.
Maintenant, considérez que, pour ce qui est des programmes informatiques, Alexa est complètement optimisée pour faire de son mieux pour vous comprendre. Vous devez être extrêmement précis, littéral et obtus en lui parlant, et elle est là pour vous comprendre.
Le compilateur (ce qui traduit votre code en action) est comme Alexa, mais il n’est pas conçu pour vous rendre la vie facile. Il est conçu pour maximiser l’utilité. Donc, si vous devez être précis lorsque vous traitez avec Alexa, la précision est loin de décrire ce que veut le compilateur. Prenez un point-virgule pour un deux-points, et vous pouvez planter un ordinateur.
Alors, la programmation est-elle difficile ? Oui, dans le sens où elle exige que vous pensiez d’une manière dont la plupart des gens ne pensent normalement pas.
Programmer l’état de l’art est légitimement difficile
Pour continuer avec le thème de « oui, la programmation est difficile », considérons qu’il y a des poches du monde de la programmation qui exigent beaucoup de compétences et de pratique pour y entrer. N’y pensez pas trop. Parfois, la programmation est vraiment difficile.
Faire des choses avancées avec la robotique, la chaîne de blocs, l’intelligence artificielle, les algorithmes de trading, etc. exige beaucoup de compétences, de pratique, de talent et d’esprit de compétition. Certaines des grandes entreprises de la Silicon Valley versent des salaires massifs aux développeurs de logiciels, et elles ne vont pas le faire pour quiconque se promène par hasard.
Il y a des spécialités dans le monde de la programmation qui nécessitent l’éclair dans une bouteille, dans le sens où vous avez besoin de pratique, de talent, d’intelligence et de chance. Et au-delà de cela, il y a des rôles, des positions, des défis et des situations que pas beaucoup de gens peuvent remplir de manière adéquate. La programmation peut être assez difficile.
Comme tout le reste, ça court dans tous les sens
Mais, au final, ça varie vraiment. Repensez à ce que j’ai dit au début.
Est-ce que le basket-ball est difficile ? Non, si vous voulez dire « est-ce que n’importe qui peut ramasser un ballon et le lancer vers un panier ? ». Oui, si vous voulez dire « quelles sont les chances que Golden State me signe pour jouer aux côtés de Steph Curry ? »
Est-il difficile de parler portugais ? Eh bien, probablement pas si vous êtes né au Brésil ou au Portugal. Mais probablement oui si vous avez 70 ans et n’avez jamais parlé autre chose que le japonais.
Alors, la programmation est-elle difficile ? Oui et non. Oui, il est difficile de le faire à un niveau d’élite ou dans un domaine hautement spécialisé et compétitif. Mais non, il n’est pas difficile de commencer. Et ce n’est certainement pas au-delà de vous.
Ce billet a été écrit par Erik Dietrich. Erik est un vétéran du monde du logiciel, dont il a occupé à peu près tous les postes : développeur, architecte, manager, DSI et, finalement, consultant indépendant en gestion et en stratégie. Cette étendue d’expérience lui a permis de s’adresser à tous les personas de l’industrie et d’écrire plusieurs livres et d’innombrables articles de blog sur des dizaines de sites.