web-dev-qa-db-fra.com

Est-il sage d'aller aller et venir entre deux langages de programmation?

J'ai déjà écrit beaucoup de PHP pendant près de deux ans. Maintenant, je fais du développement .NET (principalement c #). Cependant, parfois je retourne et faisons du PHP.

Ma principale question est que c'est sage pour moi de continuer à faire cela ou de poursuivre le développement en C #? Cela me préjugerait-il à long terme (pensez-vous que mon objectif principal n'est-il pas d'être un Jack o tous les métiers) ou est-ce une bonne pratique de faire?

28
Lamin Sanneh

est-ce une bonne pratique de faire?

C'est une excellente pratique. De plus, je vous recommanderais d'élargir votre liste de langues régulièrement en essayant une nouvelle.

Les langues et les technologies vont et disparaissent très rapidement, en quelques années. Par exemple, Objectif c a décollé avec une force incroyable Après avoir été presque mort pendant deux décennies et demi - une éternité par les normes de cette industrie!

Peu importe que vous envisagez de "ne pas être un jack o tous les métiers": si vous envisagez de rester dans l'industrie assez longtemps, il est très sûr de supposer que vous devriez changer votre pile de technologie au moins une fois. tout au long de votre carrière. L'utilisation de plusieurs langues vous permet de vous préparer à basculer sur un préavis raisonnablement court.

37
dasblinkenlight

Au cours de votre carrière, vous devrez avoir pour apprendre de nouvelles langues et de nouvelles technologies; L'industrie l'exige simplement. Lors de ma première affectation professionnelle, je devais livrer du code écrit dans Ada, C et Fortran, ainsi que des scripts SQL et Shell. J'ai dû passer de C++ à Java et à nouveau au cours des deux dernières années. J'ai écrit des scripts shell dans CSH, Bash et Perl.

Prendre le temps d'apprendre différentes langues, surtout s'ils sont dans différents domaines (OO, fonctionnels, logiques, etc.) vous aideront de plusieurs manières. Il gardera votre cerveau Sharp. Cela vous aidera à séparer les concepts de la mise en œuvre (par exemple, les hachages et les cartes ne sont pas que des types de données dans une langue particulière). Cela vous donnera une meilleure idée des outils appropriés pour un problème donné (par exemple, je ne construirais pas un site Web en C, ni j'écris un pilote de périphérique à Haskell). Cela peut vous permettre de trouver un emploi ("hé, il sait déjà intercal1, nous n'avons pas à le former! "). Cela vous donnera une idée de ce que les défis sont confrontés à des concepteurs de langue. Cela peut vous inciter à créer votre propre langage de programmation.

À tout le moins, cela vous empêchera d'être ennuyé.


1. blague. N'essayez pas d'apprendre Intercal.

5
John Bode

Il ne devrait pas vous faire du mal à long terme, maîtrisez-vous dans un certain nombre de langues vous fait un développeur bien équilibré. L'utilisation de "l'outil de droite pour effectuer le bon travail" est l'objectif ultime et qui est versé dans différentes langues vous aide à atteindre cela, car vous savez ce que d'autre est là et peut prendre une décision bien éclairée sur la plate-forme/le cadre/la langue à utiliser pour faire quelque chose fait.

5
Deco

Les gens se retirent cette année ont commencé leur carrière avant C a été créé. Il est prudent de dire que vous pouvez changer de langue de programmation une ou deux fois dans votre carrière. Vous ne voulez pas travailler pour les employeurs qui ne comprennent pas cela.

Lorsque vous êtes nouveau, la commutation de contexte entre deux langues est beaucoup plus difficile, vous serez donc plus productif si vous travaillez au moins 4 à 8 heures dans une langue avant de changer. Plus tard, vous pourrez passer instantanément sans perte de productivité. En d'autres termes, utiliser deux langues deviendront éventuellement une force au lieu de vous ralentir.

4
Karl Bielefeldt

Apprendre un nouveau langage de programmation vous apprendra des choses sur la programmation que vous pouvez appliquer aux langues que vous connaissez déjà. Vous devriez certainement envisager au moins de jouer avec d'autres langues, même si vous ne les utilisez pas professionnellement, plutôt que de simplement en avoir si peu.

Idéalement, une approche très différente de ceux que vous connaissez déjà.

2
Jon Hanna

Lors de la recherche de CV, nous recherchons habituellement quelqu'un qui connaît plusieurs langues. En outre, l'expérience d'une personne augmente le nombre de langues utilisées devraient également augmenter.

Dans notre environnement, nous devons souvent aborder de nouveaux problèmes intéressants et nous recherchons des personnes qui sont disposées à sauter et à résoudre ces problèmes, qu'ils ont besoin d'apprendre une nouvelle langue ou non. Le problème peut être dans le code exécuté sur un ordinateur de bureau Windows, un serveur Windows, un serveur Linux ou dans un navigateur.

Connaître plusieurs langues est un signe de quelqu'un avec une bonne attitude envers leur métier. Ils veulent toujours apprendre de nouvelles choses pour qu'ils soient. Un manque de connaissance d'un certain nombre de langues est un signe pour moi qu'une personne ne fait que le strict minimum et qui n'est pas intéressé à apprendre.

2
Sarel Botha

Cela a toujours été le cas pour que les gens de programmer utilisent plusieurs langues. Lorsque les gens utilisaient l'assemblage, ils doivent appuyer une nouvelle langue d'assemblage chaque fois qu'ils changeaient des architectures.

Lorsque des gens où se trouvent Cobol ou Fortran, ils ont généralement compris RPG et/ou JCL.

À UNIX, les gens travailleraient avec C, SED, Awk, Script Shell et à peu près tout dans l'évier de la cuisine UNIX (presque tous les outils de ligne de commande à UNIX sont sa propre dsl très spécialisée).

Dans DOS, les gens seraient programmés dans Turbo Pascal ou C en plus des scripts de lot. Plus tard, lorsque Windows est venu, c'était VB ou quelque chose comme PowerBuilder couplé avec SQL et éventuellement des scripts d'installation par lots.

De nos jours, c'est un facto que les gens "Travail" Avec plus de deux langues, une journée donnée (et de "Travail" Je veux dire faire la journée réelle -Codage de jour ou avoir une connaissance pratique). Java ou C # ou VB mélangé avec JavaScript et SQL à tout le moins. Ensuite, d'autres langues entrent en jeu pour les scripts lot/travail et similaires. Ensuite, Pour chaque langue, vous avez un cadre qui enseigne elle-même une DSL interne, une mini-langage à part entière.

Donc, il n'est pas simplement bénéfique de travailler avec plus d'une langue, mais il est nécessaire. Il n'existe aucun moyen de construire un système moderne et complexe avec une seule langue (et par "Build", je ne veux pas dire que le code de la merde compile, mais de construire quelque chose avec un design décent.)

Heck, je vais sortir d'un membre et dire que je m'attendrais à ce que les enfants au collège soient compétents dans deux langues ou plus si elles sont sérieuses à propos de ce métier.

Donc, en ce qui concerne votre question:

Ma principale question est que c'est sage pour moi de continuer à faire cela ou de poursuivre le développement en C #? Cela me préjugerait-il à long terme (pensez-vous que mon objectif principal n'est-il pas d'être un Jack o tous les métiers) ou est-ce une bonne pratique de faire?

Donc, une réponse courte, non, l'utilisation ou la commutation entre les langues ne vous donnera pas les cooties. Savoir plus d'une langue ne fera pas de vous une prise de tous les métiers, et il n'ya aucun moyen pour un développeur de devenir un expert en étant incapable d'utiliser plus d'une langue.

2
luis.espinal

Il y a un avantage et un inconvénient à cela.

Voici l'avantage ...

Comme les autres mentionnaient, être capable d'apprendre de nouvelles langues et des outils de programmation sont presque essentiels pour avoir une longue carrière dans la programmation. Les choses changent au fil des ans, des outils/des langues viennent. Bien sûr, certaines personnes se contentent de programmer dans le même Cobol principal qu'ils utilisaient dans les années 1980, mais il s'agit d'une situation relativement rare. La plupart des programmeurs finissent par changer d'outils/langues plusieurs fois au cours de leur carrière. Parfois, vous pouvez être embauché parce que vous connaissez une technologie plus ancienne ou connaissez toutes les langues qu'une entreprise travaille.

L'inconvénient est ...

Certains employeurs vous verront comme un "Jack de tous les métiers, Master de None" et rejette votre application sans vous donner une chance. Ils recherchent un expert étroit dans une zone spécifique, pas simplement un programmeur bien arrondi et bien arrondi. Parfois, vous pouvez être coupé par HR parce que vous n'avez pas "5 ans d'expérience continue dans [x]". Vous pourrez peut-être éviter cela en adaptant votre CV pour adapter le travail, mais cela peut ne pas vous aider dans une interview technique.

Pour moi, l'avantage est bien meilleur, mais vous devez savoir qu'une minorité d'organisations le considère comme un négatif.

2
jfrankcarr

Quand tu faisais PHP Development avez-vous écrit JavaScript ou SQL? Dans votre développement C #, vous pouvez toujours utiliser ces deux. Ce n'est pas aussi coupé et sèche comme en utilisant un langage de programmation.

Si vous êtes heureux de le faire, ne vous inquiétez pas pour cela. Si vous ne voulez pas faire les deux (ou non plus), vous avez un problème.

2
Sign

Plus vous devez comparer en vous référencez à votre langue (s) principale (s), mieux vous comprendrez les compromis de la conception qui sont allés à le rendre particulièrement fort ou faible à certaines choses et à profiter/compenser ces choses. Maîtrise au moins un mais ne vous inquiétez pas d'être une prise de nombreux autres. Cela ne semble que bien.

Il est préférable de demander comment ne reprend qu'une seule langue énumérée à partir de "senior". La réponse à cette question est la suivante: "Pas très intéressé par ce qu'ils font dans la vie."

1
Erik Reppen

Deux langues peuvent vous aider ou non - cela dépend. Cela ne vous fera pas de mal, c'est sûr. De nombreux Devs ont tendance à penser qu'à utiliser quelque chose d'autre en dehors de la "langue principale", c'est de pure perte de temps, mais je suis fortement en désaccord. Apprendre une autre langue (et l'utiliser) est un avantage pur: cela vous donne une perspective différente sur la façon de résoudre des problèmes. Il peut arriver que vous commenciez à utiliser l'une des langues pour des tâches particulières à tout moment (comme cela m'est arrivé après avoir eu la chance d'apprendre et d'utiliser Python).

0
MaciekTalaska

Dans cette situation, vous ne vous demandez pas de changer de Java à C # et de retour tout le temps, vous allez avec C # et PHP ce qui est vraiment 't un gros problème.

Supposons que vous souhaitiez faire des trucs Web basés sur le Web où vous utilisez une pile de wamp (Windows/Apache/MySQL/PHP) et C #. Vous utilisez le C # pour écrire des services SOAP Basé des services, puis utilisez PHP pour les consommer.

Cela me semble totalement acceptable pour moi.

Quoi qu'il en soit, sachant que plus d'une langue est bonne. Plus vous savez mieux. PHP/C #/Java/Python/JavaScript Bibliothèques [JQuery Par exemple]. Être utile au plus grand nombre de personnes que possible.

0
ist_lion