Spezialisieren sich die meisten Programmierer auf einen einzelnen Stapel, lassen andere Dinge übrig, oder beherrschen sie mehrere Sprachen gleichzeitig? Wenn es mehr als eins ist, wie viele sind Standard?
Mit Experte meine ich mehr als nur die Syntax einer Sprache zu kennen - ein Experte kennt sich mit Standardbibliotheken, -werkzeugen, -umgebungen und -syntax so gut aus, dass er nicht-triviale Programme schreiben kann, ohne ständig nachschlagen oder Bücher / Tutorials lesen zu müssen.
programming-languages
self-improvement
experience
Blaubeerfelder
quelle
quelle
Antworten:
Der Hauptvorteil der Kenntnis mehrerer Sprachen besteht nicht darin, sie direkt zu schreiben. Alle anderen Dinge gleich sind, würde ich eher mit einem C # Programmierer arbeiten, die auch C, Python und Lisp (zum Beispiel) kennt als derjenige, der immer nur in C # gehackt. Es ist nicht, dass mehr Sprachen zu wissen, besser ist, ist es, dass über Probleme auf mehreren Ebenen denken zu können und aus verschiedenen Perspektiven wirklich hilfreich ist.
Es geht nicht darum, eine weitere Sprache anzukreuzen oder sie in Ihren Lebenslauf aufzunehmen. Sie müssen nur die zugrunde liegenden Konzepte gut genug verstehen, um sie zu programmieren und den vollen Nutzen daraus zu ziehen. Sie erhalten, dass nicht ein grundlegendes Verständnis der Syntax aus mit.
Die direktere Antwort lautet "es kommt darauf an".
Bei größeren Unternehmen sind Sie erwartet / erlaubt sich zu spezialisieren, aber wie ich oben gesagt, ich glaube, es ist immer noch Nutzen zu verstehen Dinge über Ihr ein Lieblingswerkzeug.
An kleineren Orten, kann man wirklich nicht mit , dass wegzukommen. Wenn nichts anderes, müssen Sie Ihre App in der Regel nicht nur warten, sondern auch erstellen. Wahrscheinlich verwenden Sie nicht die gleichen Sprachen für das Durchlaufen von Protokollen / Mungodaten wie für das eigentliche Erstellen Ihrer App. Ich denke, Sie könnten technisch davonkommen , eine einzige Sprache zu beherrschen, aber der Vorteil einer leistungsfähigen, stark typisierten (oder zumindest durchsetzungsfähigen), wahrscheinlich kompilierten Sprache ist das A und O, und einer Skriptsprache für die Wartung / Setup / Scripting-Aufgaben scheinen ziemlich groß zu sein. Ich würde nicht wollen , ohne es zu tun, sicher.
quelle
Sie haben eine sehr interessante Frage:
Ich denke nicht, dass jeder Programmierer sollte ein „Experte“ auf einer bestimmten Sprache sein. glaube, meine ist, dass als Programmierer wir Experten sollen bei der Programmierung sein, entwerfen Algorithmen, in klaren Schritten denken, aber eine Programmiersprache ist etwas, dass Sie nur lernen.
Ein „guter“ Programmierer, durch gutes meine ich, dass Entwicklungsprojekte Griff ohne hinter dem klassischen zu Erschrecken „Ich habe noch nie mit dem vor gearbeitet“, sollte die Sprache in weniger als 5 Arbeitstagen lernen. Sie lernen Best Practices, Tools und Bibliotheken, vor allem aus zwei Möglichkeiten, 1: Lesen und 2: arbeiten. Entweder Sie prallen mit dem Kopf gegen den Code oder lesen ein paar Bücher.
In ein paar Jahren nach der Premisse von „Gute Programmierer schreiben Sie einfach Code“ kein C # -Code oder C ++ Code oder Java-Code, werden Sie feststellen, dass Sie nach lernen, Programme zu entwickeln, die Sprache und die techonologies sind nicht so wichtig. Sicher, Sie wissen, wie man sich in C # besser bewegt als in PHP, aber wenn Sie es gut gelernt haben, finden Sie sich durch Python zurecht, wenn Sie müssen.
Hoffe meine Ideen gefallen euch!
quelle
Eins, aber das heißt nicht, dass Sie die anderen vernachlässigen können. Sie müssen genug wissen, um zu rechtfertigen, warum Sie sie nicht verwenden, oder Ihre Einschränkungen kennen, damit Sie gegebenenfalls um Hilfe bitten können.
quelle
Ich denke, es hängt wahrscheinlich von Ihrer Persönlichkeit ab. Es gibt Leute, die sich gerne in die Ecken und Kanten eines Themas vertiefen, und andere, die sich gerne einen umfassenden Überblick verschaffen. Sie müssen wahrscheinlich herausfinden, welche Art von Persönlichkeit Sie sind. Ich stelle nicht eins übereinander, jedes hat seinen Nutzen.
Als Ersterer wirst du der Experte, der Guru, der Spezialist sein. Als letztere werden Sie allgemeiner und möglicherweise in einer Vielzahl von Situationen eingesetzt, gehen aber möglicherweise nicht so tief in ein Thema ein.
quelle
Eins. Aber du solltest verdammt gut darin sein.
quelle
Eins
Der vor dir.
quelle
Wie Joel im SO-Podcast sagte, ist es besser, viele verschiedene Sprachen zu kennen und zu wissen, wie und wann die richtige Sprache für die Aufgabe verwendet werden muss. Es gibt Dinge, die Sie in einer Sprache viel schneller erledigen können als in einer anderen. Ich denke, es wäre gut, zum Beispiel eine imperative und eine funktionale Sprache zu kennen. Oft trainiert das Erlernen einer härteren oder esoterischeren Sprache Ihr Gehirn, um insgesamt ein besserer Programmierer zu sein.
quelle
Keine, da es wahrscheinlich einige Programmierer gibt, die in keiner Sprache Experten sind, aber die vielfältige Umgebung, die sie haben, genießen und je nach den Umständen verschiedene Sprachen verwenden, da einige einige serverseitige Technologien wie PHP und ASP.Net in C # kennen. .Net oder VB.Net oder Java, ein paar clientseitige Skriptsprachen wie JavaScript oder Flash, und dies, ohne auf die Hardware zu stoßen, die hier zum Erstellen des Webmaterials verwendet wird.
Gleichzeitig kann es einige Programmierer geben, die Experten in einem Dutzend oder mehr Sprachen sind, da sie dies die meiste Zeit ziemlich genau lernen, um in jeder Sprache so viel auf dem Laufenden zu halten.
quelle
Eins, aber es muss möglich sein, nicht-triviale Programme aus der realen Welt zu lesen, die von Zeit zu Zeit in einigen anderen Sprachen geschrieben wurden. In gewisser Weise ist die Sprache, in der der Programmierer Experte ist, wie seine Muttersprache, sie denken darin, aber das Lernen und Sprechen anderer Sprachen ist sehr gut, da sie zeigt, dass der Programmierer andere Denkweisen schätzen kann. Wenn sie als ihre Muttersprache in mehr als einer Sprache so fließend denken, dass ist genial.
quelle
Dies ist eine gute Frage, aber ich glaube nicht , es ist ein Standard. Normalerweise sind die Leute, wie ich gesehen habe, Experten in einer Hochsprache (C ++, Java usw.) in einer Umgebung (Windows / Linux, Mac, Solaris). Sie kennen ungefähr eine andere Hochsprache, verstehen sie aber nicht vollständig. (zB C ++, Java Leute kennen sich grob). Mit ungefähr meine ich, dass sie die Leistung einer Aufgabe in der Sprache, in der sie Experte sind, und in der anderen Sprache vergleichen können. Und dann sind sie in einigen Skriptsprachen moderat. (zB Linux-Leute kennen sich mit Bash aus, Windows-Leute kennen sich mit VBA aus, Web-Leute kennen sich mit PHP aus).
Für mich ist das grundlegende Wissen über Algorithmen wichtiger als die Sprache. Wenn Ihre Grundlagen gut sind, gibt es weniger Chancen zu Chaos in jeder Sprache auf.
Aber ja, manchmal kann es nützlich sein zu wissen, welche Sprache für welche Aufgabe besser sein könnte. zB ist der folgende Code in Pascal viel schneller als in C.
strcat (A, "Hallo"); strcat (A, "WOrld"); strcat (A, "I say hi!");
Dies liegt daran, dass Pascal die Länge des Strings an der ersten Stelle speichert und es daher einfach ist, zur letzten Stelle zu springen. In C ist die Zeichenkettenbeendigung '\ 0' und daher müssen Sie für die strcat-Operation die gesamte Zeichenkette durchlaufen.
quelle
Dies hängt von der Umgebung ab, in der Sie programmieren. Bei einem früheren Job war der Großteil meiner Arbeit in Perl. Während meiner Zeit dort wurde ich ziemlich kompetent darin. Jetzt arbeite ich an einem Ort mit Legacy-Programmen in drei Sprachen, deren Syntax ich kaum kenne. Ich werde sie voraussichtlich zusätzlich zu meiner Arbeit an neuen Projekten beibehalten. Ich beherrsche jetzt weniger eine Sprache, aber ich glaube, ich habe ein besseres Gefühl für das Programmieren . Ich habe gelernt, abstrakter zu denken, zuerst das Gesamtbild zu sehen und dann die Syntax und die Bibliotheken nachzuschlagen, um die Details auszufüllen.
quelle