Comment avez-vous eu la chance d'apprendre plusieurs langues? [fermé]

9

J'ai lu Un programmeur doit se concentrer sur au moins combien de langues? , et j'ai découvert que je ne connais pas les langues dans le numéro 2, 3 de la première réponse. Je veux apprendre plus de langues pour augmenter mes connaissances et mes compétences en programmation. Cependant, généralement dans les entreprises, ils utilisent un cadre et des langages fixes et changent rarement. Je ne suis donc pas sûr de pouvoir apprendre ces langues et je pense que ce serait la même chose pour les autres programmeurs.

Cependant, j'ai vu de nombreux développeurs qui connaissent plusieurs langues ici. Comment avez-vous la chance d'apprendre de nombreuses langues?

Mise à jour

Je pense que beaucoup de gens se sentent mal à l'aise car il semble que je ne veuille pas étudier du tout pendant mon temps libre. En fait, ce n'est pas vrai. :) Je suis un programmeur passionné et c'est pourquoi j'ai posté ce genre de question ici. J'étudie dans mon temps libre mais je pensais juste que ce ne serait pas suffisant pour être habile en langues. Quoi qu'il en soit, merci pour toutes les réponses!

Sanghyun Lee
la source
7
Apprenez simplement de nouvelles choses pendant votre temps libre.
Jonas
1
Mec, cette réponse a été publiée par un programmeur de 39 ans. Je pense que c'est une bonne liste, mais ne vous tuez pas dessus.
Job
7
Vous n'avez pas de "chances". Vous faites des chances. Si vous voulez apprendre plus de langues, sortez et faites-le. N'attendez pas qu'une responsabilité de travail mythique vous revienne.
Joel Etherton

Réponses:

10

Je trouve que la meilleure façon d'apprendre une langue est de l' utiliser immédiatement pour faire quelque chose d'utile ou dont vous avez besoin .

Par exemple, je me suis retrouvé dans le besoin d'automatiser de nombreuses opérations que je devais faire manuellement à chaque fois. Tâches répétitives, création de fichiers et de dossiers, etc ... j'ai donc simplement choisi un langage de script pour faire un outil utile. Je suis allé pour Perl, et j'ai commencé à apprendre la syntaxe et les fonctions dont j'avais besoin pour faire mon script, grâce à des tutoriels et des livres en ligne.

En quelques jours, j'ai eu mon outil opérationnel, puis pendant mon temps libre, j'ai continué à apprendre de nouvelles choses sur la langue et à y ajouter plus de fonctionnalités.


Une autre excellente option qui vient à l'esprit est la suivante: si vous ne trouvez pas une langue que vous aimez, ou si vous pensez ne pas répondre complètement à vos besoins, vous pouvez toujours créer votre propre langue .

Je le fais maintenant avec Perl, j'ai choisi une syntaxe qui m'aiderait à résoudre au mieux mes problèmes spécifiques (puisque vous écrivez votre propre langue, vous voudrez peut-être choisir la bonne syntaxe pour le travail, celle qui décrit et résout le mieux) vos problèmes de domaine spécifiques).

Le résultat? Le développement est désormais beaucoup plus rapide et le code lui-même est beaucoup plus descriptif car il s'agit d'un langage spécifique au domaine. J'ai posé une question liée à ce sujet il y a quelques semaines avec de nombreux liens utiles.

Vous pouvez utiliser n'importe quel langage de script pour en créer un nouveau, même avec PHP.

Jose Faeti
la source
Je ne savais pas que je pouvais créer mon propre langage avec Perl. Pourriez-vous élaborer ou me donner quelques références?
Sanghyun Lee
J'ai demandé cela ici . Fondamentalement, vous devez créer un script qui comprendra (analysera) vos entrées et effectuera différentes tâches en fonction de ce que vous tapez. Il peut s'agir simplement d'un ensemble de fonctions ou d'une syntaxe de langage complètement nouvelle. Ensuite, vous pouvez automatiser tout cela si nécessaire. Non seulement avec Perl, vous pouvez utiliser n'importe quel langage de script pour en créer un nouveau.
Jose Faeti
8

Ce genre de questions me déconcerte toujours. J'ai utilisé 7 langues professionnellement, j'ai écrit du code dans environ 5 autres langues dans des contextes de loisirs et académiques, et je peux lire du code dans peut-être une douzaine de langues supplémentaires. Pas une seule fois je n'ai appris une langue juste pour le plaisir. Il y a toujours un objectif concret et immédiat à l'esprit. Par exemple, ce week-end, j'ai appris suffisamment de bibliothèques Android pour commencer à travailler sur une application pour ma famille. Si nous avions des iPhones, j'aurais appris Objective-C.

Mon sentiment est que la connaissance de plusieurs langues est un symptôme d'être un programmeur qualifié, ou du moins enthousiaste, et non une cause . Si vous ne pouvez pas penser à une raison impérieuse d'apprendre une nouvelle langue, je ne sais pas combien cela vous serait bénéfique.

Karl Bielefeldt
la source
3

La meilleure façon d'apprendre une nouvelle langue lorsque vous avez un problème à résoudre. Plutôt que de simplement utiliser ce que vous maîtrisez, passez du temps à regarder quels outils (langages, frameworks, bibliothèques) pourraient être utiles pour vous aider à résoudre le problème. Si vous avez le temps d'apprendre le nouvel outil, allez-y. Vous pourriez ne pas être en mesure de le faire au travail, lorsque vous avez des contraintes d'horaire et des limitations technologiques motivées par des facteurs externes, mais il n'y a aucune raison pour laquelle vous ne pouvez pas adopter cette approche pour des projets personnels.

Thomas Owens
la source
2

Il vous suffit de prendre le temps de le faire. Consultez le livre "Sept langues en sept semaines" des Prags. Il vous donnera une introduction à sept langues très intéressantes et à partir de là, vous pouvez aller à toutes sortes d'endroits.

Zachary K
la source
1

Commencez simplement à l'utiliser. Évidemment, construire un système de production à partir de zéro dans une langue à laquelle vous n'avez jamais été exposé est une mauvaise idée, mais voici quelques suggestions:

  • Apprenez à votre rythme. Choisissez un projet que vous trouvez intéressant, où vous êtes sûr de pouvoir le terminer vous-même. Il est préférable de faire une lecture d'introduction sur votre nouvelle langue pour juger si elle est appropriée - chaque langue a ses forces et ses faiblesses, et il est préférable de commencer par un problème pour lequel la langue a été conçue pour exceller.
  • Commencez à effectuer des tâches de maintenance sur un projet existant. De cette façon, vous pouvez prendre une grande partie du langage sans même lire la documentation: beaucoup peut être déduit de l'exemple de code, et pour les parties où vous avez besoin de lire la documentation, ce sera beaucoup plus clair parce que vous avez vu le code déjà. Il est également plus facile de rechercher «que fait ce code» que «comment puis-je écrire du code qui fait X».
  • Utilisez votre nouveau langage pour les petits outils et les aides dont vous avez besoin: scripts shell, code jetable pour des tâches spécifiques, calculs rapides (par exemple, les interprètes interactifs de nombreux langages dynamiques - python, lisp, haskell, etc. - font d'excellentes calculatrices). Cependant, toutes les langues ne conviennent pas.
tdammers
la source
1

Choisissez quelque chose de relativement petit que vous avez fait dans une langue et développez un remplacement sans rendez-vous dans une autre langue. Faites cela juste pour vous mettre au défi. Afin de le compléter, vous en apprendrez beaucoup sur l'autre langue.

Au cours de la semaine dernière, j'ai décidé d'apprendre et de réécrire un back-end de service Web dans NodeJS (auparavant un service JSP). Il n'a fallu qu'une journée environ pour faire fonctionner le service bare-bones, et quelques jours plus tard J'avais étendu son infrastructure, la gestion des erreurs, la journalisation et ajouté une surveillance en direct. Il est maintenant supérieur à l'original. Que la direction l'accepte ou non est sans importance, car j'ai appris quelque chose et j'en suis très heureux.

Fosco
la source
1
  • Je considère qu'une partie de mon travail est "recherche". En 1998, la recherche signifiait la correction des bogues Y2K. Le mois dernier, la recherche signifiait apprendre Subversion. Je fais de la recherche depuis 40 ans. Lorsque j'énumère les langues, je dois les énumérer par ordre alphabétique.

  • Lorsque j'apprends une langue, je lis la couverture du manuel de référence pour couvrir. Je l'utilise ensuite pendant quelques mois. J'ai ensuite relu le manuel de référence. La deuxième lecture révèle de nombreuses astuces et implications que j'ai ratées la première fois.

  • La recherche pratique couvre les langages normaux, comme C # et Pascal. La recherche avancée couvre des langages étranges, comme LISP et FORTH. Vous n'utiliserez probablement jamais LISP professionnellement, mais son apprentissage élargit considérablement votre esprit.

  • Bien sûr, dans mon environnement, je ne suis pas payé pour le temps, je suis payé pour la livraison. Si je peux accoucher en deux semaines, en utilisant six heures par jour, je peux utiliser les trois autres pour la recherche. Si cela prend douze heures par jour, eh bien, pas de recherche alors.

  • Toute recherche, bien sûr, devrait avoir une utilité potentielle pour celui qui me paie. Les petits utilitaires sont bons; la prochaine fois que vous souhaitez traiter votre code source C, essayez-le en Python. (Non, je ne connais pas Python, mais j'ai entendu dire que c'était bon pour la manipulation de chaînes.)

Andy Canfield
la source
0

Parfois, les opportunités viennent de votre emploi. Il existe généralement l'un des trois moteurs de ce type d'opportunité.

  1. C'est une toute nouvelle technologie. Par exemple, de nombreuses entreprises ont payé la formation C # pour leurs développeurs au cours des deux ou trois premières années après la sortie de .NET.

  2. C'est facile d'apprendre. Par exemple, dans une boutique Linux, vous trouverez que vous devez écrire des scripts .bash. Si vous avez utilisé des sessions de terminal, etc., et que d'autres développeurs ont de l'expérience dans leur écriture, vous devriez pouvoir acquérir cette compétence, ne serait-ce que pour automatiser certaines de vos propres tâches.

  3. C'est une compétence technique rarement utilisée, et votre entreprise ne veut pas passer par le temps et les dépenses nécessaires pour trouver un consultant pour faire le travail. Par exemple, j'ai appris à écrire XSLT parce que nous avions besoin d'un moyen simple de transformer certains fichiers XML (journaux) pour les afficher.

Autres opportunités à saisir en dehors du travail. Choisissez avec soin - quelles technologies voyez-vous utiles à l'avenir? Dans ces cas, vous devez consacrer du temps et des efforts à l'apprentissage et à l'application de la technologie. Cela devrait faire partie d'un plan de carrière global et vous devrez peut-être payer pour les cours. (J'ai eu de la chance - quand j'ai appris Java, ils l'enseignaient le soir dans un collège communautaire local).

Jay Elston
la source
0

En réponse à votre question, d'après ma propre expérience (je suis assez nouveau dans l'industrie, donc pas beaucoup), j'apprends de nouvelles langues en faisant des recherches pour voir quelle langue correspond le mieux à mes besoins. Au collège, j'avais un projet en cryptographie qui nécessitait l'utilisation de grands nombres entiers. Il devenait assez compliqué en C ++ alors je me suis tourné vers Java car il fournissait la classe BigInteger. Dans mon travail actuel, je pouvais voir que les scripts shell n'étaient pas en mesure de résoudre complètement mon problème sans devenir trop complexe, j'ai donc appris Perl. Apprendre à la volée est mon conseil comme exigence unique. Bien sûr, si vous vous ennuyez, il y a tout un monde de langues à explorer.

Abhishek Anand
la source