Man hört oft, dass Programmierer viele verschiedene Sprachen lernen sollten, um sich zu verbessern. Ich gehe immer noch zur Schule und habe keine große Programmiererfahrung (etwas mehr als ein Jahr). Aber aus der guten Absicht, die Programmierkenntnisse zu verbessern, wurde eine Art OCD: Ich habe das Gefühl, dass ich mich nicht beruhigen werde, bis ich alle relativ bekannten Programmiersprachen gelernt habe.
Und hier ist die Frage selbst: Wird es Ihnen wirklich helfen, Programmiersprachen polyglot zu sein (und ich meine nicht üblich "Programmierer sollten mindestens alle Paradigmen kennen", ich meine wirklich alle Sprachen, von denen Sie normalerweise hören)? Hat jemand ähnliche Erfahrungen? Hilft es bei Job / Fähigkeiten / Karriere? Wie oft können Sie diese Fähigkeiten anwenden?
quelle
Antworten:
Das hilft
Das hilft nicht. Wenn Sie alle Paradigmen kennen, können Sie pro Woche eine Sprache lernen.
Es ist einfach optimaler, eine Woche lang diese Sprache zu lernen, wenn Sie diese Sprache brauchen .
Randnotiz:
Das Erlernen gängiger / beliebter Sprachen ist nicht so hilfreich wie das Erlernen "aller Paradigmen". Ersteres deckt letzteres nicht ab. Zum Beispiel ist Selbstlernen unglaublich nützlich, um prototypische OO zu verstehen. Es ist keine verbreitete oder beliebte Sprache, aber es ist weitaus nützlicher, als Python zu lernen, wenn Sie Ruby bereits kennen.
Sprachgestaltung:
Die meisten Sprachen zu beherrschen ist nützlich, wenn Sie eine neue Sprache schreiben / entwerfen. Es gibt also einen soliden Anwendungsfall, aber es ist eine hübsche Nische.
Was ich Ihnen stattdessen empfehle:
Code lesen 2 Mal mindestens 3 Mal ausfüllen
Sprachen kommen und gehen, je nachdem, was "beliebt" ist. Technologie wird nach Monaten oder Jahren veraltet, je nachdem, wie die Technologiekurve aussieht. (Das Web veraltet die Technologie alle 6 Monate).
Programmiertechnik und Informatiktheorie bleiben immer gleich.
quelle
Es geht nicht darum, wie man in einer Vielzahl von Sprachen codiert, es geht, wie Sie sagen, um die Paradigmen. Je mehr Optionen Sie kennen, desto besser. Es hilft sicherlich, mehrere Sprachen zu beherrschen, aber wenn Sie weiterhin dieselben Arten von Sprachen lernen, stoßen Sie schnell auf eine Sackgasse.
Der Schlüssel ist, zu wissen, welche Sprache / welches System für die Implementierung eines Teils Ihres Projekts am besten geeignet ist. Selbst wenn Sie sich für eine Hauptsprache entschieden haben (wie die meisten Projekte), müssen Sie dennoch alle Arten von Tools, Skripten, Automatisierung und Build-Unterstützung schreiben. In der Regel sind eine Vielzahl anderer Sprachen oder Tools besser darin als Ihre Hauptsprache.
Um es zu verdeutlichen, finde ich es albern, alle Sprachen zu lernen, von denen man tatsächlich hört: Es gibt Hunderte davon und oft sind es nur geringfügige Abweichungen von anderen Sprachen.
quelle
IMHO tut es nicht. Erstens, weil man eine Sprache nicht in weniger als einem Jahr lernen kann. Es dauert 2 Tage, um Code darin zu schreiben, aber es erfordert viel Erfahrung, fließenden und gut geformten Code für die gegebene Sprache zu schreiben. Warum GC so funktioniert, wo man Speicher zuweist, welche Konstruktionen schneller sind, wie man Zeichenfolgen richtig verkettet, was gefährliche Ecken der Sprache sind usw.
Ich schreibe schrecklichen Java / .NET-Code als C ++ - Entwickler, wie viele Java-Entwickler schrecklichen C ++ - Code schreiben.
Das Beste am Lernen anderer Sprachen ist, dass Sie neue Paradigmen lernen und vielleicht ein besseres Werkzeug für ein konkretes Problem haben. Angenommen, Sie benötigen eine sehr schnelle, nicht öffentliche GUI-App. .NET ist dort unersetzlich.
Das Erlernen einer Sprache, damit Sie in .NET keine Strukturen verwenden oder nicht jedes Objekt in C ++ verlieren, ist jedoch sehr zeitaufwändig. Ich denke, es ist besser, es für das Erlernen von Designprinzipien, Plattformen und der Sprache Ihrer Wahl auszugeben.
Das ist aber nur meine Meinung.
quelle
Es ist nicht praktisch wissen sie, aber es kann sehr nützlich sein , zu wissen , über sie. Was ich damit meine, ist, wenn Sie ein neues Problem bekommen, können Sie sagen: "Ich erinnere mich vage, dass [andere Sprache] einen überlegenen Weg hatte, Probleme wie dieses zu lösen. Ich sollte das nachschlagen."
quelle
Sie würden Ihrer Karriere mehr helfen, indem Sie Domain-Kenntnisse aufbauen und dann viele Programmiersprachen lernen. Ganz zu schweigen davon, dass Sie zusätzliche Tools erlernen müssen, um beispielsweise einen Profiler in Ihrer Sprache zu verwenden. Dies gilt auch für den Debugger, das beste GUI-Framework und wie Sie schnell damit programmieren können und sprachspezifische Redewendungen.
Es ist auch klüger zu lernen, mehr Dinge zu tun als viele Möglichkeiten, dasselbe zu tun.
quelle
Ich habe auf mehreren Systemen gearbeitet, auf denen Komponenten in mehreren Sprachen geschrieben waren (der schlimmste Verstoß verlangte, dass ich Code lieferte, der in Ada 83, C, Fortran 77, SQL und DCL geschrieben war, während ich bei meinem letzten Auftrag C ++ und Java-Code lieferte ). Also, ja, es gibt Fälle in der Praxis, in denen Sie mehrere Sprachen gut genug kennen müssen, um produktiv zu sein (produktiv! = Kompetent; Sie werden kein tiefer Experte in C ++ und Java sein und ... es sei denn, Sie bist ein Freak).
Darüber hinaus sollten Sie sich Zeit nehmen, um mehrere Sprachen zu lernen, um Konzepte von der Implementierung zu trennen . Für mich machte OOP erst Sinn, als ich mit mehreren OOPLs gearbeitet hatte. Auch an einem gewissen Punkt in Ihrer Karriere, Sie werden müssen schnell Gänge schalten und arbeitet an etwas völlig Neues und Unbekanntes starten; Wenn Sie sich jetzt etwas Zeit nehmen, um über das hinauszugehen, was Sie wissen müssen , wird dies den Übergang erleichtern, wenn dies tatsächlich geschieht.
quelle
Ich denke, es wäre besser, wenn Sie ein paar verschiedene Sprachen lernen und dann mindestens eine, bevor Sie sich auf die Notwendigkeit einlassen, jede mögliche Sprache zu lernen. Sobald Sie ein Minimum an Breite haben, wird Tiefe für Ihren Fortschritt als Entwickler wirklich wichtig. Ich hätte jemanden mit einer Tiefe in einer oder zwei Sprachen und ein paar anderen als jemanden mit einem Hauch von allem gesehen. Tiefe zu erlernen ist wie ein anderes Paradigma zu lernen. Es wird Ihre Einstellung zur Programmierung verändern und Türen zu wirklich komplexen, aufregenden Projekten öffnen.
quelle
Es ist, als würde man lernen, viele Sprachen zu sprechen. Es ist nahezu unmöglich, sie alle so weit zu lernen, dass sie nützlich sind. Halten Sie sich an diejenigen, die Sie wahrscheinlich verwenden, und Sie werden besser dran sein. Sie könnten C ++, C # und Java ziemlich gut erlernen, aber es ist nur dumm, gleichzeitig zu versuchen, Perl, Python, VB (nicht VB.NET), Ruby und JavaScript auf ein professionelles Niveau zu bringen. Der Tag hat nicht genügend Stunden, um Ihre Fähigkeiten auf einmal zu verbessern.
quelle