Contexte personnel: j'apprends formellement le C ++ depuis 6 mois à l'université. Avant cela, j'ai essayé JavaScript pendant un an. Maintenant, j'envisage d'apprendre Python pendant un mois de congé.
En divisant mon attention au début du processus d'apprentissage, est-ce que je dégrade l'efficacité de mon apprentissage? Dois-je passer le mois de congé à continuer en C ++? Ou n'est-il jamais trop tôt pour apprendre une nouvelle langue?
programming-languages
learning
efficiency
Anticipation
la source
la source
Réponses:
Mon expérience avec Python se limite à du code de lecture légèrement plus complexe que bonjour, donc ce ne sera pas une réponse très approfondie pour python en particulier, mais je peux vous dire ceci:
Les différences entre les langages sont dans des détails comme la syntaxe et certaines spécificités de langage seront différentes (comme les différentes façons dont les erreurs sont gérées, les capacités d'E / S et la façon dont les compilateurs convertissent vos entrées en quelque chose d'exécutable), mais C ++ et Python offrent tous les deux la même chose paradigmes, donc la résolution de problèmes peut se faire de la même manière avec les deux langues. C ++ et Python sont tous deux impératifs et orientés objet, donc vous allez probablement prendre python assez rapidement si vous êtes à l'aise avec C ++ une fois que vous maîtrisez la nouvelle syntaxe en utilisant des techniques de résolution de problèmes que vous avez choisies avec C ++. Si vous le souhaitez, vous pouvez également utiliser Python pour la programmation fonctionnelle, mais je n'ai jamais touché à cette partie, donc je ne peux pas vous en dire beaucoup à ce sujet.
Est-ce trop tôt? Je ne peux pas vraiment dire de votre histoire dans un oui ou un non définitif. Êtes-vous déjà suffisamment confiant pour écrire des applications complètes (GUI) avec C ++? (c'est-à-dire utiliser des bibliothèques, des fonctionnalités de langage plus complexes comme les génériques et / ou les modèles, etc.) Je pense qu'apprendre un nouveau paradigme de langage est beaucoup plus difficile que d'apprendre une nouvelle langue dans la même famille de paradigmes. Lorsque vous entrez dans un nouveau territoire de paradigme, vous devrez passer beaucoup plus de temps pour avoir une bonne idée de la façon de résoudre les problèmes avec ce paradigme. Entre les langages OO, il existe des différences quant à la façon dont l'héritage est traité et comment les données sont transmises dans la mémoire lorsque vous transmettez un paramètre / argument à une fonction affectant les performances. Mais pour commencer, ceux-ci sont généralement peu préoccupants au début.
Je suppose que si vous êtes suffisamment confiant avec C ++ pour faire quelque chose de plus que bonjour, de manière fantaisiste, vous êtes prêt pour le lancement. L'apprentissage superficiel de plusieurs langues vous aidera à comprendre les exemples de code quelle que soit la langue utilisée, mais la création de votre propre code nécessite un peu plus de compréhension du fonctionnement des langues et de leur différence.
PS Quand je veux apprendre à utiliser une nouvelle langue superficiellement, je vais généralement essayer les choses suivantes pour avoir une idée de la syntaxe de la langue et des fonctionnements superficiels:
la source
Bien sûr que oui.
Pas de doute, il est parfois trop tôt pour apprendre un nouveau langage de programmation.
Le cas le plus simple est de savoir si une langue el-stinko sort et avant que quiconque ne souligne son inadéquation, en l'apprenant, vous endommagez votre cerveau. Un couple qui me vient à l'esprit est BASIC, FORTH et APL.
Pour un cas plus compliqué, l'un des grands informaticiens a décrit ce problème qui a très brièvement déclaré que la pratique rend permanent, et il y a de nombreuses disciplines à apprendre avant d'apprendre les langages informatiques afin que le langage ne fausse pas la compréhension la plus fondamentale . Dans ses mots:
L'adversaire de plonger dans la programmation s'appelle Edsger Dijkstra et il a eu une carrière très distinguée. Il a reçu le prix ACM Turing avec la citation suivante:
Le papier où il explose l'apprentissage prématuré des langages de programmation est:
"Sur la cruauté de l'enseignement réel de l'informatique" http://www.cs.utexas.edu/users/EWD/ewd10xx/EWD1036.PDF
De plus, ne me flambez pas, je ne suis que le messager.
la source
Est-il encore trop tôt pour apprendre une nouvelle langue?
Je dirais oui. Si vous vous concentrez toujours sur le concept même que l'ordinateur peut réellement faire ce que vous lui dites, alors apprendre une deuxième langue ne fera que vous embrouiller.
Mais si vous avez dépassé le point où vous vous rendez compte que l'ordinateur fait exactement ce que vous lui dites, peu importe à quel point il est stupide, alors il y a de fortes chances que vous ayez une compréhension assez raisonnable de votre première langue qu'en regardant une seconde (et une troisième !) la langue ne rompt pas votre attention.
la source
Tu ne peux pas faire les deux ?? Je ferais un projet en C ++ et j'apprendrais des morceaux de Python (juste parce que c'est tellement génial), vous pourriez résoudre des problèmes sur ProjectEuler.net en utilisant Python
En général, je pense que c'est une mauvaise idée d'apprendre une langue, de la quitter et de commencer à en apprendre une nouvelle. Il faut être flexible en travaillant avec différents paradigmes aux premiers stades. Mais c'est exactement ce que je pense.
la source
Pour un programmeur pratiquant, je dirais sans réserve que l'apprentissage d'une nouvelle langue n'est presque jamais une mauvaise idée. Pour un étudiant universitaire, je recommanderais un peu de prudence, en fonction des cours à venir. La raison en est que, lors d'un examen scolaire, vous devez souvent réciter les détails de la langue sans bénéficier d'un environnement de compilation / exécution qui signalera facilement vos erreurs.
Surtout lorsque vous n'avez que quelques mois d'expérience, il est très facile de mélanger les détails dans votre esprit. Si vous vous souciez de vos notes et que vous suivez un cours avec des examens comme ça, je serais prudent. Dans le monde réel, ce n'est pas un problème.
edit : J'ai dit à l'origine la syntaxe, mais les détails non syntaxiques sont tout aussi importants pour les professeurs, et il y en a beaucoup plus.
la source
append()
vspush_back()
pour une liste, ce que même les programmeurs expérimentés doivent rechercher s'ils n'ont pas utilisé une certaine fonctionnalité dans une certaine langue depuis un certain temps. Le fait de pouvoir rappeler la syntaxe sur place est sans aucun doute utile, mais pour la grande majorité des travaux, il n'est jamais nécessaire .