it-swarm-fr.com

Si l'on veut apprendre un nouveau langage de programmation chaque année, quelle devrait être la liste?

Au chapitre un de "Le programmeur pragmatique" Le premier objectif d'apprentissage est:

Apprenez au moins une nouvelle langue chaque année. Différentes langues résolvent les mêmes problèmes de différentes manières. En apprenant plusieurs approches différentes, vous pouvez aider à élargir votre pensée et éviter les getter frappés dans une ornière. [...]

Pour y parvenir sur une carrière, la liste des langues est susceptible d'obtenir assez longtemps (particulièrement si vous ne voulez pas "progresser" en gestion). Il est clair que l'éducation d'un programmeur (ou de la forme) va vous aider à démarrer avec un noyau de langues utiles commercialement (la liste habituelle de l'emploi de l'emploi: C, C++, Ruby, Python, JavaScript, C #, Java, VB,. .). En outre, un programme d'apprentissage formel ou informel aura probablement des approches fonctionnelles couvertes (via quelque chose comme Haskell, Lisp ou une langue dérivée ML)

Mais une fois qu'un sous-ensemble raisonnable de cette liste est appris - Quoi de neuf, et pourquoi?

19
Richard

Rendez-le intéressant et passez chaque année à écrire un interprète ou un compilateur pour votre propre langage de programmation qui remplit une niche que vous n'avez jamais utilisée de langage de programmation. Chaque année, écrivez votre prochain compilateur/interprète en utilisant la langue que vous avez écrite l'année précédente.

19
alternative

Vous devriez maximiser la "pertinence marginale", c'est-à-dire que vous êtes toujours aventuré dans de nouvelles zones que vous n'êtes pas encore forte. Varier à la fois des langages de programmation et des concepts . Si vous ne connaissez aucune langue orientée objet, essayez Java et un cadre d'abstraction élevé telle que Hibernate. Ensuite, écrivez des éléments d'administration de systèmes dans une langue de script tel que Python ou Perl. Décollez ensuite des compétences de bas niveau en C ou C++, écrivez un code de serveur multithreadé haute performance. Si vous ne connaissez pas la programmation fonctionnelle, essayez HASKELL avec des problèmes de théorie graphique tels que Solving PEG Solitaire , etc. Il est très possible de le faire pour que tout ce que vous appreniez a une valeur marchande immédiate, jusqu'à ce que vous appuyiez des trucs érudities ou des objets spéciaux tels que Sécurité de l'objet-Capacité , prolog ou [~ # ~] VHDL [~ # ~] .

Bon exercice en passant! Cela vous apprendra à penser de manière latéralement et envisagez des problèmes de langage-agnostic, au lieu de s'appuyer sur trop peu de techniques spécifiques à la plate-forme. Par exemple, une fois que vous maîtrisez les similitudes et les différences dans l'envoi de la méthode virtuelle entre C++ et Python, vous aurez à peu près "l'obtenir" instantanément pour toute autre langue.

13
DomQ

Une langue qui n'affecte pas la façon dont vous pensez de la programmation, ne vaut pas la peine de savoir. - Alan Perlis

Comme certaines des autres réponses ont été touchées, si vous apprenez une nouvelle langue par an, pourquoi? est d'étendre vos capacités en tant que programmeur. Le comment? est d'apprendre des langues avec des paradigmes distincts de ceux des langues que vous connaissez déjà et de faire le point sur les paradigmes que vous savez déjà détermine quelle langue apprendre ensuite.

Quels sont ces paradigmes? Le livre avancé concepts, techniques et modèles de programmation informatique fournit une excellente vue d'ensemble avec une carte graphique .

Ainsi, si vous connaissez uniquement des langues impératives de type C, le programme d'apprentissage/LISP est extrêmement utile. Si vous connaissez déjà des langues impératives et fonctionnelles, puis apprenez que Prolog sera utile, etc.

Un livre récent qui essaie d'enseigner plusieurs langues et paradigmes est sept langues dans sept semaines . Bien sûr, vous ne parlerez pas de chaque langue après une semaine d'étude, mais il semble fournir une perspective multi-paradigme accessible et axée sur les praticiens.

Lorsque vous faites grok un autre paradigme, c'est vraiment un moment zen; Aller d'impératif à la programmation fonctionnelle m'a fait voir le monde de l'informatique dans une lumière entièrement nouvelle. Bon apprentissage!

9
limist

C - comme l'essentiel "sous-tend tout", langage de programmation de systèmes

Lisp (schéma) - l'étrange mais incroyablement puissant ur-langage que les grands pirates piscifers définissent refroidir

Smalltalk - parce que c'est ce que OO était censé être

Erlang (ou autre langue d'acteur) pour comprendre les acteurs

Haskell - Pour comprendre les monades

JavaScript - parce que c'est partout et essentiel pour script du navigateur

Un de Python/Ruby/Perl (mais cela n'a pas d'importance, donc vous savez quel langage de script populaire, moderne et de haut niveau Avec un bon soutien de la bibliothèque se sent comme

SQL - pour que vous puissiez parler à des bases de données relationnelles

Prolog - parce que tu as encore besoin de te souffler

9
interstar
  • Allez (nouveau langage de programmation de niveau système avec un bon soutien pour la concurrence et les concepts pas si traditionnels)
  • Lua (langue de script simple, expressive, extrêmement flexible et équilibré des paradigmes, de la programmation fonctionnelle et méta, permettant à OOP)
  • D (C/C++ done right)
  • Groovy (expressivité et programmation méta dans Java World)
  • Eiffel (conception par contrat et une approche différente de l'OOP)
  • Prolog (le langage de programmation logique)
4
Maniero

1) Prolog: C'est complètement différent de toutes les langues impératives que vous utilisez jusqu'à présent, et cela changera votre façon de penser des problèmes.

2) LISP: Sans cela, vous pourriez aussi bien utiliser VI

3) Erlang: Encore une fois, c'est complètement différent, aussi, il semble assez à la mode.

4) Quelque chose de Turing Tarpit (par exemple, un brainfuck) et écrivez probablement un compilateur ou un interprète pour cela: je ne peux pas penser à une raison de le faire, mais cela ressemble à une bonne idée.

2
Paul Butcher

Outre ceux que vous avez énumérés,

Haskell, F #, Clojure, Ocaml, Lua, Allez, D, Erlang, Objectif C.

1
grokus

Alors que je suis d'accord, il est bon d'apprendre de nouvelles langues (et même impératifs à travers une longue carrière), je pense qu'un par an est trop au-delà des cinq premières années. Ce que je préférerais voir, c'est quelqu'un avec ce niveau d'expérience apprendre de nouvelles choses sur les langues qu'ils connaissent déjà. À un moment donné, vous avez besoin de profondeur ainsi que de la connaissance de la connaissance. Vous pouvez donc écrire une construction en 12 langues, grosse whoop. Je préfère voir quelqu'un qui creuse vraiment et de devenir expert dans au moins une chose. Et puis les prochaines années deviennent un expert à autre chose. Plus d'une carrière de 30 ans et plus, je veux que quelqu'un ait une connaissance de la profondeur non seulement des bases de beaucoup de choses.

1
HLGEM