Carrière

Comment penser comme un programmeur lors de la résolution de problèmes

Comment penser comme un programmeur lors de la résolution de problèmes


We are searching data for your request:

Forums and discussions:
Manuals and reference books:
Data from registers:
Wait the end of the search in all databases.
Upon completion, a link will appear to access the found materials.

Voulez-vous apprendre à résoudre des problèmes comme un programmeur informatique? Alors vous êtes au bon endroit.

Ici, nous explorons comment le programmeur moyen aborde les problèmes et suggérons des moyens de vous aider à faire de même. Un avenir meilleur et plus efficace pour résoudre les problèmes vous attend.

Au moins en théorie.

CONNEXES: 9 DES MEMES LES PLUS DRÔLES DE PROGRAMMEUR EN CE MOMENT

Qu'est-ce que la résolution de problèmes en programmation?

Avant de commencer, il pourrait être utile de préciser ce que la résolution de problèmes a tendance à signifier pour les programmeurs.

Selon la School of Computing de l'Université de l'Utah, il est souvent défini comme:

«La résolution de problèmes [consiste] à résoudre des problèmes est au cœur de l'informatique. Les programmeurs doivent d'abord comprendre comment un humain résout un problème, puis comprendre comment traduire cet 'algorithme' en quelque chose qu'un ordinateur peut faire, et enfin comment 'écrire' la syntaxe spécifique (requise par un ordinateur) pour faire le travail. »

Cela semble simple en surface, mais, comme vous êtes sur le point de le découvrir, il s'agit en fait davantage d'un «art» que d'une science (dans une certaine mesure).

Tiens bon ...

Comment pensez-vous comme un programmeur?

Steve Jobs a déclaré que "tout le monde dans ce pays devrait apprendre à programmer un ordinateur parce qu'il apprend à penser". C'est un message très puissant et ne signifie pas nécessairement que vous devez devenir le prochain Ada Lovelace, Steve Wozniak ou Bill Gates.

Développer des «compétences générales» ou des «méta-compétences» comme apprendre à penser clairement et de manière critique rapportera des dividendes dans de nombreux aspects de votre vie.

Surtout dans votre carrière professionnelle, quelle que soit la voie que vous avez choisie, que ce soit un ingénieur ou non.

En plus d'autres «méta-compétences» importantes telles que la prise de vue, la détection de la douleur, la narration d'histoires, l'interview et la connexion des points, la maîtrise de cette compétence est largement considérée comme essentielle dans notre monde technologiquement complexe. En fait, de nombreux employeurs accordent la priorité à la résolution de problèmes et au codage de base dans une certaine mesure, à la plupart des autres compétences lorsqu'ils recherchent de nouveaux employés potentiels.

«Les compétences en résolution de problèmes sont presque unanimement la qualification la plus importante recherchée par les employeurs… plus que la maîtrise des langages de programmation, le débogage et la conception de systèmes.

Démontrer une pensée informatique ou la capacité de résoudre des problèmes importants et complexes est tout aussi précieux (sinon plus) que les compétences techniques de base requises pour un travail. " - Rang de hacker.

Alors, comment pouvez-vous développer une telle compétence? Eh bien, une façon est d'essayer de penser comme un programmeur.

Si vous en connaissez dans votre groupe d'amis, votre première escale pourrait être d'avoir une discussion franche et ouverte à ce sujet. Cela peut sembler gênant au début, mais vous apprendrez rapidement et aimerez le processus.

Mais, essentiellement, les programmeurs apprennent, généralement par essais et erreurs, à devenir progressivement plus efficaces dans la résolution de problèmes. La plupart des gens, à moins que vous n'ayez développé un système robuste, impliqueront probablement quelque chose comme ce qui suit:

1. Essayez une solution.

2. Si cela ne fonctionne pas, essayez-en un autre.

3. Si cela échoue également, rincez et répétez l'étape 2 jusqu'à ce que vous trouviez quelque chose qui fonctionne (peut-être par chance).

Bien que cela puisse sembler une approche raisonnable, cette méthodologie est à la fois lourde pour votre énergie mentale et, surtout, pour un temps précieux et irremplaçable (votre seul véritable atout dans la vie). C'est, en fait, la méthode de la force brute pour résoudre les problèmes.

Les programmeurs maîtrisent une manière plus subtile et efficace de le faire grâce à une stratégie de plan, de faire, de vérifier, d'agir. Cela implique en effet:

1. Avoir une approche cadre pour aborder un problème.

2. Pratiquez, apprenez de vos erreurs, révisez et améliorez jusqu'à ce que vous les maîtrisiez.

Bien que, au départ, cela demande un gros investissement de votre temps, une fois que vous en serez familiarisé, cela rapportera des dividendes à l'avenir. Vous devriez également essayer de cultiver d'autres habitudes de vie (comme celles d'Elon Musk) qui vous seront utiles lors de la résolution de problèmes à l'aide d'un état d'esprit de programmeur.

Comment puis-je améliorer mes compétences en résolution de problèmes de programmation et développer un état d'esprit de programmeur?

Comme nous l'avons mentionné précédemment, le meilleur moyen est de développer un cadre pour résoudre les problèmes, puis de pratiquer, pratiquer, pratiquer. Mais que signifie avoir un cadre pour la résolution de problèmes?

Il existe une vaste bibliothèque sur ce seul sujet, mais en substance, un cadre de résolution de problèmes comprendra certains, sinon tous, des composants principaux suivants:

1. Décomposer et comprendre le problème en question

La première étape de votre cadre de résolution de problèmes devrait être d'essayer de savoir exactement ce qui est demandé ou requis. Beaucoup de problèmes, apparemment insurmontables, le sont justement parce que nous ne les comprenons pas dans leur totalité au départ.

Donc comment fais-tu cela? Un indicateur que vous avez compris le problème est de pouvoir l'expliquer dans un anglais simple, ou même dans un diagramme.

En réfléchissant et en vocalisant le problème, vous découvrirez rapidement les failles de la logique, ou votre propre compréhension que vous avez peut-être manquées auparavant. C'est un processus dont la plupart des programmeurs seront parfaitement conscients.

Écrivez le problème, essayez de le dessiner (peut-être en utilisant une carte mentale) et essayez de l'expliquer à quelqu'un d'autre.

2. Ne pas planifier, c'est planifier l'échec (faire un plan et décomposer un gros problème en plus petits)

La prochaine étape consiste à essayer de formuler un plan d'attaque. Comme tout dans la vie, ne commencez jamais quelque chose avant d'avoir fait cela (en particulier des choses comme investir votre argent).

Décomposez les problèmes plus importants en morceaux plus petits et plus digestes et réfléchissez à des moyens de les cocher dans la liste. Vous avez probablement développé quelque chose de similaire pendant vos études à l'université ou à tout autre moment de votre vie.

Pour les programmeurs, ils ne plongent pas directement sans avoir réglé cette phase. Le temps investi à ce stade vous fera gagner une tonne de temps perdu plus tard sur la route.

C'est la mentalité du programmeur.

Essayez de répondre à une question comme «étant donné une entrée, quelles sont les étapes nécessaires pour renvoyer une autre sortie?», Etc. Sans parler d'un réseau d'instructions «si ceci alors cela, ou autre chose».

Ceci est essentiel pour les programmeurs car ils ont besoin de développer des sous-programmes, des fonctions, des méthodes et des procédures, et d'autres petits morceaux de code, qui doivent fonctionner dans leur ensemble.

Une erreur dans l'un peut, et aura généralement, un impact sur d'autres parties du code et peut même entraîner des problèmes tels que des boucles infinies. En parcourant chaque étape du problème principal de cette manière, les erreurs et les solutions peuvent être résolues au fur et à mesure qu'elles se présentent.

Il n'est pas non plus inhabituel pour un raccrochage d'exiger la résolution de problèmes dans plusieurs petits morceaux de code autonomes. C'est, en substance, une manière de relier les points.

En passant, c'est aussi l'une des principales raisons pour lesquelles les commentaires sont utilisés dans le code par les programmeurs. Surtout lorsque vous travaillez en équipe (personne ne peut lire dans les pensées des autres).

Mais, nous nous écartons.

Vous ne devriez pas avoir peur de demander de l'aide, ou alors des recherches. Vous n'aurez peut-être pas à réinventer la roue. Mais NE PAS comptez sur les solutions des autres à vos problèmes car vous n'apprendrez pas et ne développerez pas votre propre esprit et vos compétences dans un domaine particulier.

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

Réduisez le problème au point où vous savez comment le résoudre et rédigez la solution. Développez ensuite légèrement le problème et réécrivez la solution pour qu'elle corresponde, et continuez jusqu'à ce que vous reveniez là où vous avez commencé. "- V. Anton Spraul.

3. "Restez sur la cible", vous pouvez et vous serez parfois bloqué

"Les plans les mieux conçus des souris et des hommes tournent souvent mal", comme l'a dit Robert Burns. Ne vous inquiétez pas, c'est normal et souvent adopté.

Mais que faites-vous lorsque vous ne pouvez pas résoudre un problème, en particulier lors de la programmation?

Alors que beaucoup lèveront la main à la première vue d'un problème ou d'une solution qui échoue, la plupart des programmeurs ont développé une attitude de curiosité envers les «bogues».

Sans parler d'une détermination à les réparer.

Quand ils surgissent, les programmeurs lancent généralement un processus, une fonction mentale si vous voulez, des éléments suivants:

  • Engagez-vous dans un processus de débogage en parcourant étape par étape leur solution écrite pour trouver des problèmes évidents (comme une mauvaise utilisation de la syntaxe).
  • Si cela échoue, réévaluez en prenant du recul et essayez de "trouver un autre angle" au problème. Quelque chose peut-il être abstrait ou vous manquez quelque chose? En d'autres termes, "manquez-vous la forêt pour les arbres"? Il est très, très courant de s'embourber tellement dans les détails que vous manquez souvent la vue d'ensemble.
  • Si tout échoue, vous pouvez tout simplement recommencer - vous serez étonné de voir quelles solutions peuvent être trouvées.

4. La pratique rend parfait

Un petit cliché? Peut-être, mais vous ne pouvez pas vous attendre à résoudre tous les problèmes ou sous-problèmes complexes du jour au lendemain. Être bon en tout prend du temps pour s'entraîner, échouer, réessayer et maîtriser.

Au fur et à mesure que vous développez votre expérience dans la résolution de problèmes, le processus deviendra de plus en plus rapide à mesure que vous identifierez les méthodes que vous avez utilisées précédemment et qui peuvent être appliquées dans une situation donnée. En fait, bon nombre des personnes les plus performantes participent régulièrement à la «mini-résolution de problèmes».

Certains jouent aux échecs, d'autres au sudoku, d'autres encore à des mots croisés ou même à des jeux informatiques, régulièrement. Essayez d'en trouver un qui vous plaît et travaillez cette matière grise!

Et, probablement le plus important de tous, ne craignez pas l'échec. Vous en apprendrez beaucoup plus sur les lieux où vous vous trompez que jamais sur ceux où vous réussissez. Apprenez à échouer et échouez vite!

Et c'est une enveloppe. Votre chemin vers la résolution de problèmes en tant que programmeur vous attend!

Bonne chance voyageur.


Voir la vidéo: Iphone Xs Max pas de tactile (Mai 2022).