J'apprends de nouvelles langues au fur et à mesure, j'écris du code pour des programmes très basiques en plusieurs langues, et je vais en cours. J'ai lu des livres, des articles, des leçons, des vidéos, vous l'appelez, mais je n'arrive pas à comprendre certaines choses.
Par exemple, je n'ai jamais compris les pointeurs - dans quoi ils sont bons. (NE FAIT PAS PARTIE DE LA QUESTION - il n'est pas nécessaire de réétiqueter avec des "pointeurs" ...)
Ma question n'est cependant pas ce que font les pointeurs, mais comment puis-je comprendre des choses comme ça? Si, après avoir lu un livre ou un article sur une certaine partie de la programmation, et que je ne comprends pas, que dois-je faire? Écrire du code dans une certaine caractéristique de la programmation aide sûrement, mais cela n'aide pas vraiment à comprendre beaucoup. La partie théorique est importante pour la compréhension.
la source
Computer Architecture 101
cours aideraient grandement à comprendre les pointeurs. ...et tout le reste.Réponses:
Si vous avez du mal à comprendre un concept abstrait, descendez d'un niveau. Si vous ne pouvez pas obtenir les pointeurs en C - descendez au niveau de l'assemblage. Vous rencontrez toujours des problèmes? En savoir plus sur le matériel, jusqu'aux portes logiques.
la source
MIX
autres architectures de jouets similaires. Pour une partie matérielle, c'est la même chose - il y a beaucoup de cœurs CPU simples à étudier.Cycle de vie d'apprentissage incrémental court
Étapes supplémentaires
A utiliser avec prudence.
man -k
,apropos
, etc ...)Celles-ci sont plus sournoises car vous devez vous réévaluer pour vous assurer que vous avez bien compris. Le mentorat direct par une personne bien informée est généralement préférable, suivi bien sûr de votre propre validation des connaissances acquises en réimplémentant ce que vous venez d'apprendre (et en essayant ensuite de pousser plus loin et d'apprendre un concept de niveau supérieur construit sur le dessus de celui-ci, par exemple des listes liées pour vos pointeurs).
Crédits: Nupul (pour la représentation graphique)
la source
D'après mon expérience, tout dépend de la contribution et des commentaires. Vous souhaitez obtenir des commentaires sous autant de formes que possible et recevoir des commentaires sur vos erreurs aussi rapidement que possible.
D'après mon expérience, mon diplôme CS était très sec, très formel et totalement sans valeur pour enseigner n'importe quelle programmation. J'ai assisté à deux ou trois conférences par semaine et si vous ne comprenez pas, c'est à peu près tout - le professeur a une autre classe à enseigner et ne peut pas rester pour vous aider. Et, il y a de fortes chances qu'un gars le comprenne d'une certaine manière, et il l'enseignera d'une certaine manière et c'est tout, donc si vous ne pensez pas comme lui, vous ne l'obtiendrez jamais. Ce qui est pire, c'est qu'il comprend probablement un milliard d'autres concepts connexes, il va probablement l'encadrer en termes de ces autres concepts, qui peuvent bien être au-dessus de votre tête ou tout simplement pas même dans le matériel de cours.
Je suis allé sur Stack Overflow et j'ai demandé dans le canal de chat C ++ et j'ai obtenu cinq explications différentes en cinq minutes. Ils étaient tous spécialement adaptés à moi et au problème exact que j'avais, il n'est donc pas surprenant que l'un d'entre eux soit rentré chez moi et je l'ai compris. Le taux auquel vous pouvez apprendre en obtenant les commentaires en direct de plusieurs experts dépasse largement ce que vous pouvez obtenir d'une source de papier séché.
Donc, idéalement, faites une pause, puis vous trouverez un groupe de taille petite à moyenne de personnes aux vues similaires qui n'ont rien de mieux à faire et à discuter avec eux en direct. Soit dit en passant, Stack Overflow est un excellent endroit pour obtenir ce type de rétroaction personnelle à haute vitesse de haute qualité.
la source
Dans aucun ordre, les livres, les amis et la lecture de code bien documenté sont de bonnes sources. La pratique est le seul moyen d'apprendre: essayez d'écrire de petits tests unitaires. Par exemple, pour les pointeurs, écrivez du code qui traite des chaînes: inversez une chaîne, inversez chaque mot d'une chaîne, testez le palindrome, remplacez une lettre par un nombre ...
Posez des questions sur stackexchange ...;>
la source
C'est en forgeant qu'on devient forgeron! (bien mieux quand même). Continuez simplement à essayer et essayez d'utiliser autant de sources et de sens différents que possible:
Sources: livres, Internet, groupes d'utilisateurs, amis, apprentissage vidéo, en utilisant des sites qui vous permettent de tester un peu de code comme jsfiddle (principalement html),
Rubular (expressions Ruby),
SQlzoo pour essayer sql,
jslint pour javascript,
code pad pour de nombreuses langues.
Pour se souvenir des choses abstraites, considérez la mnéomique - les médecins les utilisent!
Considérez-vous comme un apprenant à vie et restez humble et vous pouvez aller loin.
la source
Vous devez changer votre focus pendant un certain temps, pas 5 min. ou 5 heures ... Je veux dire quelque chose comme 1 jour sans regarder ce code .... juste se détendre à ce sujet ... allez lire quelque chose de différent ...
Si vous devez le comprendre maintenant ... demandez l'aide d'amis ou ici =)
la source
Ce que tout le monde en informatique fait.
J'utilise un moteur de recherche pour rechercher les concepts connexes que je ne comprends pas jusqu'à ce que je puisse revisiter le sujet que je voulais initialement comprendre.
Il y a de fortes chances que vous ne compreniez pas non plus complètement la pile, le tas, les variables automatiques, le processus de compilation C ++, l'assemblage, la mémoire gérée par rapport à la mémoire non gérée.
Plus de clarté sur ces concepts et sur d'autres concepts liés aux pointeurs éclaircirait probablement tout.
la source
Il n'y a aucun moyen rapide et sûr de comprendre un sujet. Votre succès dépend du contexte que vous apportez avec vous dans vos études. Vous aurez beaucoup de chance de trouver quelqu'un qui vous expliquera les choses en pensant à votre point de vue. Comme les machines Turing, n'importe qui peut apprendre ce que les autres savent, et c'est juste une question de persévérance et d'acceptation que la frustration est naturelle.
Je me souviens de l'immense difficulté que j'avais avec les pointeurs. Ce n'est que lorsqu'un mec très patient m'a expliqué cela comme si j'étais un idiot complet que je l'ai compris. C'est parfois ce qu'il faut.
la source
Il s'agit d'un problème courant dans l'apprentissage et l'enseignement. Et comme d'autres l'ont dit, il n'existe aucun moyen sûr de contourner ce problème. C'est une vérité fondamentale que nous apprenons tous différemment puisque notre cerveau est câblé différemment de manière subtile mais cruciale.
L'apprentissage génère de nouvelles connexions neuronales. Sans trop entrer dans les neurosciences (dont je ne connais presque rien), générer de nouvelles connexions nécessite différents types d'exposition à un concept pour différentes personnes. Essayez de nombreux angles différents, lisez / entendez / regardez différentes explications. Entraine toi!
Si cela ne fonctionne pas, mettez le problème de côté: vous pourriez simplement manquer une autre partie du puzzle qui, une fois acquise, rend le problème d'origine évident.
Connaissez-vous ces aha! des moments? C'est alors que votre cerveau vient d'établir une nouvelle connexion. C'est ainsi que l'apprentissage se produit.
Soit dit en passant, tout bon enseignant le sait. Les directives pour la rédaction technique stipulent souvent que chaque concept doit être expliqué au moins deux fois, en utilisant des mots différents (et peut-être avec du texte entre eux). Si vous faites attention, vous pourrez constater que tous les bons écrivains scientifiques suivent cette règle.
Hélas, trop d'enseignants l'ignorent et n'expliquent les choses qu'une seule fois. Et même s'ils parviennent à trouver une explication élégante avec une grande métaphore, cela ne suffit tout simplement pas.
la source
Lisez toute documentation pertinente et Google vos doutes.
Essayez d'écrire des exemples de code, voyez ce qu'ils font.
Essayez d'exécuter du code dans le débogage et regardez-le étape par étape.
Si vous ne comprenez toujours pas un certain comportement, demandez à quelqu'un, en personne ou sur un site Web comme celui-ci. Si vous avez essayé tout ce qui précède, vous devriez avoir tous les éléments pour composer une bonne question. Ne soyez pas timide :)
Je pense que c'est à peu près ce que tout le monde fait.
la source
Continuez à rechercher et à apprendre. J'ai eu le même problème avec divers autres aspects de la programmation. Mais parler aux autres et lire des articles mène finalement à un moment "AHA". Généralement, c'est un autre article de blog ou une réponse SO qui présente les informations que je suis en mesure de suivre.
Fondamentalement, continuez à chercher et soyez patient pour la compréhension à venir.
la source