Vous pouvez souvent entendre que les programmeurs doivent apprendre de nombreuses langues différentes pour s'améliorer. Je vais toujours à l'école et je n'ai pas une grande expérience en programmation (un peu plus d'un an). Mais ce qui était une noble intention d'améliorer les compétences en programmation s'est transformé en une sorte d'OCD: je sens que je ne me calmerai pas avant d'avoir appris tous les langages de programmation relativement connus.
Et voici la question elle-même: le fait d'être des langages de programmation polyglottes vous aidera-t-il réellement (et je ne veux pas dire "le programmeur devrait connaître au moins tous les paradigmes", je veux dire vraiment tous les langages dont vous entendez habituellement parler)? Quelqu'un at-il une expérience similaire? Cela aide-t-il à l'emploi / compétences / carrière? À quelle fréquence pouvez-vous appliquer ces compétences?
la source
Réponses:
Qui aide
Ça n'aide pas. Bien qu'une fois que vous connaissez tous les paradigmes, vous pouvez apprendre une langue par semaine.
Il est tout simplement plus optimal de passer une semaine à apprendre cette langue lorsque vous en avez besoin .
Note latérale:
Apprendre des langues courantes / populaires n'est pas aussi utile que d'apprendre "tous les paradigmes". Le premier ne couvre pas le second. Par exemple, l'apprentissage du Soi est incroyablement utile pour comprendre l'OO prototypique. Ce n'est pas un langage commun ni populaire, mais c'est beaucoup plus utile que d'apprendre le python quand vous connaissez déjà ruby.
Conception de la langue:
Connaître la plupart des langues est utile si vous écrivez / concevez une nouvelle langue. Il existe donc un solide cas d'utilisation, mais c'est une niche assez intéressante.
Ce que je vous recommande de faire à la place:
Lire le code complet 2 au moins 3 fois
Les langues vont et viennent à gauche et à droite selon "ce qui est populaire". La technologie devient obsolète après des mois ou des années en fonction de la courbe technologique. (Le Web déconseille la technologie au rythme de tous les 6 mois).
La technique de programmation et la théorie de l'informatique restent toujours les mêmes.
la source
Il ne s'agit pas de savoir coder dans une multitude de langages, il s'agit, comme vous le dites, de paradigmes. Plus vous connaissez d'options, mieux c'est. La connaissance de plusieurs langues aide certainement, mais si vous continuez à apprendre les mêmes types de langues, vous serez rapidement dans une impasse.
La clé est de savoir quelle langue / système est le meilleur pour implémenter une partie de votre projet. Même si vous avez choisi une langue principale (comme le font la plupart des projets), vous aurez toujours toutes sortes d'outils, de scripts, d'automatisation et de support de construction qui doivent être écrits. Habituellement, une variété d'autres langues ou outils sont meilleurs que votre langue principale.
Juste pour clarifier, je trouve idiot d'essayer d'apprendre toutes les langues dont vous entendez parler: il y en a des centaines et souvent ce ne sont que de légères variations sur d'autres langues.
la source
À mon humble avis, ce n'est pas le cas. D'abord parce que vous ne pouvez pas apprendre une langue en moins d'un an. Il faut 2 jours pour pouvoir y écrire du code, mais cela prend beaucoup d'expérience pour écrire du code fluide et bien formé pour la langue donnée. Pourquoi GC fonctionne comme il le fait, où allouer de la mémoire, quelles constructions sont plus rapides, comment concaténer correctement les chaînes, quels sont les coins dangereux du langage, etc.
J'écris de terribles codes Java / .NET en tant que développeur C ++, comme beaucoup de développeurs Java écrivent de terribles codes C ++.
La meilleure partie de l'apprentissage d'autres langues est que vous apprenez de nouveaux paradigmes et possédez peut-être un meilleur outil pour un problème concret. Dites - vous avez besoin d'une application graphique très rapide et non publique, .NET y est irremplaçable.
Mais apprendre un langage afin de ne pas utiliser de structures dans .NET, ou de ne pas divulguer tous les objets en C ++, prend beaucoup de temps. Je pense qu'il vaut mieux le dépenser pour apprendre les principes de conception, les plateformes et la langue de votre choix.
Mais ce n'est que mon avis.
la source
Il est pas pratique de savoir , mais il peut être très utile de savoir au sujet de eux. Ce que je veux dire par là, c'est que lorsque vous rencontrez un nouveau problème, vous pouvez dire: «Je me souviens vaguement que [une autre langue] avait une manière supérieure de résoudre des problèmes comme celui-ci. Je devrais chercher cela.
la source
Vous aideriez davantage votre carrière en développant des connaissances de domaine puis en apprenant de nombreux langages de programmation. Sans oublier que vous allez avoir besoin d'apprendre des outils supplémentaires pour aller avec, comme comment utiliser un profileur dans votre langue, même pour le débogueur, le meilleur cadre GUI et comment programmer rapidement avec lui, quelles bibliothèques tierces communes existent avec des compromis et idiomes spécifiques à la langue.
Il est également plus sage d'apprendre à faire plus de choses plutôt que de nombreuses façons de faire la même chose.
la source
J'ai travaillé sur plusieurs systèmes où les composants étaient écrits en plusieurs langues (le pire contrevenant m'obligeait à livrer du code écrit en Ada 83, C, Fortran 77, SQL et DCL, alors que mon dernier travail m'obligeait à livrer du code C ++ et Java ). Donc, oui, il y a des cas concrets où vous devez connaître suffisamment plusieurs langues pour être productif (productif! = Compétent; vous n'allez pas être un expert approfondi en C ++ et Java et ... à moins que vous suis un monstre).
Au-delà de cela, le point de prendre le temps d'apprendre plusieurs langues est d'aider à séparer les concepts de la mise en œuvre . Pour moi, la POO n'a commencé à avoir du sens que lorsque j'avais travaillé avec plusieurs POO. De plus, à un moment donné de votre carrière, vous devrez rapidement changer de vitesse et commencer à travailler sur quelque chose de totalement nouveau et inconnu; prendre un certain temps maintenant pour aller au-delà de ce que vous devez savoir aidera à faciliter cette transition lorsqu'elle se produira.
la source
Je pense que vous seriez mieux servi d'apprendre quelques langues différentes, puis au moins une en profondeur avant de vous lancer dans la nécessité d'apprendre toutes les langues possibles. Une fois que vous avez un minimum de largeur, la profondeur devient vraiment importante pour votre progression en tant que développeur. J'aurais vu quelqu'un avec de la profondeur dans une ou deux langues et une poignée de quelques autres que quelqu'un avec une poignée de tout. Approfondir, c'est comme apprendre un autre paradigme, cela changera votre façon de penser la programmation et cela ouvrira des portes à des projets passionnants vraiment complexes.
la source
C'est comme apprendre à parler plusieurs langues. Les apprendre tous au point d'être utiles est presque impossible. Restez fidèle à ceux que vous êtes susceptible d'utiliser et vous serez mieux. Vous pouvez très bien apprendre C ++, C # et Java, mais essayer de presser Perl, Python, VB (pas VB.NET), Ruby et JavaScript à un niveau professionnel en même temps est juste stupide. Il n'y a pas assez d'heures dans la journée pour maintenir vos compétences à niveau en une seule fois.
la source