Les programmeurs ont-ils besoin d'une bonne mémoire? [fermé]
16
Il semble qu'il faille se souvenir de toutes sortes de syntaxes pour pouvoir programmer. Si l'on n'a pas une bonne mémoire pour se souvenir des noms, sera-t-il plus difficile d'apprendre à programmer?
Il y avait un nom pour avoir une bonne mémoire pour les noms, mais j'ai oublié ce que c'est.
Mike Two
3
Si la syntaxe est un problème, choisissez une langue ayant la syntaxe minimale. Lisp / Clojure?
Chiron
1
Ces jours-ci, je ne passe pas toute la journée à programmer, mais je passe du temps chaque jour à programmer. Et je programme dans un tas de langues qui ne se ressemblent pas. Je programme en C, Java, Javascript, Lisp, VBA, PL / SQL, Ruby, Python, Perl, Smalltalk, et même un peu de Prolog de temps en temps. Je cherche juste la syntaxe.
Mike Sherrill 'Cat Recall'
4
S'ils le font, je fais semblant depuis environ 13 ans.
ElGringoGrande
1
Les universités l'enseignent certainement comme si vous aviez besoin d'une bonne mémoire, ce qui est totalement stupide. Le mien est particulièrement connu pour exiger que les examens finaux CS valent au moins 50% (toujours à livre fermé) et les mi-parcours sont généralement d'au moins 30-40%.
Rei Miyasaka
Réponses:
34
La syntaxe d'une langue n'est pas aussi difficile que vous pensez à vous en souvenir, si vous l'utilisez quotidiennement. Finalement, cela devient très facile. Se souvenir de toutes les différentes fonctions de la bibliothèque pourrait être beaucoup plus difficile et je ne pense pas que la plupart des gens s'en souviennent plus que les plus courantes qu'ils utilisent, mais ce n'est pas grave si vous avez accès au Web, à un livre ou à autre chose " se souvient "de tous les autres détails pour vous.
+1. Cela devient vraiment une seconde nature. Je repense au code et je ne me souviens même pas d'avoir appliqué les règles de formatage que je respecte ...
Reid
1
Les guides de poche d'O'Reilly m'aident à garder une trace des choses. Très utile.
World Engineer
17
Il semble qu'il faille se souvenir de toutes sortes de syntaxes pour pouvoir
programmer un langage naturel.
Si on n'a pas une bonne mémoire pour se souvenir des
mots des noms , sera-t-il plus difficile d'apprendre à programmer la
parole?
Il ne peut pas être vrai que les gens ont une facilité "naturelle" avec les langues, n'est-ce pas?
Il ne peut pas être vrai que nous avons du matériel neuronal de bas niveau juste pour acquérir des langues, n'est-ce pas?
La programmation utilise des langages artificiels qui suivent de nombreuses règles des langages naturels.
Les langages naturels ont un peu plus de flexibilité que les langages de programmation.
grammaire encore stricte. il y a des règles qui sont très mais
Si vous pouvez parler, vous pouvez apprendre à programmer sans rien mémoriser de plus que ce que vous avez mémorisé lorsque vous avez appris à parler.
Si vous parlez de mémoire à court terme, alors oui . un programmeur doit être capable de jongler avec plusieurs bits d'informations simultanément lors de la programmation / résolution de problèmes.
Non:
Si vous parlez de mémoire à long terme, alors pas vraiment. Il existe de nombreux manuels et références + outils qui peuvent aider de manière significative à rappeler des informations. La mémorisation de ces informations à long terme fera certainement de vous un développeur plus rapide (dans l'ensemble), mais ce n'est pas une condition préalable.
+1 Pour faire une comparaison utile entre l'utilité de la mémoire à court et à long terme par rapport à la question. Attendait de voir quelqu'un faire ça.
KChaloux
8
Une bonne mémoire est absolument essentielle, mais pas pour des raisons évidentes.
Se souvenir des détails sur des algorithmes spécifiques, des bibliothèques, des noms de variables, etc. est très pratique, mais n'est pas super important. Vous avez Google, DuckDuckGo, des pages de manuel, une documentation spécifique à la langue et des éditeurs intelligents pour vous aider avec tout ce qui précède. Cela aide si vous n'avez pas besoin de vous fier à ces béquilles, mais vous vous en sortirez très bien si vous en avez besoin de temps en temps.
Lorsque la mémoire est essentielle, il faut conserver les détails de ce sur quoi vous travaillez dans une mémoire active à court terme. Être capable de visualiser la conception, le flux de données, les algorithmes, les structures de données et la façon dont ils interagissent tous pour faire ce que fait votre produit sépare le programmeur OK du grand programmeur. Lorsque vous le faites activement, vous avez l'impression de réussir à jongler avec un nombre gargantuesque de balles tout en montant sur un monocycle.
Ceci est souvent désigné comme étant dans la zone . Les interruptions, les questions stupides, les patrons qui ont besoin de rapports TPS vous font sortir de cette zone.
Plus votre mémoire est bonne, plus il est facile d'entrer dans la zone, plus il est facile d'y rester et plus il est facile d'y revenir après une interruption.
Si vous avez des problèmes avec ce type de mémoire, je vous suggère d'apprendre des techniques de méditation et des astuces de mémoire car plus votre mémoire devient facile, plus vous réussirez en tant que programmeur.
Je dirais en fait que les besoins en mémoire sont réduits si vous modulez mieux le programme et nommez les choses correctement. Si vous avez une méthode de deux pages avec 20 variables, vous devez vous souvenir de bien plus que si vous avez une méthode de 5 lignes avec des appels à d'autres méthodes bien nommées pour effectuer des sous-tâches. Aussi, chaque fois que vous voulez modifier quelque chose d'aussi complexe, vous devez entrer dans "la zone" pour le faire. Alors que si c'est plus simple, vous pouvez simplement faire votre changement. Je dirais que "la zone" est un handicap.
Cervo
1
@Cervo - Oui, lorsque vous codez des modules individuels et de petites unités de code, ce que je décris ci-dessus n'est pas vraiment nécessaire. Mais lorsque vous déboguez un système entier et essayez de trouver le module agréable, soigné et propre dans lequel le problème réside, cela permet de garder le plus d'état possible à l'esprit.
impythonique à 4h56
Pourquoi dans le monde cela n'a-t-il eu qu'une seule voix? Vous ne pouvez pas concevoir votre code correctement sans vous rappeler comment il s'intègre dans les éléments qui l'entourent. Beaucoup de programmation moderne consiste à réduire la quantité de détails que cela implique, mais cela réduit simplement la quantité dont vous devez vous souvenir, pas le fait que vous devez vous en souvenir pour faire votre travail.
Loren Pechtel
5
Je vais aller à contre-courant et dire oui . Une bonne mémoire est un formidable atout en tant que programmeur. Ma mémoire, j'ai toujours vu comme un problème de programmation, j'ai donc ramassé quelques astuces pour compenser mon handicap:
Vous devriez pouvoir vous rappeler comment cette variable (que vous avez utilisée 3 lignes auparavant) a été orthographiée. Si vous ne pouvez pas apprendre à utiliser Intellisense (ou quelle que soit votre forme de saisie semi-automatique dans votre éditeur ou IDE).
Vous devriez pouvoir vous souvenir rapidement de ce que vous faisiez la dernière fois que vous avez travaillé sur ce projet. C'était peut-être il y a quelques jours, c'était peut-être juste avant le déjeuner. Si vous ne le pouvez pas, apprenez à écrire des choses . Gardez un cahier à vos côtés et écrivez ce que vous faisiez (ou faites), les objets TODO et les choses dont vous devez vous rappeler sur la façon dont le code actuel sur lequel vous travaillez s'imbrique.
Le débogage et le contrôle qualité sont difficiles. Idéalement, vous devriez garder un cahier très détaillé sur les étapes que vous avez suivies lorsque vous essayez de reproduire un bogue ou de déboguer quelque chose. C'est quelque chose que je sais que je devrais faire, mais qui me pose encore problème.
Le Guerrilla Guide to Interviewing (version 3.0) est une référence commune qui note qu'être intelligent et faire avancer les choses sont les points importants de la programmation. Smart inclut certaines compétences en mémoire, mais pas nécessairement autant que vous le pensez.
Intellisense peut beaucoup aider en termes de syntaxe si vous voulez de l'aide de ce côté-là. Il est plus important de savoir comment vous apprenez afin d'appliquer rapidement ce que vous apprenez de manière significative que de pouvoir répondre à des questions triviales.
Je crois que la mémorisation des noms est une fonction cognitive assez différente de celle des processus de mémorisation qui est différente de celle des vocabulaires. Il y a eu des cas de personnes qui ont subi des lésions cérébrales qui ont complètement supprimé la capacité de se souvenir des noms tout en pouvant parfaitement fonctionner autrement.
Je dirais donc que la possibilité de se souvenir des noms sans rapport avec l'apprentissage des langages de programmation.
Il serait toutefois utile de pouvoir se souvenir des modèles logiques, des règles et du vocabulaire.
Je suis sûr que tu as raison. L'indicateur de type Myers-Briggs indique que les INTP (qui sont particulièrement adaptés pour devenir programmeurs) ont du mal à se souvenir des noms des gens. Je sais que c'est vrai dans mon cas. Je me souviens des noms de vos animaux de compagnie, de la plaque d'immatriculation de votre voiture et de l'endroit où j'ai mis l'impression d'une trace de pile que vous m'avez donnée l'année dernière et qui comportait les nouvelles lignes étranges comme 0x0D0A0D. Votre propre nom, cependant, je l'oublierai 10 minutes. (Quand j'étais plus jeune, il m'a fallu trois ans pour obtenir les noms de toutes les personnes de mon équipe de football.)
Mike Sherrill 'Cat Recall'
2
Non. La profondeur de mémoire des outils (Intellisense, Google, compilateurs, générateurs de code) est infinie par rapport à la mémoire humaine. Donc, un programmeur avec une bonne mémoire n'est pas beaucoup mieux qu'un programmeur avec un trou dans la tête.
Ce dont les programmeurs ont réellement besoin, c'est d'une "vitesse de focalisation maximale" lorsqu'ils basculent entre les niveaux d'abstraction. Plus vite vous pourrez, mieux vous serez en tant que programmeur. Certains ont une vitesse de battement de coeur comme 500 ms, avec l'arrivée de la première vague de sang au cerveau, vous êtes concentré. Certains ont une horloge de mise au point arrondie au cycle de fumage, environ 2 heures. Certains ont besoin d'une douche matinale, donc environ 24 heures. etc. La différence entre le bon et le mauvais programmeur a déjà été déclarée il y a 1:80 ans, et l'écart ne fait que s'accroître.
Non, il vous suffit de comprendre comment Google fonctionne pour obtenir ce que vous voulez
J'ai une horrible mémoire, mais mes compétences en recherche sur Google sont impressionnantes ^ _ ^
Sérieusement, tant que vous savez où trouver la syntaxe, vous n'avez pas besoin de vous en souvenir. C'est à cela que servent intellisense, les fichiers d'aide, les guides de référence, Internet, etc.
Tout d'abord, apprendre à programmer est difficile pour tout le monde. Avoir une bonne mémoire aide, j'en suis sûr. Mais le dévouement et l'amour de l'apprentissage tout au long de la vie sont plus précieux. Apprendre la syntaxe est comme toute autre chose, la répétition.
Il n'y a rien de magique ou de surhumain dans la compétence de programmation. Passez-y environ 10 000 heures ... et vous serez un maître comme toute autre compétence. Bien sûr, cela représente 10 000 heures de formation, sans répéter aveuglément et paralysant l'esprit des erreurs passées.
Vous avez écrit cet article en anglais, avec une syntaxe appropriée. De toute évidence, vous pouvez vous rappeler comment utiliser une langue. Vous avez juste besoin d'apprendre une nouvelle langue et de l'utiliser suffisamment souvent pour bien la comprendre tout le temps. Contrairement aux langages à vocation humaine, les langages de programmation informatique vous permettront toujours de savoir quand vous avez utilisé une syntaxe incorrecte, donc c'est en fait plus facile. :-)
Je suis d'accord qu'il existe une grande variété de choses qu'un programmeur moyen peut savoir pour accomplir ses tâches, pensez à tous les mots, syntaxes, techniques que vous devriez contrôler pour construire un site Web simple (sur le front end: html, css, javascript (vous pouvez également compter certains frameworks Js comme jquery), ajax, sur le back-end: Php ou ASP ou ASP.Net, et n'oubliez pas les bases de données, mySql ou SqlServer ou Oracle ou MongoDB, etc.). Il existe une énorme liste de langues, de paradigmes, de sintaxies, de modèles, etc., il est impossible de se souvenir de tout.
Il pense que ce qui fait un bon programmeur, c'est la pratique, les pratiques avec des algorithmes plus qu'avec des langages, et avec ça vous vous souviendrez finalement des choses que vous utilisez le plus souvent, pour le reste, il y a toujours google = P
Une grande mémoire peut couper dans les deux sens.
Si vous pouvez jongler avec des dizaines d'informations dans votre tête à la fois, vous aurez beaucoup plus de facilité à comprendre (et, espérons-le, à réécrire) cet horrible morceau de code hérité qui est essentiel au projet mais si compliqué que tout le monde a peur le toucher.
D'un autre côté, cet horrible morceau de code qui est essentiel au projet mais si compliqué que tout le monde a peur de le toucher a probablement été écrit par quelqu'un avec une capacité incroyable à jongler avec des dizaines d'informations. Si vous avez une grande mémoire, travaillez très dur pour cultiver l'appréciation de l'élégance de la simplicité.
Apprendre la syntaxe d'un langage de programmation ne nécessite pas une grande mémoire. Comme d'autres l'ont dit, la syntaxe est tellement renforcée dans votre mémoire qu'elle devient rapidement une seconde nature. Avez-vous déjà oublié de quel côté de la route vous êtes censé conduire? Quels symboles arithmétiques représentent l'addition et la soustraction? Sinon, vous maîtriserez sans trop de difficulté les parties les plus courantes de la syntaxe de votre langue choisie, et vous pourrez rechercher les bits les moins courants lorsqu'ils apparaissent.
Certaines bibliothèques ont des centaines ou des milliers de fonctions, classes et / ou méthodes. Il semblerait à un étranger comme une tâche impossible d'apprendre à utiliser toutes ces fonctionnalités. Mais il y a presque toujours une structure sous-jacente à la bibliothèque. Au lieu d'essayer de se souvenir de toutes ces fonctions, un programmeur intelligent essaie de comprendre comment la bibliothèque est organisée et ce qu'elle peut faire. Cela fait, il est généralement assez facile de trouver la fonction dont vous avez besoin quand vous en avez besoin.
Bref, la mémoire est beaucoup moins importante que la compréhension.
Ça dépend. Dans Java et .NET, les bibliothèques standard sont dans une sorte de hiérarchie et sont bien documentées. Par conséquent, si vous savez que vous avez affaire à un réseau, vous accédez à system.net en C # et à partir de là, vous pouvez accéder aux objets / appels spécifiques dont vous avez besoin. Donc, de ce point de vue, vous n'avez pas besoin de mémoriser les détails et là.
Dans votre propre programme, tout dépend de la façon dont vous organisez / nommez les choses. Si vous utilisez des noms comme a $, b $, c $ ... ou g $ de Basic of old, alors bonne chance. si vous nommez les choses comme vous le pensez comme FirstName, LastName, c'est beaucoup plus facile. De nombreuses langues ont des normes de dénomination qui aident également. En Java par exemple, il existe une convention de setX, getX pour obtenir / définir des attributs spécifiques d'une classe ainsi que des conventions de capitalisation. Donc, si vous savez qu'une personne a un prénom, alors il s'appelle probablement firstName et le getter / setter sont probablement getFirstName et setFirstName ..... Donc ces conventions aident beaucoup ...
Des méthodes / fonctions plus courtes vous aident également à garder moins dans votre tête à la fois. Et l'utilisation de noms propres vous aide à ne pas avoir besoin d'aller chercher. Par exemple, si vous nommez des choses pour ce qu'elles font, alors lors de la lecture d'une procédure qui appelle getMaximumValue, vous n'aurez probablement pas besoin de lire getMaximumValue pour comprendre ce qu'elle fait ... Mais comme les fonctions / méthodes deviennent plus longues et plus imbriquées, alors une meilleure mémoire aide certainement.
J'ai omis l'intellisense que JB King a mentionné, mais pour C # cela aide vraiment aussi. J'ai tendance à utiliser des éditeurs pour Java qui ne l'ont pas :( Néanmoins, le reste s'applique toujours, si vous gardez des méthodes plus courtes, respectez les conventions de dénomination, alors intellisense fonctionne encore mieux. Si vous avez 50 variables dans une méthode, alors intellisense pourrait toujours quitter vous êtes un peu dépassé.
Cervo
Cervo Je suis principalement un développeur C # mais j'en fais de plus en plus récemment en java. Essayez Idée IntelliJ. Leur dernière version a une assez bonne intelligence. Pas Visual Studio bien mais proche.
Adrian
0
La mémoire n'est pas si importante. Si cela vous inquiète, j'oublie régulièrement mon portefeuille ou mes clés dans ma maison le matin. J'appelle tout le monde par le mauvais nom au moins une fois (y compris ma famille et ma petite amie). J'oublie simplement de faire des choses autour de la maison tout le temps.
À la fin de la journée, les principes de programmation seront toujours dans votre tête, tout comme "vous n'oublierez jamais comment faire du vélo". Les détails spécifiques et les détails de mise en œuvre ne sont pas si importants. Vous pouvez toujours les rechercher sur Google.
De Joel On Software sur la productivité d'un programmeur-
La productivité dépend de la capacité de jongler avec beaucoup de petits détails dans la mémoire à court terme .
Ainsi, la mémoire à court terme est très importante pour un programmeur, étant donné une tâche critique.
Mais je ne pense pas que la mémoire à long terme compte autant.
D'une lecture rapide, je n'ai vu personne parler de la mémoire au sens général de la programmation plutôt que d'une tâche singulière d'écriture d'un programme.
La mémoire est utile pour deux choses:
Se souvenir de la sémantique / bibliothèques de base:
Ceci est facilement supplanté par la répétition et Google. IOW, la quantité de mémoire avec laquelle vous êtes né doit être ridiculement faible pour ne pas pouvoir surmonter ce problème.
Se souvenir du contexte dans les grands programmes:
Voici où est l'astuce. Au fur et à mesure que les programmes grossissent (et que vous devenez senior), les décisions que vous prenez sont totalement liées à la quantité de connaissances que vous avez du système et à votre capacité à le récupérer en quelques millisecondes s'il doit être utile dans les discussions de projet, le débogage, réagir aux urgences opérationnelles, etc. Lorsque la poussée se fera sentir, aucune quantité d'entrées de documentation / wiki ne vous aidera - votre «assistant» d'équipe sera votre seule option. C'est l'une des raisons pour lesquelles les ingénieurs principaux sont tant appréciés / payés. La plupart d'entre eux peuvent ne pas passer tout leur temps à coder à ce stade, ils passent plus de temps à se tenir au courant de l'image complète et à l'appliquer pour tout problème / amélioration. Les bons restent simplement en contact en faisant une tonne de CR et un changement de codage ici et là / prototypage de nouvelles révisions.
IOW, vous pouvez être un programmeur raisonnable avec le seul numéro 1, mais si vous voulez être le prochain Linus, vous feriez mieux d'avoir beaucoup de mémoire, au moins assez pour englober le problème que vous résolvez.
D'après mes observations, je pourrais même dire que la mémoire de travail est presque directement proportionnelle à la valeur de la personne.
Un petit avertissement pour conclure: si vous avez une mémoire Eidetic mais une puissance intellectuelle nulle / faible dans l'application de cette logique, vous ne serez pas bon pour un projet qu'un appareil photo.
Si vous avez du mal à vous souvenir des noms des personnes que vous rencontrez, vous pourriez tout de même devenir un excellent programmeur.
J'oublie tout le temps les noms des gens. Je suis programmeur senior avec près d'une décennie d'expérience. Dans mon cas, ma terrible mémoire auditive est compensée par une grande mémoire visuelle.
Même ainsi, l'exigence essentielle pour un bon programmeur est la capacité d'abstraire. Peu importe combien ou peu vous vous souvenez, si vous ne pouvez pas comprendre le concept d'une variable et comment l'utiliser dans un programme, vous ne deviendrez pas un bon programmeur.
Ma suggestion est d'essayer un court cours de programmation ou de suivre le didacticiel Python pour voir comment vous l'aimez.
Cela devrait vous donner une bonne idée de savoir si la programmation est une carrière que vous pourriez souhaiter poursuivre.
À l'heure actuelle, j'apprends JAVA & C #. Tous les tests sont à livre fermé, donc pour JAVA, tout est 100% de la mémoire codant toutes les applications aux examens.
De plus, cela devient de plus en plus difficile. J'en suis au point où je dois commencer à utiliser des astuces de mémoire comme les mnémoniques, etc.
Je dirais que le QI élevé, les bonnes connaissances générales, le bon vocabulaire, le polymathisme, les connaissances supérieures en mathématiques, la saisie tactile et la bonne mémoire sont tous des atouts pour un programmeur.
Je connais des programmeurs très intelligents qui ne peuvent pas toucher le type ou faire des mathématiques supérieures, etc. Ce qu'ils ont fait, ils pourraient être bien meilleurs.
Le monde réel n'est pas un livre fermé. Dans presque tous les cas, les tests à livres fermés sont une indication d'un enseignant qui ne sait pas faire de bons tests.
Réponses:
La syntaxe d'une langue n'est pas aussi difficile que vous pensez à vous en souvenir, si vous l'utilisez quotidiennement. Finalement, cela devient très facile. Se souvenir de toutes les différentes fonctions de la bibliothèque pourrait être beaucoup plus difficile et je ne pense pas que la plupart des gens s'en souviennent plus que les plus courantes qu'ils utilisent, mais ce n'est pas grave si vous avez accès au Web, à un livre ou à autre chose " se souvient "de tous les autres détails pour vous.
la source
Il ne peut pas être vrai que les gens ont une facilité "naturelle" avec les langues, n'est-ce pas?
Il ne peut pas être vrai que nous avons du matériel neuronal de bas niveau juste pour acquérir des langues, n'est-ce pas?
La programmation utilise des langages artificiels qui suivent de nombreuses règles des langages naturels.
Les langages naturels ont un peu plus de flexibilité que les langages de programmation.
grammaire encore stricte. il y a des règles qui sont très mais
Si vous pouvez parler, vous pouvez apprendre à programmer sans rien mémoriser de plus que ce que vous avez mémorisé lorsque vous avez appris à parler.
la source
Oui:
Si vous parlez de mémoire à court terme, alors oui . un programmeur doit être capable de jongler avec plusieurs bits d'informations simultanément lors de la programmation / résolution de problèmes.
Non:
Si vous parlez de mémoire à long terme, alors pas vraiment. Il existe de nombreux manuels et références + outils qui peuvent aider de manière significative à rappeler des informations. La mémorisation de ces informations à long terme fera certainement de vous un développeur plus rapide (dans l'ensemble), mais ce n'est pas une condition préalable.
la source
Une bonne mémoire est absolument essentielle, mais pas pour des raisons évidentes.
Se souvenir des détails sur des algorithmes spécifiques, des bibliothèques, des noms de variables, etc. est très pratique, mais n'est pas super important. Vous avez Google, DuckDuckGo, des pages de manuel, une documentation spécifique à la langue et des éditeurs intelligents pour vous aider avec tout ce qui précède. Cela aide si vous n'avez pas besoin de vous fier à ces béquilles, mais vous vous en sortirez très bien si vous en avez besoin de temps en temps.
Lorsque la mémoire est essentielle, il faut conserver les détails de ce sur quoi vous travaillez dans une mémoire active à court terme. Être capable de visualiser la conception, le flux de données, les algorithmes, les structures de données et la façon dont ils interagissent tous pour faire ce que fait votre produit sépare le programmeur OK du grand programmeur. Lorsque vous le faites activement, vous avez l'impression de réussir à jongler avec un nombre gargantuesque de balles tout en montant sur un monocycle.
Ceci est souvent désigné comme étant dans la zone . Les interruptions, les questions stupides, les patrons qui ont besoin de rapports TPS vous font sortir de cette zone.
Plus votre mémoire est bonne, plus il est facile d'entrer dans la zone, plus il est facile d'y rester et plus il est facile d'y revenir après une interruption.
Si vous avez des problèmes avec ce type de mémoire, je vous suggère d'apprendre des techniques de méditation et des astuces de mémoire car plus votre mémoire devient facile, plus vous réussirez en tant que programmeur.
la source
Je vais aller à contre-courant et dire oui . Une bonne mémoire est un formidable atout en tant que programmeur. Ma mémoire, j'ai toujours vu comme un problème de programmation, j'ai donc ramassé quelques astuces pour compenser mon handicap:
Vous devriez pouvoir vous rappeler comment cette variable (que vous avez utilisée 3 lignes auparavant) a été orthographiée. Si vous ne pouvez pas apprendre à utiliser Intellisense (ou quelle que soit votre forme de saisie semi-automatique dans votre éditeur ou IDE).
Vous devriez pouvoir vous souvenir rapidement de ce que vous faisiez la dernière fois que vous avez travaillé sur ce projet. C'était peut-être il y a quelques jours, c'était peut-être juste avant le déjeuner. Si vous ne le pouvez pas, apprenez à écrire des choses . Gardez un cahier à vos côtés et écrivez ce que vous faisiez (ou faites), les objets TODO et les choses dont vous devez vous rappeler sur la façon dont le code actuel sur lequel vous travaillez s'imbrique.
Le débogage et le contrôle qualité sont difficiles. Idéalement, vous devriez garder un cahier très détaillé sur les étapes que vous avez suivies lorsque vous essayez de reproduire un bogue ou de déboguer quelque chose. C'est quelque chose que je sais que je devrais faire, mais qui me pose encore problème.
J'espère que cela t'aides!
la source
Le Guerrilla Guide to Interviewing (version 3.0) est une référence commune qui note qu'être intelligent et faire avancer les choses sont les points importants de la programmation. Smart inclut certaines compétences en mémoire, mais pas nécessairement autant que vous le pensez.
Intellisense peut beaucoup aider en termes de syntaxe si vous voulez de l'aide de ce côté-là. Il est plus important de savoir comment vous apprenez afin d'appliquer rapidement ce que vous apprenez de manière significative que de pouvoir répondre à des questions triviales.
la source
Je crois que la mémorisation des noms est une fonction cognitive assez différente de celle des processus de mémorisation qui est différente de celle des vocabulaires. Il y a eu des cas de personnes qui ont subi des lésions cérébrales qui ont complètement supprimé la capacité de se souvenir des noms tout en pouvant parfaitement fonctionner autrement.
Je dirais donc que la possibilité de se souvenir des noms sans rapport avec l'apprentissage des langages de programmation.
Il serait toutefois utile de pouvoir se souvenir des modèles logiques, des règles et du vocabulaire.
la source
Non. La profondeur de mémoire des outils (Intellisense, Google, compilateurs, générateurs de code) est infinie par rapport à la mémoire humaine. Donc, un programmeur avec une bonne mémoire n'est pas beaucoup mieux qu'un programmeur avec un trou dans la tête.
Ce dont les programmeurs ont réellement besoin, c'est d'une "vitesse de focalisation maximale" lorsqu'ils basculent entre les niveaux d'abstraction. Plus vite vous pourrez, mieux vous serez en tant que programmeur. Certains ont une vitesse de battement de coeur comme 500 ms, avec l'arrivée de la première vague de sang au cerveau, vous êtes concentré. Certains ont une horloge de mise au point arrondie au cycle de fumage, environ 2 heures. Certains ont besoin d'une douche matinale, donc environ 24 heures. etc. La différence entre le bon et le mauvais programmeur a déjà été déclarée il y a 1:80 ans, et l'écart ne fait que s'accroître.
la source
Non, il vous suffit de comprendre comment Google fonctionne pour obtenir ce que vous voulez
J'ai une horrible mémoire, mais mes compétences en recherche sur Google sont impressionnantes ^ _ ^
Sérieusement, tant que vous savez où trouver la syntaxe, vous n'avez pas besoin de vous en souvenir. C'est à cela que servent intellisense, les fichiers d'aide, les guides de référence, Internet, etc.
la source
Tout d'abord, apprendre à programmer est difficile pour tout le monde. Avoir une bonne mémoire aide, j'en suis sûr. Mais le dévouement et l'amour de l'apprentissage tout au long de la vie sont plus précieux. Apprendre la syntaxe est comme toute autre chose, la répétition.
Il n'y a rien de magique ou de surhumain dans la compétence de programmation. Passez-y environ 10 000 heures ... et vous serez un maître comme toute autre compétence. Bien sûr, cela représente 10 000 heures de formation, sans répéter aveuglément et paralysant l'esprit des erreurs passées.
la source
Vous avez écrit cet article en anglais, avec une syntaxe appropriée. De toute évidence, vous pouvez vous rappeler comment utiliser une langue. Vous avez juste besoin d'apprendre une nouvelle langue et de l'utiliser suffisamment souvent pour bien la comprendre tout le temps. Contrairement aux langages à vocation humaine, les langages de programmation informatique vous permettront toujours de savoir quand vous avez utilisé une syntaxe incorrecte, donc c'est en fait plus facile. :-)
la source
Je suis d'accord qu'il existe une grande variété de choses qu'un programmeur moyen peut savoir pour accomplir ses tâches, pensez à tous les mots, syntaxes, techniques que vous devriez contrôler pour construire un site Web simple (sur le front end: html, css, javascript (vous pouvez également compter certains frameworks Js comme jquery), ajax, sur le back-end: Php ou ASP ou ASP.Net, et n'oubliez pas les bases de données, mySql ou SqlServer ou Oracle ou MongoDB, etc.). Il existe une énorme liste de langues, de paradigmes, de sintaxies, de modèles, etc., il est impossible de se souvenir de tout.
Il pense que ce qui fait un bon programmeur, c'est la pratique, les pratiques avec des algorithmes plus qu'avec des langages, et avec ça vous vous souviendrez finalement des choses que vous utilisez le plus souvent, pour le reste, il y a toujours google = P
la source
Une grande mémoire peut couper dans les deux sens.
Si vous pouvez jongler avec des dizaines d'informations dans votre tête à la fois, vous aurez beaucoup plus de facilité à comprendre (et, espérons-le, à réécrire) cet horrible morceau de code hérité qui est essentiel au projet mais si compliqué que tout le monde a peur le toucher.
D'un autre côté, cet horrible morceau de code qui est essentiel au projet mais si compliqué que tout le monde a peur de le toucher a probablement été écrit par quelqu'un avec une capacité incroyable à jongler avec des dizaines d'informations. Si vous avez une grande mémoire, travaillez très dur pour cultiver l'appréciation de l'élégance de la simplicité.
Apprendre la syntaxe d'un langage de programmation ne nécessite pas une grande mémoire. Comme d'autres l'ont dit, la syntaxe est tellement renforcée dans votre mémoire qu'elle devient rapidement une seconde nature. Avez-vous déjà oublié de quel côté de la route vous êtes censé conduire? Quels symboles arithmétiques représentent l'addition et la soustraction? Sinon, vous maîtriserez sans trop de difficulté les parties les plus courantes de la syntaxe de votre langue choisie, et vous pourrez rechercher les bits les moins courants lorsqu'ils apparaissent.
Certaines bibliothèques ont des centaines ou des milliers de fonctions, classes et / ou méthodes. Il semblerait à un étranger comme une tâche impossible d'apprendre à utiliser toutes ces fonctionnalités. Mais il y a presque toujours une structure sous-jacente à la bibliothèque. Au lieu d'essayer de se souvenir de toutes ces fonctions, un programmeur intelligent essaie de comprendre comment la bibliothèque est organisée et ce qu'elle peut faire. Cela fait, il est généralement assez facile de trouver la fonction dont vous avez besoin quand vous en avez besoin.
Bref, la mémoire est beaucoup moins importante que la compréhension.
la source
Ça dépend. Dans Java et .NET, les bibliothèques standard sont dans une sorte de hiérarchie et sont bien documentées. Par conséquent, si vous savez que vous avez affaire à un réseau, vous accédez à system.net en C # et à partir de là, vous pouvez accéder aux objets / appels spécifiques dont vous avez besoin. Donc, de ce point de vue, vous n'avez pas besoin de mémoriser les détails et là.
Dans votre propre programme, tout dépend de la façon dont vous organisez / nommez les choses. Si vous utilisez des noms comme a $, b $, c $ ... ou g $ de Basic of old, alors bonne chance. si vous nommez les choses comme vous le pensez comme FirstName, LastName, c'est beaucoup plus facile. De nombreuses langues ont des normes de dénomination qui aident également. En Java par exemple, il existe une convention de setX, getX pour obtenir / définir des attributs spécifiques d'une classe ainsi que des conventions de capitalisation. Donc, si vous savez qu'une personne a un prénom, alors il s'appelle probablement firstName et le getter / setter sont probablement getFirstName et setFirstName ..... Donc ces conventions aident beaucoup ...
Des méthodes / fonctions plus courtes vous aident également à garder moins dans votre tête à la fois. Et l'utilisation de noms propres vous aide à ne pas avoir besoin d'aller chercher. Par exemple, si vous nommez des choses pour ce qu'elles font, alors lors de la lecture d'une procédure qui appelle getMaximumValue, vous n'aurez probablement pas besoin de lire getMaximumValue pour comprendre ce qu'elle fait ... Mais comme les fonctions / méthodes deviennent plus longues et plus imbriquées, alors une meilleure mémoire aide certainement.
la source
La mémoire n'est pas si importante. Si cela vous inquiète, j'oublie régulièrement mon portefeuille ou mes clés dans ma maison le matin. J'appelle tout le monde par le mauvais nom au moins une fois (y compris ma famille et ma petite amie). J'oublie simplement de faire des choses autour de la maison tout le temps.
À la fin de la journée, les principes de programmation seront toujours dans votre tête, tout comme "vous n'oublierez jamais comment faire du vélo". Les détails spécifiques et les détails de mise en œuvre ne sont pas si importants. Vous pouvez toujours les rechercher sur Google.
la source
De Joel On Software sur la productivité d'un programmeur-
Ainsi, la mémoire à court terme est très importante pour un programmeur, étant donné une tâche critique.
Mais je ne pense pas que la mémoire à long terme compte autant.
la source
D'une lecture rapide, je n'ai vu personne parler de la mémoire au sens général de la programmation plutôt que d'une tâche singulière d'écriture d'un programme.
La mémoire est utile pour deux choses:
Se souvenir de la sémantique / bibliothèques de base:
Ceci est facilement supplanté par la répétition et Google. IOW, la quantité de mémoire avec laquelle vous êtes né doit être ridiculement faible pour ne pas pouvoir surmonter ce problème.
Se souvenir du contexte dans les grands programmes:
Voici où est l'astuce. Au fur et à mesure que les programmes grossissent (et que vous devenez senior), les décisions que vous prenez sont totalement liées à la quantité de connaissances que vous avez du système et à votre capacité à le récupérer en quelques millisecondes s'il doit être utile dans les discussions de projet, le débogage, réagir aux urgences opérationnelles, etc. Lorsque la poussée se fera sentir, aucune quantité d'entrées de documentation / wiki ne vous aidera - votre «assistant» d'équipe sera votre seule option. C'est l'une des raisons pour lesquelles les ingénieurs principaux sont tant appréciés / payés. La plupart d'entre eux peuvent ne pas passer tout leur temps à coder à ce stade, ils passent plus de temps à se tenir au courant de l'image complète et à l'appliquer pour tout problème / amélioration. Les bons restent simplement en contact en faisant une tonne de CR et un changement de codage ici et là / prototypage de nouvelles révisions.
IOW, vous pouvez être un programmeur raisonnable avec le seul numéro 1, mais si vous voulez être le prochain Linus, vous feriez mieux d'avoir beaucoup de mémoire, au moins assez pour englober le problème que vous résolvez.
D'après mes observations, je pourrais même dire que la mémoire de travail est presque directement proportionnelle à la valeur de la personne.
Un petit avertissement pour conclure: si vous avez une mémoire Eidetic mais une puissance intellectuelle nulle / faible dans l'application de cette logique, vous ne serez pas bon pour un projet qu'un appareil photo.
la source
Si vous avez du mal à vous souvenir des noms des personnes que vous rencontrez, vous pourriez tout de même devenir un excellent programmeur.
J'oublie tout le temps les noms des gens. Je suis programmeur senior avec près d'une décennie d'expérience. Dans mon cas, ma terrible mémoire auditive est compensée par une grande mémoire visuelle.
Même ainsi, l'exigence essentielle pour un bon programmeur est la capacité d'abstraire. Peu importe combien ou peu vous vous souvenez, si vous ne pouvez pas comprendre le concept d'une variable et comment l'utiliser dans un programme, vous ne deviendrez pas un bon programmeur.
Ma suggestion est d'essayer un court cours de programmation ou de suivre le didacticiel Python pour voir comment vous l'aimez.
Cela devrait vous donner une bonne idée de savoir si la programmation est une carrière que vous pourriez souhaiter poursuivre.
la source
Je dis OUI catégoriquement!
À l'heure actuelle, j'apprends JAVA & C #. Tous les tests sont à livre fermé, donc pour JAVA, tout est 100% de la mémoire codant toutes les applications aux examens.
De plus, cela devient de plus en plus difficile. J'en suis au point où je dois commencer à utiliser des astuces de mémoire comme les mnémoniques, etc.
Je dirais que le QI élevé, les bonnes connaissances générales, le bon vocabulaire, le polymathisme, les connaissances supérieures en mathématiques, la saisie tactile et la bonne mémoire sont tous des atouts pour un programmeur.
Je connais des programmeurs très intelligents qui ne peuvent pas toucher le type ou faire des mathématiques supérieures, etc. Ce qu'ils ont fait, ils pourraient être bien meilleurs.
la source