Est-ce correct si je ne peux pas résoudre un problème en étant assis devant un ordinateur? [fermé]


12

Je suis un programmeur amateur et un débutant. La plupart du temps, je ne peux pas résoudre le problème en étant assis devant l'ordinateur. Par exemple, j'essayais de savoir si un nombre est un pouvoir d'un autre. Je n'ai pas pu trouver la solution avant d'avoir saisi un stylo et un papier, puis analysé le problème. En environ 3 minutes, je l'ai résolu et j'ai écrit le script en Python.

Parfois, je peux résoudre le problème en étant assis devant un ordinateur, mais avec quelques difficultés. Est-ce que ça va?


6
Pour moi, ce n'est pas un problème grave, et en fait, beaucoup de gens regardent trop l'ordinateur, ne réalisant finalement pas qu'ils ont ce problème dans une moindre mesure. Beaucoup de programmes professionnels impliqueront des changements très importants au lieu des formules logiques délicates généralement données comme devoirs, et ce n'est pas vraiment un problème si vous pouvez au moins les accomplir.
Katana314

2
Je pense que vous voudrez peut-être simplement reformuler votre question afin qu'elle soit plus logique à propos de la programmation.
Snoop

8
C'est complètement subjectif. Tout le monde apprend et travaille différemment. Faites ce qui vous convient le mieux.

7
Devant l'ordinateur peut être le pire endroit pour essayer de résoudre un problème, car vous êtes trop tenté de commencer à taper quand vous devriez penser. Il est souvent préférable de s'éloigner de la machine, car cela vous oblige à penser à ne pas agir . La plupart de mes problèmes les plus difficiles ont été résolus en marchant au bureau le matin.
Gort le robot

2
Il y a aussi la question de la difficulté du problème. Au fur et à mesure que vous gagnez en expérience, certains problèmes qui sont difficiles maintenant deviendront faciles. Mais cela signifie simplement que vous pouvez résoudre des problèmes encore plus difficiles. Pour moi, je résous beaucoup de mes problèmes vraiment difficiles en randonnée ou en ski de fond.
jamesqf

Réponses:


34

J'ai tendance à résoudre mes problèmes les plus difficiles:

  • Devant un tableau blanc (parfois sans même dessiner quoi que ce soit - penser à la façon de visualiser un problème peut parfois conduire à une solution)
  • Tout en les expliquant à des collègues
  • Regardant par la fenêtre
  • En faisant une promenade
  • Sous la douche
  • Aux toilettes

S'éloigner du moniteur est souvent très utile pour se concentrer sur le problème lui-même et pas seulement pour taper une implémentation.

La résolution des problèmes se passe dans votre tête. En tapant le code du programme, vous expliquez simplement votre solution à l'ordinateur.


1
Je vous remercie! Vous avez raison, plus je suis loin d'un ordinateur, plus je peux me concentrer sur le problème.
Mahmood Muhammad Nageeb

2
Je me souviens avoir lu un livre (je ne me souviens pas lequel, malheureusement) qui suggérait de garder un canard en caoutchouc à votre bureau, et lorsque vous êtes perplexe, décrivez le problème à haute voix au canard en caoutchouc.
Gort le robot

7
@StevenBurnap C'est ce qu'on appelle le débogage du canard en caoutchouc et vous avez probablement lu à ce sujet dans The Pragmatic Programmer par Addison Wesley.
Philipp

2
"Taper le code du programme est simplement la façon dont vous expliquez votre solution à l'ordinateur." - Alan Perlis a déclaré: "Les programmes doivent être écrits pour que les humains puissent les lire et seulement accessoirement pour les machines à exécuter." Je préfère regarder de cette façon: taper le code est juste la façon dont vous expliquez votre solution à vos collègues . Le fait qu'une fois que vous décrivez la solution sans ambiguïté de manière à ce que tout être humain (y compris vous-même, dans 6 mois) puisse la comprendre, elle devient également exécutable par une machine, n'est qu'un effet secondaire de sa description rigoureuse. assez qu'il n'y a pas d'ambiguïtés. …
Jörg W Mittag

4
Re: canard en caoutchouc. Il y a aussi une histoire similaire avec un ours en peluche. Les tuteurs du MIT avaient l'habitude de placer des ours en peluche devant leurs bureaux. Vous n'avez été autorisé à frapper qu'après avoir expliqué votre problème à l'ours. La moitié des élèves n'ont jamais frappé à la porte, ayant compris leur problème en l'expliquant à l'ours. Formuler une question bien écrite, bien documentée, bien formatée, détaillée et de haute qualité sur StackExchange peut avoir le même effet , ce qui est (l'une des raisons) pourquoi nous sommes si anaux à le faire!
Jörg W Mittag

7

Je pense que c'est une bonne question. D'après la façon dont j'interprète cela, je pense que vous demandez: "Est-ce que je dois régulièrement m'éloigner de l'ordinateur"?

Je ne pense pas qu'il y ait un jour qui passe sans que je doive me lever et demander à quelqu'un d'autre ce qu'il pense, ou retirer un morceau de papier à gratter et griffonner une équation pour résoudre le problème. De plus, lorsque vous approfondirez la programmation, vous ne commencerez peut-être même pas à écrire le code avant d'avoir préalablement créé un diagramme / une architecture.

Je suivais un cours sur les structures de données quand j'étais à l'université et j'avais du mal à concevoir un algorithme de tri. Quand j'ai demandé de l'aide à mon professeur, il savait que je n'avais pas pensé au problème auparavant. La première chose qu'il m'a dit, c'est que je n'étais pas encore prêt à commencer à écrire le code. Alors il a sorti un morceau de papier et a dessiné quelques carrés, puis il a mis les chiffres du tableau. Ensuite, il a dessiné quelques images supplémentaires où il déplace les carrés et m'a montré visuellement comment l'algorithme de tri fonctionnerait.

Certaines choses que vous pouvez faire pour vider votre esprit et résoudre le problème:

  • Prendre une pause
  • Parlez à un collègue
  • Tableau blanc le problème / concept
  • Dormir dessus!

Ne soyez pas surpris si vous vous réveillez au milieu de la nuit avec la solution.


1

Je pense que cela aidera sûrement à devenir un programmeur / développeur professionnel efficace si vous le pouvez. Cependant, penser à un problème lors de la traduction de la solution en logique de programme à mon humble avis nécessite une formation, donc je ne vois aucun problème si vous sérialisez ces tâches - vous avez juste besoin d'être en mesure de terminer avec succès les deux. Penser à une solution du début à la fin avant de commencer à coder a certainement ses mérites, mais vous devez être un peu patient pour cela.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.