programmeurs apprenez à résoudre les problèmes

Programmeurs, apprenez à résoudre les problèmes

Temps de lecture: 5 minutes

« La plus grande erreur que les nouveaux programmeurs commettent est de se concentrer sur l’apprentissage de la syntaxe au lieu d’apprendre à résoudre des problèmes. » –  V. Anton Spraul

Salut tout le monde, l’article que je partage avec vous aujourd’hui est l’un des plus importants dans ce blog.

La capacité la plus importante pour un développeur n’est pas sa connaissance des syntaxes dans un langage de programmation. A la limite, on s’en fout des compétences techniques parce que tout le monde peut taper du code en PHP,  Java, Python…… Le plus important chez un développeur, c’est sa capacité à réfléchir sur des problèmes afin d’en trouver la solution.

Presque tous les employeurs donnent la priorité aux compétences de résolution de problèmes en premier.

Compétences en résolution de problèmes sont presque unanimement la qualification la plus importante que les employeurs recherchent … plus que la maîtrise des langages de programmation, le débogage et la conception du système.

– Hacker Rank ( 2018 Developer Skills Report )

Alors, comment penser comme un programmeur ?

Voici quelques principes que nous enseigne Richard Reis dans son excellent article.

1. Comprendre

Savoir exactement ce qui est demandé. La plupart des problèmes difficiles sont difficiles parce que vous ne les comprenez pas.

Comment savoir quand vous comprenez un problème? Quand vous pouvez l’expliquer en francais.

Vous souvenez-vous d’être coincé sur un problème, vous commencez à l’expliquer, et vous voyez instantanément des trous dans la logique que vous ne voyiez pas auparavant?

La plupart des programmeurs connaissent ce sentiment.

C’est pourquoi vous devriez écrire votre problème, griffonner un diagramme, ou en parler à quelqu’un d’autre (ou quelque chose … certaines personnes utilisent un canard en caoutchouc ).

« Si vous ne pouvez pas expliquer quelque chose en termes simples, vous ne le comprenez pas. » – Richard Feynman

2. Planifier

comprendre le web - se former pour briller

Ne plongez pas directement dans la résolution sans un plan. Planifiez votre solution!

En programmation, cela signifie ne pas commencer à coder tout de suite. Donnez à votre cerveau le temps d’analyser le problème et de traiter l’information.

Les programmeurs ont un excellent outil pour les aider avec ça … Les commentaires!

3. Diviser

Faites attention. C’est l’étape la plus importante de tous.

N’essayez pas de résoudre un gros problème. Vous allez pleurer.

Au lieu de cela, divisez-le en sous-problèmes. Ces sous-problèmes sont beaucoup plus faciles à résoudre.

Ensuite, résolvez chaque sous-problème un par un. Commencez par le plus simple. Le plus simple signifie que vous connaissez la réponse (ou êtes plus proche de cette réponse).

Après cela, le plus simple signifie que ce sous-problème à résoudre ne dépend pas de la résolution d’autres problèmes.

Une fois que vous avez résolu chaque sous-problème, connectez les.

Connecter toutes vos « sous-solutions » vous donnera la solution au problème original. C’est tout!

Cette technique est la pierre angulaire de la résolution de problèmes. Souvenez-vous-en (relisez cette étape, si vous le devez).

« Si je pouvais enseigner à chaque programmeur débutant une compétence de résolution de problèmes, ce serait » réduire la technique du problème « .

Par exemple, supposons que vous êtes un nouveau programmeur et que l’on vous demande d’écrire un programme qui lit dix nombres et détermine quel est le troisième plus grand. Pour un nouveau programmeur, cela peut être une tâche difficile, même si elle nécessite seulement une syntaxe de programmation de base.

Si vous êtes bloqué, vous devriez réduire le problème à quelque chose de plus simple. Au lieu du troisième plus grand nombre, et si vous trouviez le plus élevé en général? Toujours trop dur? Et si vous trouviez le plus grand entre trois chiffres? Ou le plus grand entre deux?

Réduire le problème au point où vous savez comment le résoudre et écrire la solution. Puis développez légèrement le problème et réécrivez la solution pour l’adapter, et continuez jusqu’à ce que vous soyez de retour là où vous avez commencé. « -  V. Anton Spraul

4. Coincé?

transformation digitale - se former pour briller

Ne vous inquiétez pas. Cela arrive à tout le monde!

La différence est que les meilleurs programmeurs / sont plus curieux au sujet des bugs qu’irrités.

En fait, voici trois choses à essayer quand vous êtes coincés:

  • Déboguer:

« L’art du débogage consiste à comprendre ce que vous avez vraiment dit à votre programme de faire plutôt que ce que vous pensiez que vous aviez dit de faire. » « – Andrew Singer

  • Réévaluer:

« Parfois nous sommes tellement perdus dans les détails d’un problème que nous négligeons les principes généraux qui résoudraient le problème à un niveau plus général. […]

L’exemple classique de ceci est, bien sûr, la somme d’une longue liste d’entiers consécutifs, 1 + 2 + 3 + … + n, qu’un très jeune Gauss a rapidement reconnu et simplifié à n (n + 1) / 2, évitant ainsi l’effort d’avoir à faire l’addition. « -  C. Jordan Ball

  • Une autre façon de réévaluer est de recommencer à zéro. Supprimez tout et recommencez avec de nouveaux yeux. Vous serez stupéfait de voir à quel point c’est efficace.
  • Recherche: Ahh, bon vieux Google. Vous avez bien lu. Quel que soit le problème que vous avez, quelqu’un l’a probablement résolu. Trouvez cette personne / solution. En fait, faites-le même si vous avez résolu le problème! (Vous pouvez apprendre beaucoup de solutions d’autres personnes).

Avertissement: Ne cherchez pas une solution au gros problème. Ne cherchez que des solutions aux sous-problèmes. Pourquoi? Parce que si vous ne luttez pas (même un peu), vous n’apprendrez rien. Si tu n’apprends rien, tu as perdu ton temps.

5. Entraînez vous

Ne vous attendez pas à être génial après seulement une semaine. Si vous voulez être un bon résolveur de problèmes, résolvez beaucoup de problèmes!

Entraînez vous. Entraînez vous. Entraînez vous. Ce ne sera qu’une question de temps avant que vous reconnaissiez que « ce problème pourrait facilement être résolu avec <insérer concept ici>. »

Comment pratiquer? Pas mal de choses peuvent vous aider:

Jeux d’échecs, problèmes de maths, Sudoku, Go, Monopoly, jeux vidéo, bla … bla … bla ….

En fait, les gens qui réussissent ont souvent l’habitude de pratiquer la «micro-résolution de problèmes». Par exemple, Peter Thiel joue aux échecs et Elon Musk joue aux jeux vidéo.

Cela signifie-t-il que vous devriez simplement jouer à des jeux vidéo ? Pas du tout.

Mais à quoi servent les jeux vidéo? A la résolution de problèmes!

Donc, ce que vous devriez faire est de trouver quelque chose qui vous permet de résoudre de nombreux micro-problèmes (idéalement, quelque chose que vous aimez).

Par exemple, j’aime bien les défis de code. Chaque jour, j’essaie de résoudre au moins un défi (généralement sur Codefights ).

Comme je l’ai dit, tous les problèmes partagent des modèles similaires.

 

Et voilà, c’est ce que je voulais partager avec vous.

Tout ce que je peux vous souhaitez, c’est le même vœu que Richard: que vous rencontriez de nombreux problèmes. Au moins vous savez comment les résoudre maintenant. Et plus vous en résoudrez, plus vous développerez de la force mentale et de la sagesse.

Au final vous deviendrez la meilleure version de vous-mêmes.

🤔 Maintenant, c’est à votre tour, dites moi quelle technique vous appliquez pour résoudre les problèmes que vous rencontrez.

Deviens toi aussi développeur web !
I agree to have my personal information transfered to MailChimp ( more information )
Commences ta carrière de développeur web, GRATUITEMENT, ici et maintenant !
Je hais les sapms. Votre adresse email ne sera jamais vendu ou partagé avec un tiers
Partages à tous tes amis !

2 thoughts on “Programmeurs, apprenez à résoudre les problèmes

  1. salut Dav
    je voudrais savoir s’il ya un site FRANCOPHONE comme « Codefights »
    où on peut apprendre a resoudre des problemes quand on n’est pas callé en anglais
    merci
    Cordialement!

Laisser un commentaire

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.