Je suis un programmeur novice. J'étudie des langages tels que C, C ++, Python et Java (principalement en C ++). Je suis ce que vous appelleriez "jeune et inexpérimenté" et je l'avoue parce que je ne peux pas prétendre le contraire.
En tant qu'étudiant, j'ai beaucoup d'autres problèmes en plus de la programmation. Je pratique la programmation aussi souvent que possible, et surtout parce que mon professeur me donne beaucoup plus d'exercices que le reste de la classe (c'est un niveau très bas), donc souvent je passe des semaines à faire autre chose comme des projets scolaires ou des sports, ou voyager, autre chose que la programmation.
Ne vous méprenez pas cependant, j'adore la programmation. J'adore créer du code fonctionnel, regarder un programme s'animer en appuyant sur un bouton et apprendre autant que possible. Le fait est que je n'ai tout simplement pas beaucoup de temps pour cela.
Maintenant, passons directement à la question: vos connaissances en programmation diminuent-elles avec le temps et vous ne pratiquez pas? Vous pouvez demander "combien de temps voulez-vous dire?". Je ne parle pas d'une durée spécifique, mais pour référence, vous pourriez prendre un mois-deux ou même un an comme exemple.
Par connaissance, je veux dire n'importe quoi, de la syntaxe à la fonctionnalité du langage.
Réponses:
De toute évidence, la programmation est quelque chose que vous apprenez à faire, pas un ensemble de faits ou d'informations. Cela dit, c'est plus comme faire du vélo ou parler une langue. Il y a aussi des théories, mais il s'agit davantage de les mettre en pratique.
Même ainsi, comme n'importe quoi, si vous ne l'utilisez pas, votre cerveau commencera à laisser tomber l'information. Votre cerveau est comme un muscle de cette façon. Après une période de temps, vous vous souviendrez très probablement de concepts généraux mais pas de détails sur la syntaxe et les fonctions moins utilisées. Par exemple, vous voudrez peut-être faire une
for
boucle ou parcourir une liste et savoir que c'est quelque chose commewhile List.hasNext()
oufor item in list
oufor index, item of list
mais ne pas l'écrire en toute confiance.La bonne chose est que vous saurez ce que vous voulez faire. Vous avez juste besoin de le rechercher. Je ne serais donc pas trop inquiet à ce sujet. Cela vous reviendra. L'important est d'apprendre à résoudre les problèmes des programmes. Tous les langages de programmation sont généralement capables de faire les mêmes choses, mais la plupart du temps de manières différentes. Vous pourriez oublier que Ruby ou Python ont des compréhensions et écrivent trop de
for
boucles à la place, mais vous ferez le travail.Quant à ce que vous oublierez ou vous souviendrez, je pense que cela dépend de la façon dont votre esprit est actif et de votre âge. Je ne pense pas avoir développé un cerveau entièrement fonctionnel avant l'âge de 19 ans. À ce moment-là, mémoriser quoi que ce soit pour moi était un jeu d'enfant. Tout le monde est différent.
En résumé: les détails s'estompent toujours, la vitesse à laquelle ils s'estompent dépend de vous, toutes les langues essaient de faciliter la résolution des mêmes problèmes, il est donc peut-être plus important d'apprendre à résoudre les problèmes. :)
la source
Tout ce qui n'est pas utilisé finira par s'atrophier.
la source
Je suis propriétaire d'une petite entreprise, ce qui signifie que je suis The Guy. Donc, lorsque le site Web doit être mis à jour, je dois être le gourou de Zend / MVC. Lorsque je dois pirater des données ou modifier des pages Web, je trouve que je dois utiliser php. Lorsque je lutte avec Quickbooks, je peux me retrouver à utiliser des requêtes faux-QB, Visual Basic, php, mysql, linux et windows dans un miasme de soupe technologique. Oh oui, et je fais du travail de CAO lorsqu'un fournisseur a besoin de dessins, ce qui signifie que je dois être ingénieur mécanicien / concepteur et comprendre les formats de fichiers et ce qu'il faut pour que les gens sachent clairement ce qui se trouve dans ma tête. Nous venons de manquer de catalogues, j'ai donc acheté Adobe CS5 et pris le fichier InDesign pour l'ancien catalogue et l'ajusté pour le nouveau catalogue. Je suis également l'électricien et le réseauteur qui construit des câbles en cas de besoin.
Compte tenu de toute cette expérience au cours des 10 dernières années, j'ai constaté que j'oublie les choses en un mois environ. MAIS une fois replongé dedans, le cerveau suscitera des souvenirs qui m'enverront sur php.net ou fouilleront dans le code ancien / hérité / ancien que j'ai écrit. Idem pour le travail de CAO; il y a un énorme projet dans lequel je suis entré et sorti depuis plus d'un an. Lorsque j'allume cet ordinateur, il faut un jour pour que toutes les mises à jour soient terminées et les licences triées, puis deux à cinq jours supplémentaires pour arriver là où j'étais quand je me suis arrêté.
Je trouve que le plus difficile à reprendre à chaque fois est la programmation qodbc Quickbooks. : P J'ai fait MySql et PostgreSQL de temps en temps au fil des ans et avec mes fichiers de texte de triche où j'enregistre des requêtes particulièrement utiles, je peux ramasser ce truc très rapidement.
Résumé: conservez tout votre travail pour toujours, jouez avec lui tous les 6 à 12 mois, lorsque vous aurez besoin de revoir ce code, vous n'aurez probablement pas trop régressé, et attendez-vous à être à nouveau à pleine vitesse d'ici une semaine.
la source
Les connaissances générales en programmation ou les compétences en résolution de problèmes programmatiques ne vieillissent pas vraiment, mais les connaissances spécifiques au langage ou au cadre deviennent obsolètes après un certain temps.
la source
Les méthodologies et les goûts ne diminuent pas si vous ne vous entraînez pas, mais se souvenir de la syntaxe et des bibliothèques correctes le fait certainement.
J'utilise principalement Java, C ++ et C #. Mais depuis deux ans, je n'utilise Java qu'occasionnellement (si un bogue doit être corrigé dans un système hérité). J'ai donc souvent du mal à me souvenir de la syntaxe correcte ou de la bibliothèque dont j'ai besoin maintenant.
la source
Connaissance, non (du moins pas les concepts de Big Picture). Compétences, oui.
la source
Les connaissances diminuent quelque peu, vous pourriez vous retrouver à oublier une partie de la syntaxe ou les aspects plus complexes d'une certaine langue. Au début, il peut également être difficile de structurer votre code si vous ne vous entraînez pas, mais après un certain temps, cela reviendra.
la source
Apprendre à programmer, c'est apprendre à résoudre des problèmes plus qu'autre chose. Je suis dans une situation où je n'avais pas programmé depuis plus de 10 ans. Oui, les détails de syntaxe que j'avais et que je dois consulter régulièrement, mais la compétence en résolution de problèmes était toujours là.
la source
Comme pour toutes les activités cérébrales, les connaissances commencent à s'estomper au bout de quelques secondes. Cela continue pendant quelques secondes et minutes (court terme). Une partie est transférée par l'hippocampe dans la mémoire à long terme, où le processus de décoloration est beaucoup plus lent.
Une analogie que j'aime plus que le muscle c'est "l'éponge". Apprendre et utiliser, c'est comme ajouter de l'eau qui rend l'éponge agréable, dodue et «lourde». Arrêtez d'ajouter de l'eau et elle commencera à sécher et à perdre du poids. Les neurologues peuvent aimer cette analogie;)
Certaines choses qui peuvent contrer cela sont:
Répétition. Faites n'importe quelle tâche suffisamment de fois et vous vous en souviendrez.
Némoniques. Que ce soit visuel, auditif ou quoi que ce soit, cela peut être vraiment utile.
La flexibilité. Plutôt que la connaissance elle-même, la capacité d'assumer de nouvelles tâches est essentielle et est facilitée par la réalisation fréquente d'activités complètement nouvelles.
Exercice. Bien connu pour aider le cerveau et la mémoire.
Prendre des notes. Pas (tant) pour référence future, mais parce que le processus réel de leur fabrication aide à verrouiller les connaissances dans leur esprit.
la source