Lorsque vous apprenez de nouvelles langues, est-il préférable de vous engager à 100% dans une langue et d'attendre de l'avoir "maîtrisée" pour passer à une autre, ou travailler à l'apprentissage de différentes langues en même temps?
Si cela est important, j'apprends actuellement le C++ et j'aimerais savoir Java et Python également).
Non seulement je ne vois pas de problème avec l'apprentissage de plusieurs langues à la fois, je pense que cela peut vous bénéficier directement dans la mesure où quelque chose dans une langue peut éclaircir un problème que vous pourriez avoir dans une autre langue. Par exemple, mon langage principal est C # et lorsque je traite avec LINQ, j'utilise le format SQL (ce qui est bien, je ne le frappe pas du tout, mais cela ne semblait pas être la "manière cool" de le faire). Je suis resté loin de Lambdas parce que, pour être honnête, je ne les comprenais pas et la documentation C # que j'ai vue ne fournissait pas de définition claire (pour moi). Ensuite, j'ai commencé à acheter des livres sur F # et j'ai commencé à apprendre cela, ce qui m'a donné le "ah ha!" moment de comprendre comment sont les Lambdas.
J'ai constaté que, comme je connaissais de plus en plus avec d'autres langages (et frameworks), je suis devenu meilleur en C # (et ASP.Net). C’est pourquoi je pense qu’apprendre plusieurs langues à la fois n’est pas une mauvaise chose!
Si c'est votre première langue, je pense qu'il vaudrait mieux l'apprendre assez bien pour comprendre comment fonctionne un langage de programmation.
Une fois que vous avez de bonnes bases, vous pouvez en choisir autant que vous le souhaitez.
Je pense qu'une compétence importante pour les programmeurs est la capacité d'apprendre de nouveaux langages de programmation. En tant que tel, j'ai tendance à suggérer que l'on essaie d'abord d'apprendre une seule langue, puis d'en ajouter d'autres.
Quelle que soit votre langue maternelle, le processus d'apprentissage de langues supplémentaires devrait:
Au fil du temps, à mesure que vous accumulez des langues, vous formerez votre propre langage de pseudocode abstrait interne qui vous aidera à traduire entre les langues que vous connaissez. Ce langage interne est le cadre que vous utiliserez pour apprendre rapidement de nouvelles langues.
Apprendre des langues en parallèle est une chose assez normale. Par exemple, la programmation Web. Vous avez affaire à au moins trois langages: côté serveur (php, Java, .net, Ruby, python ...), code client (script Java et html), base de données (sql).
Je ne vois aucun problème pour apprendre plusieurs langues à la fois. En fait, vous ne maîtrisez jamais vraiment une langue, donc vraiment, chaque fois que vous travaillez avec plus d'une langue, vous apprenez probablement les deux.
Vous voudrez peut-être vous concentrer sur une langue pour passer à travers les bases juste pour vous empêcher de confondre les deux langues. Cela est particulièrement vrai si vous apprenez des langages similaires, comme Java et C #.
J'enseigne la programmation depuis plusieurs années, je peux donc partager mon expérience avec vous. Je suppose que C # est votre première langue, donc mon expérience dans l'enseignement de la programmation à des gens qui n'avaient jamais programmé auparavant peut être utile.
Tout d'abord, permettez-moi de vous dire que l'apprentissage de plus d'une langue est quelque chose que tout programmeur chevronné devrait faire. Mais cela ne signifie pas que vous devez apprendre plusieurs langues en même temps si vous débutez.
Au fil des ans, les élèves ont montré qu'il faut environ un an pour qu'une langue se solidifie dans l'esprit (au moins la première), parfois un peu plus, parfois un peu moins. Si vous essayez d'enseigner plus d'une langue en un an, les étudiants ont tendance à les mélanger et à confondre concepts et langues. Bien que les élèves progressent, ils adoptent de nombreuses mauvaises habitudes qui sont difficiles à éliminer plus tard. Si vous apprenez par vous-même, ce risque est plus élevé.
Cependant, j'ai remarqué que cela aide si vous enseignez deux langues avec une syntaxe très différente. Lorsque deux langages de programmation regardez vraiment différents, cela aide l'esprit à les voir comme des entités vraiment différentes sans se polluer. (Quand un langage de programmation vous aide à comprendre des concepts difficiles dans un autre langage, c'est bien; quand un langage vous fait écrire du mauvais code dans un autre langage, c'est mauvais).
Par conséquent, ma recommandation serait de s'en tenir à un seul langage de programmation pour votre première année. Alternativement, cela peut être une bonne idée d'apprendre deux langues en même temps tant qu'elles sont/ont l'air très différentes. Si votre première langue est C #, je resterais loin de C, C++, Objective C et Java pour sûr; et probablement Python, Ruby et Javascript. Je recommanderais de combiner C # avec une fonctionnalité langage comme Haskell, Scheme, F #, Erlang, Clojure, ou peut-être Scala.
Je pense qu'apprendre plusieurs langues à la fois est en fait mieux que d'en apprendre une à la fois, parce que si les langues sont suffisamment différentes, chacune vous donne une pause de l'autre. Essayez de les échelonner pour que vous commenciez sur un nouveau une fois que vous avez franchi le stade de "débutant absolu" du précédent; De cette façon, vous aurez beaucoup plus de chances de conserver non seulement ce que vous avez appris sur la langue, mais comment vous avez appris une nouvelle langue. (Les compétences d'apprentissage des langues généralisées sont quelque chose dont vous serez très reconnaissant plus tard dans la vie de la programmation.)
Cela dit, l'apprentissage de votre langue maternelle nécessite un énorme investissement de temps et d'énergie, et vous n'aurez peut-être tout simplement pas le temps de vous lancer dans un autre grand projet au cours de ce processus. Si vous songez à démarrer un autre langage parce que vous en avez marre du C++ - ne le faites pas! Cela vous encouragera à tergiverser. Si vous songez à démarrer une autre langue parce que vous voyez constamment des mentions de projets écrites en (par exemple) Java et vous êtes frustré de ne pas pouvoir lire et analyser facilement le code - faites-le! C'est une excellente raison d'apprendre une autre langue à tout moment.
J'ai trouvé que l'apprentissage simultané de plusieurs langues pouvait conduire à prendre évidemment plus de temps pour apprendre une langue spécifique (cela va sans dire vraiment). Cependant, dans mon cas, cela m'a permis de décider quelles langues je préfère et le style de codage que j'aime le plus.
Dans mon cas, j'ai commencé avec C # puis je suis entré dans Python et F #. J'ai vraiment aimé le style fonctionnel de F # qui m'a amené à essayer Scala et Clojure. Maintenant grâce à l'apprentissage de toutes ces langues, j'ai trouvé Scala pour être un bon ajustement pour ce que je fais. De plus, je suis maintenant vraiment confiant dans OOP et les styles fonctionnels) et peut lire et écrire plusieurs langues avec compétence. C'est une grande compétence.