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!
la source
Réponses:
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.
la source
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.
la source
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.
la source
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.
la source
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:
la source
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.
la source
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.)
la source
Parfois, les opportunités viennent de votre emploi. Il existe généralement l'un des trois moteurs de ce type d'opportunité.
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.
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.
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).
la source
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.
la source