Faut-il apprendre de nouvelles langues ou seulement se concentrer sur les langues que vous connaissez déjà et en approfondir les connaissances? [fermé]

22

Quelle voie est la plus bénéfique et la plus productive?

Chankey Pathak
la source
1
Cela ne dépend-il pas du type de travail et de projets? Si vous travaillez pour une grande entreprise, vous ne changez probablement pas trop souvent de technologie, si vous êtes indépendant, vous avez le choix.
Chris
@Chris: Suggestion, "Languages ​​and Frameworks", la plupart des développeurs ne travaillent plus uniquement avec un compilateur en ligne de commande et un éditeur de texte, mais des bibliothèques, IDE, BD, Thrid-Party Tools, ... ;-)
umlcat
1
A en juger par le décompte des voix, cette question est constructive de l'avis de beaucoup. Je pense que Mark Trapp est en fait un programme informatique écrit pour clore les questions.
T. Webster

Réponses:

18

Je pense que vous avez besoin des deux. Vous devez vous concentrer sur vos compétences de base et améliorer votre compréhension de celles-ci, mais en même temps, il est avantageux de regarder à l'extérieur et de voir ce qu'il y a d'autre. L'exposition à d'autres approches et à d'autres langages est très importante pour faire de chacun un meilleur développeur dans son ensemble. Il existe de nombreuses façons de dépouiller un chat, pour ainsi dire, et en connaître autant que possible vous rendra un psychopathe plus apte à choisir le bon outil pour une tâche particulière.

Alors, passez la majeure partie de votre temps à améliorer votre compétence choisie et passez une partie de votre temps à apprendre quelque chose de nouveau.

Adam Lear
la source
4
+1 Pour savoir comment bien utiliser votre "marteau", mais aussi pour savoir que des choses comme les "tournevis", les "scies" et les "collants" existent.
Ryan Hayes
1
Et la plupart du temps, l'apprentissage d'une nouvelle langue peut vous exposer à un modèle de conception ou à quelque chose d'utile auquel vous n'aviez jamais pensé utiliser vos propres langues.
AttackingHobo
8

Quelqu'un a dit: "Un langage qui ne change pas votre façon de penser la programmation ne vaut pas la peine d'être appris".

Donc, si vous connaissez Java, il y a peu de gain à apprendre C # (ou vice versa). Si ce n'est pas pour des raisons pragmatiques (c'est-à-dire que vous en avez besoin pour résoudre un problème), je vous suggère de vous en tenir à une langue par paradigme, et votre emploi du temps est encore assez rempli;).

La spécialisation, par contre, est dans mon expérience principalement réalisée «sur le terrain», c'est-à-dire lorsque je travaille sur un projet, donc cela vient naturellement.

keppla
la source
1
C # offre de nouvelles fonctionnalités intéressantes aux développeurs Java. Les expressions Linq et lambda pourraient leur ouvrir les yeux sur un nouveau monde.
Carra
En fait, je dirais que la mise sur le marché d'un programme C # a été plus facile (pour moi du moins) que la mise sur le marché d'un programme Java. Donc, dans ce sens, mes yeux étaient ouverts en ce que je pouvais avoir les commodités de Java tout en évitant certains de ses défauts. Indépendamment des guerres de flammes linguistiques, je dirais que c'est un bon point.
riwalk
+1 J'ai commencé en .NET et j'ai vraiment beaucoup appris de mes expériences avec Objective C et JavaScript.
Trevor
@Carra: je n'étais pas au courant de cela (ma dernière expérience approfondie avec les deux était, lorsque Java 1.5 était à jour). La différence, selon votre expérience, est-elle devenue suffisamment grande pour les rendre suffisamment différents pour justifier une recommandation d'apprendre les deux (d'un point de vue «académique»)?
keppla
Vous êtes probablement encore mieux d'apprendre un et un langage fonctionnel. Donc, dans l'ensemble, je suis d'accord avec vous.
Carra
3

Il y a beaucoup de très bons arguments des deux côtés. Il y a plusieurs années, on m'a posé cette question exacte ... concentrez-vous sur ma langue principale et essayez de devenir un "expert" OU choisissez une nouvelle langue et élargissez ma commercialisation. J'ai choisi de me concentrer sur une langue.

Il n'y aura vraiment pas de mauvaise réponse. Les deux ont des mérites, cela va vraiment se résumer à celui qui vous convient le mieux et où vous voulez que votre carrière aille.

Walter
la source
2

L'apprentissage de nouveaux langages est principalement un moyen d'obtenir de nouveaux concepts et d'augmenter votre efficacité avec la programmation. Apprendre la programmation en soi est très différent de l'apprentissage d'une nouvelle langue pour programmer.

Vous devriez vous concentrer sur l'amélioration de vos programmes (et il y a beaucoup de paramètres pour mesurer cela, beaucoup subjectifs; peu importe, faites votre choix sur les paramètres et affinez-les au fil du temps, utilisez-les pour vos études).

Cela dit, l'apprentissage de langues `` plus récentes '' (disons Python) sur votre liste plus ancienne (comme ` C` disons ' ' et beaucoup d'autres) vous aidera à réfléchir plus efficacement et à vous concentrer sur les concepts fondamentaux qui devraient être améliorés. Prenant l'exemple plus loin, il peut ne pas apparaître immédiatement mais vous pourriez trouver votre Cprogrammation s'améliorant parce que vous avez pensé en Python. Vous pourriez même commencer à écrire Python au lieu de psudo-code pour C. Maintenant, c'est un psudo-code beaucoup plus lisible et vérifiable.

Ce qui nous amène à résumer la question principale:
oui, vous devriez vous concentrer sur les langues que vous connaissez déjà et augmenter vos connaissances en elles - tant qu'elles sont encore utilisées pour vous. Et , vous devriez également essayer des langages plus récents pour donner à votre cerveau de nouveaux outils pour penser (peut-être même plus rapidement) des solutions à vos besoins de programmation.

nik
la source
1

Dominez un cadre de programmation (et le langage associé) et laissez du temps libre à un autre "domaine" de préférence différent. Exemple: client-serveur C ++, Ruby on Web

umlcat
la source
1

Apprendre une nouvelle langue

Cela dépend du but pour lequel vous apprenez la langue. Si vous apprenez la langue car elle utilise un paradigme différent ou est adaptée à un domaine de problème particulier. Cependant, s'il s'agit d'un langage très similaire à celui que vous connaissez déjà et que tout ce que vous prévoyez de faire est de réécrire tout votre code existant dans ce nouveau langage, il n'y a probablement pas beaucoup de valeur (par exemple, réécrire une webapp python dans rubis).

Connaissance approfondie de la langue actuelle

Si vous vous sentez déjà très à l'aise dans la programmation d'un langage, connaissez tous ses idiomes et pouvez y écrire des programmes sans avoir à regarder dans la documentation pour chaque appel de bibliothèque, il n'y a probablement pas grand-chose de plus à apprendre à ce sujet. Si, d'autre part, votre connaissance de la langue n'est pas si profonde, il peut être utile d'en apprendre davantage. Quelques bonnes façons de juger si vous êtes dans l'ancien ou le dernier camp pour la langue X sont

  1. Combien de programmes avez-vous écrits en langue X?
  2. Si vous allez sur Stack Overflow et regardez les questions marquées X, à combien d'entre elles vous sentiriez-vous à l'aise de répondre?
  3. Est-ce que des gens viennent vous voir pour obtenir de l'aide en langue X?

Si vos réponses à ces questions se situent quelque part dans le sens de «beaucoup», «la plupart» et «oui, et ça devient ennuyeux», c'est une bonne indication que vous maîtrisez la langue et que vous devez passer à quelque chose Nouveau.

Zhehao Mao
la source
0

Si vous êtes déjà assez bon avec la langue que vous connaissez, il n'y a rien de bon à apprendre des trucs très détaillés et spécifiques pour un peu cool ... ce sera totalement une perte de temps. Cependant, lorsque vous n'êtes pas à l'aise avec une langue, la suggestion est de maîtriser cette langue en premier.

En plus des langues, il y a des cadres, des modèles ... pour apprendre un cadre, vous devez connaître une langue, donc pour des langues très similaires, les apprendre n'aide que d'amuser pas si drôle.

Mon opinion personnelle est que vous devriez toujours développer vos capacités pour créer des logiciels plus rapides, plus sûrs et plus robustes, pour plus de plates-formes, et raccourcir le temps, pour cela, vous devrez peut-être apprendre une nouvelle langue, un nouveau cadre, un nouvel IDE (c'est tout aussi important qu'une langue), et seulement lorsque vous êtes à cet effet, votre investissement en vaut la peine.

N'apprends pas au moins une nouvelle langue pour augmenter le nombre de langues que tu connais.

tactoth
la source