La plupart des programmeurs se spécialisent-ils sur une seule pile, laissant d'autres choses en place, ou sont-ils experts dans plusieurs langues en même temps? Si c'est plus d'un, combien est standard?
Par expert, je veux dire plus que simplement connaître la syntaxe d'un langage - un expert en sait assez sur les bibliothèques, les outils, les environnements et la syntaxe standard pour pouvoir écrire des programmes non triviaux sans avoir à chercher constamment des choses ou à lire des livres / tutoriels.
programming-languages
self-improvement
experience
blueberryfields
la source
la source
Réponses:
Le principal avantage de connaître plusieurs langues n'est pas de les écrire directement. Toutes choses étant égales par ailleurs, je préfère travailler avec un programmeur C # qui connaît également C, Python et Lisp (par exemple) plutôt que celui qui n'a jamais piraté en C #. Ce n'est pas que connaître plus de langues, c'est mieux, c'est qu'être capable de penser à des problèmes à plusieurs niveaux et de multiples perspectives est vraiment utile.
Il ne s'agit pas de cocher une autre langue ou de la mettre sur votre CV; il vous suffit de bien comprendre ses concepts sous-jacents pour pouvoir les programmer afin d'en tirer pleinement parti. Vous n'obtiendrez pas cela d'avoir une compréhension de base de la syntaxe.
La réponse la plus directe est "cela dépend".
Dans les grandes entreprises, vous êtes censé / autorisé à se spécialiser, mais comme je l'ai dit ci-dessus, je pense qu'il est toujours avantageux de comprendre les choses au-delà de votre seul outil préféré.
Dans les petits endroits, vous ne pouvez vraiment pas vous en tirer. Si rien d'autre, vous devez généralement maintenir votre application ainsi que la créer, et vous ne devriez probablement pas utiliser les mêmes langues pour parcourir les journaux / munging de données que pour créer réellement votre application. Je suppose que vous pourriez techniquement vous en tirer avec la connaissance d'une seule langue, mais l'avantage d'avoir un langage performant, fortement typé (ou au moins capable d'assertion), probablement compilé, fait le gros du travail et un langage de script pour la maintenance / les tâches de configuration / scripting semblent assez importantes. Je ne voudrais pas m'en passer, certainement.
la source
Vous avez une question très intéressante:
Je ne pense pas qu'un programmeur devrait être un "expert" sur une langue spécifique. Je crois qu'en tant que programmeurs, nous sommes censés être des experts de la programmation, de la conception d'algorithmes, de la réflexion en étapes claires, mais un langage de programmation est quelque chose que vous venez d'apprendre.
Un "bon" programmeur, je veux dire par là qui gère les projets de développement sans effrayer derrière le classique "Je n'ai jamais travaillé avec ça avant", devrait apprendre une langue en moins de 5 jours ouvrables. Vous apprenez les meilleures pratiques, les outils et les bibliothèques principalement de 2 façons, 1: lecture et 2: travail. Soit vous rebondissez la tête contre le code, soit vous lisez un tas de livres.
Dans quelques années suivant la prémisse de "bons programmeurs écrivent juste du code", pas de code C # ou de code C ++ ou de code Java, vous vous rendrez compte qu'après avoir appris à développer des programmes, le langage et les technologies ne sont pas si importants. Bien sûr, vous saurez comment vous déplacer en C # mieux que PHP, mais si vous avez bien appris, vous découvrirez que vous traverserez Python si vous le devez.
J'espère que mes idées vous ressemblent!
la source
Un, mais cela ne signifie pas que vous pouvez négliger les autres. Vous devez en savoir suffisamment pour justifier pourquoi vous ne les utilisez pas ou connaître vos limites, vous pouvez donc demander de l'aide le cas échéant.
la source
Je pense que cela dépend probablement de votre personnalité, il y a des gens qui se délectent de creuser dans les coins et recoins d'un sujet, et il y en a d'autres qui aiment avoir une vue d'ensemble des choses. Vous devrez probablement déterminer quel type de personnalité vous êtes. Je ne mets pas l'un au-dessus de l'autre ont chacun leur utilité.
En tant que premier, vous serez l'expert, le gourou, le spécialiste. En tant que ce dernier, vous serez d'une utilisation plus générale et utilisable dans diverses situations, mais vous n'allez peut-être pas aussi profondément ou longtemps dans un sujet.
la source
Un. Mais il vaut mieux être sacrément bon dans ce domaine.
la source
Une
Celui devant toi.
la source
Comme l'a dit Joel dans le podcast SO, il vaut mieux connaître de nombreuses langues et savoir comment / quand utiliser la bonne langue pour la tâche. Il y a des choses que vous pouvez faire beaucoup plus rapidement dans une langue que dans une autre. Je pense qu'il serait bon de connaître un langage impératif et un langage fonctionnel par exemple. Souvent, l'apprentissage d'un langage plus difficile ou plus ésotérique forme votre cerveau à être un meilleur programmeur dans l'ensemble.
la source
Aucun car il y a probablement des programmeurs qui ne seront experts dans aucun langage, mais ils apprécient l'environnement diversifié qu'ils ont et utiliseront divers langages selon les circonstances, car certains peuvent connaître quelques technologies côté serveur comme PHP, ASP.Net en C # .Net ou VB.Net, ou Java, quelques langages de script côté client comme JavaScript ou Flash, et cela sans entrer dans le matériel utilisé pour mettre en place les trucs Web ici.
En même temps, il peut y avoir des programmeurs qui sont des experts dans une douzaine de langues ou plus car c'est ce qu'ils étudient assez fidèlement la plupart du temps pour garder le maximum sur chaque langue.
la source
Premièrement, mais il doit être capable de lire de temps en temps des programmes du monde réel non triviaux qui sont écrits dans quelques autres langues. D'une certaine manière, celui dans lequel le programmeur est un expert est comme leur langue maternelle, ils y pensent, mais apprendre et parler d'autres langues est très bon en ce qu'il montre que le programmeur peut apprécier d'autres façons de penser. S'ils peuvent penser dans plus d'une langue aussi couramment que leur langue maternelle, c'est génial.
la source
C'est une bonne question, mais je ne pense pas qu'il existe une norme. Normalement, d'après ce que j'ai vu, les gens sont parfaitement experts dans un langage de haut niveau (C ++, Java, etc.) dans un environnement (windows / linux, mac, solaris). Ils connaissent à peu près un autre langage de haut niveau mais ne le comprennent pas pleinement. (par exemple C ++, les gens Java se connaissent à peu près). En gros, je veux dire qu'ils peuvent comparer les performances d'une tâche dans la langue dans laquelle ils sont experts et dans l'autre langue. Et puis ils sont modérés dans certains langages de script. (par exemple, les gens Linux connaissent bash, les gens Windows connaissent VBA, les gens web connaissent PHP).
Pour moi, ce qui compte, c'est la connaissance de base de l'algorithme plutôt que le langage. Si vos bases sont bonnes, il y a moins de chances de gâcher dans n'importe quelle langue.
Mais oui, il peut parfois être utile de savoir quelle langue pourrait être meilleure pour quelle tâche. Par exemple, le code suivant est beaucoup plus rapide en pascal qu'en C.
strcat (A, "Bonjour"); strcat (A, "WOrld"); strcat (A, "I say hi!");
En effet, Pascal enregistre la longueur de la chaîne au premier emplacement et il est donc facile de passer au dernier emplacement. En C, la terminaison de la chaîne est '\ 0' et vous devrez donc parcourir toute la chaîne pour l'opération strcat.
la source
Cela dépend de l'environnement dans lequel vous programmez. Lors d'un emploi précédent, la plupart de mon travail était en Perl; pendant mon séjour là-bas, je suis devenu très compétent. Maintenant, je travaille dans un endroit qui a des programmes hérités en trois langues dont je connais à peine la syntaxe; Je suis censé les entretenir en plus de mon travail sur de nouveaux projets. Je suis maintenant moins maître de n'importe quelle langue, mais je pense que j'ai une meilleure idée de la programmation . J'ai appris à penser de manière plus abstraite, à voir d'abord la situation dans son ensemble, puis à rechercher la syntaxe et les bibliothèques pour remplir les détails.
la source