Wie haben Sie die Chance, mehrere Sprachen zu lernen? [geschlossen]

9

Ich lese Ein Programmierer sollte sich auf mindestens wie viele Sprachen konzentrieren? und ich fand heraus, dass ich in Nummer 2, 3 der ersten Antwort keine Sprachen kenne. Ich möchte mehr Sprachen lernen, um meine Kenntnisse und Programmierkenntnisse zu verbessern. In der Regel verwenden sie jedoch in Unternehmen feste Rahmenbedingungen und Sprachen und ändern sich selten. Ich bin mir also nicht sicher, ob ich diese Sprachen lernen kann, und ich denke, dass dies auch für andere Programmierer der Fall ist.

Ich habe jedoch viele Entwickler gesehen, die hier mehrere Sprachen beherrschen. Wie bekommen Sie Chancen, viele Sprachen zu lernen?

Aktualisieren

Ich denke, es gibt viele Menschen, die sich unwohl fühlen, weil ich anscheinend in meiner Freizeit überhaupt nicht lernen möchte. Eigentlich stimmt das nicht. :) Ich bin ein begeisterter Programmierer und deshalb habe ich diese Art von Frage hier gepostet. Ich lerne in meiner Freizeit, aber ich dachte nur, es würde nicht ausreichen, um Sprachen zu beherrschen. Trotzdem danke für alle Antworten!

Sanghyun Lee
quelle
7
Lerne einfach neue Dinge in deiner Freizeit.
Jonas
1
Alter, diese Antwort wurde von einem 39-jährigen Programmierer gepostet. Ich denke, dass es eine gute Liste ist, aber töte dich nicht darüber.
Job
7
Sie "bekommen" keine Chancen. Sie machen Chancen. Wenn Sie mehr Sprachen lernen möchten, gehen Sie raus und machen Sie es. Warten Sie nicht, bis eine mythische Jobverantwortung zu Ihnen kommt.
Joel Etherton

Antworten:

10

Ich finde, der beste Weg, eine Sprache zu lernen, besteht darin , sie sofort zu verwenden, um etwas Nützliches oder Nötiges zu machen .

Zum Beispiel musste ich viele Vorgänge automatisieren, die ich jedes Mal manuell ausführen musste. Wiederholte Aufgaben, Erstellung von Dateien und Ordnern usw. Ich habe einfach eine Skriptsprache ausgewählt, um ein nützliches Tool zu erstellen. Ich entschied mich für Perl und lernte dank Online-Tutorials und Büchern die Syntax und die Funktionen, die ich zum Erstellen meines Skripts benötigte.

In ein paar Tagen hatte ich mein Tool zum Laufen gebracht, dann lernte ich in meiner Freizeit immer wieder neue Dinge über die Sprache und fügte ihr weitere Funktionen hinzu.


Eine weitere großartige Option ist: Wenn Sie keine Sprache finden, die Ihnen gefällt, oder wenn Sie der Meinung sind, dass sie Ihren Anforderungen nicht vollständig entspricht, können Sie trotzdem Ihre eigene Sprache erstellen .

Ich mache es jetzt mit Perl. Ich habe eine Syntax gewählt, die mir hilft, meine spezifischen Probleme am besten zu lösen (da Sie Ihre eigene Sprache schreiben, möchten Sie möglicherweise die richtige Syntax für den Job auswählen, die am besten beschreibt und löst Ihre spezifischen Domain-Probleme).

Das Ergebnis? Die Entwicklung ist jetzt viel schneller und der Code selbst ist viel aussagekräftiger, da es sich um eine domänenspezifische Sprache handelt. Ich habe vor einigen Wochen eine Frage zu diesem Thema mit vielen nützlichen Links gestellt.

Sie können jede Skriptsprache verwenden, um eine neue zu erstellen, auch mit PHP.

Jose Faeti
quelle
Ich wusste nicht, dass ich mit Perl meine eigene Sprache erstellen kann. Könnten Sie es näher erläutern oder mir einen Hinweis geben?
Sanghyun Lee
Ich habe hier darum gebeten . Grundsätzlich müssen Sie ein Skript erstellen, das Ihre Eingaben versteht (analysiert) und je nach Eingabe unterschiedliche Aufgaben ausführt. Dies kann lediglich ein Satz von Funktionen oder eine völlig neue Sprachsyntax sein. Dann können Sie alles bei Bedarf automatisieren. Nicht nur mit Perl können Sie eine beliebige Skriptsprache verwenden, um eine neue zu erstellen.
Jose Faeti
8

Diese Art von Fragen verblüfft mich immer wieder. Ich habe 7 Sprachen professionell verwendet, Code in rund 5 weiteren Sprachen in Hobby- und akademischen Umgebungen geschrieben und kann Code in vielleicht einem Dutzend weiteren Sprachen lesen. Nicht ein einziges Mal habe ich eine Sprache nur deswegen gelernt. Es gibt immer ein konkretes und unmittelbares Ziel. Zum Beispiel habe ich an diesem Wochenende genug Android-Bibliotheken gelernt, um an einer App für meine Familie zu arbeiten. Wenn wir iPhones hätten, hätte ich Objective-C gelernt.

Ich habe das Gefühl, dass die Kenntnis mehrerer Sprachen ein Symptom dafür ist, ein erfahrener oder zumindest begeisterter Programmierer zu sein, und keine Ursache dafür. Wenn Sie sich keinen zwingenden Grund vorstellen können, eine neue Sprache zu lernen, weiß ich nicht, wie sehr Sie davon profitieren würden.

Karl Bielefeldt
quelle
3

Der beste Weg, um eine neue Sprache zu lernen, wenn Sie ein Problem zu lösen haben. Anstatt nur das zu verwenden, mit dem Sie vertraut sind, sollten Sie sich etwas Zeit nehmen, um herauszufinden, welche Tools (Sprachen, Frameworks, Bibliotheken) zur Lösung des Problems hilfreich sein können. Wenn Sie Zeit haben, das neue Tool zu erlernen, versuchen Sie es. Sie sind möglicherweise nicht in der Lage, dies bei der Arbeit zu tun, wenn Sie aufgrund äußerer Faktoren Zeitdruck und technologische Einschränkungen haben, aber es gibt keinen Grund, warum Sie diesen Ansatz nicht für persönliche Projekte verwenden können.

Thomas Owens
quelle
2

Sie müssen sich nur die Zeit dafür nehmen. Schauen Sie sich das Buch "Sieben Sprachen in sieben Wochen" von den Prags an. Es gibt Ihnen eine Einführung in sieben sehr interessante Sprachen und von dort aus können Sie alle möglichen Orte besuchen.

Zachary K.
quelle
1

Fangen Sie einfach an, es zu benutzen. Natürlich ist es eine schlechte Idee, ein Produktionssystem von Grund auf in einer Sprache zu erstellen, mit der Sie noch nie vertraut waren, aber hier einige Vorschläge:

  • Lerne in deiner eigenen Zeit. Wählen Sie ein interessantes Projekt aus, bei dem Sie sicher sind, dass Sie es selbst fertigstellen können. Es ist am besten, eine Einführung in Ihre neue Sprache zu machen, um zu beurteilen, ob sie geeignet ist - jede Sprache hat Stärken und Schwächen, und es ist am besten, mit einem Problem zu beginnen, bei dem die Sprache besonders gut ist.
  • Beginnen Sie mit Wartungsarbeiten an einem vorhandenen Projekt. Auf diese Weise können Sie einen großen Teil der Sprache erfassen, ohne die Dokumentation zu lesen: Aus dem Beispielcode kann viel abgeleitet werden, und für die Teile, in denen Sie die Dokumentation lesen müssen, ist dies viel klarer, da Sie die gesehen haben Code bereits. Es ist auch einfacher nachzuschlagen, "was macht dieser Code" als "wie kann ich Code schreiben, der X macht".
  • Verwenden Sie Ihre neue Sprache für kleine Tools und Helfer, die Sie benötigen: Shell-Skripte, Wegwerfcode für bestimmte Aufgaben, schnelle Berechnungen (z. B. die interaktiven Interpreter vieler dynamischer Sprachen - Python, Lisp, Haskell usw. - sorgen für hervorragende Taschenrechner). Hierfür sind jedoch nicht alle Sprachen geeignet.
tdammers
quelle
1

Wählen Sie etwas relativ Kleines aus, das Sie in einer Sprache ausgeführt haben, und entwickeln Sie einen Drop-In-Ersatz in einer anderen Sprache. Tun Sie dies nur, um sich selbst herauszufordern. Um es zu vervollständigen, werden Sie viel über die andere Sprache lernen.

Erst in der letzten Woche habe ich beschlossen, ein Web-Service-Backend in NodeJS (früher ein JSP-Service) zu lernen und neu zu schreiben. Es dauerte nur etwa einen Tag, bis der Bare-Bones-Service funktionierte, und einige Tage später Ich hatte die Infrastruktur erweitert, Fehler behandelt, protokolliert und Live-Überwachung hinzugefügt. Es ist jetzt dem Original überlegen. Ob das Management dies akzeptiert oder nicht, ist unerheblich, da ich etwas gelernt habe und sehr zufrieden damit bin.

Fosco
quelle
1
  • Ich denke, dass ein Teil meines Jobs "Forschung" ist. Im Jahr 1998 bedeutete Forschung, Y2K-Fehler zu beheben. Letzten Monat bedeutete Forschung, Subversion zu lernen. Ich forsche seit 40 Jahren. Wenn ich die Sprachen aufführe, muss ich sie in alphabetischer Reihenfolge auflisten.

  • Wenn ich eine Sprache lerne, lese ich das Referenzhandbuch vollständig durch. Dann benutze ich es tatsächlich für ein paar Monate. Dann habe ich das Referenzhandbuch noch einmal gelesen. Die zweite Lesung enthüllt viele Tricks und Implikationen, die ich beim ersten Mal verpasst habe.

  • Die praktische Forschung umfasst normale Sprachen wie C # und Pascal. Fortgeschrittene Forschung umfasst seltsame Sprachen wie LISP und FORTH. Sie werden LISP wahrscheinlich nie professionell einsetzen, aber wenn Sie es lernen, wird Ihr Geist erheblich erweitert.

  • Natürlich werde ich in meiner Umgebung nicht für Zeit bezahlt, sondern für Lieferung. Wenn ich in zwei Wochen sechs Stunden am Tag liefern kann, kann ich die anderen drei für Forschungszwecke verwenden. Wenn es zwölf Stunden am Tag dauert, dann keine Forschung.

  • Jede Forschung sollte natürlich einen potenziellen Nutzen für diejenige haben, die mich bezahlt. Kleine Versorgungsunternehmen sind gut; Wenn Sie Ihren C-Quellcode das nächste Mal verarbeiten möchten, versuchen Sie es in Python. (Nein, ich kenne Python nicht, aber ich habe gehört, dass es gut für die Manipulation von Strings ist.)

Andy Canfield
quelle
0

Manchmal ergeben sich Chancen aus Ihrer Beschäftigung. Es gibt normalerweise einen von drei Treibern für diese Art von Gelegenheit.

  1. Es ist eine brandneue Technologie. Beispielsweise haben viele Unternehmen in den ersten zwei oder drei Jahren nach der Veröffentlichung von .NET für C # -Schulungen für ihre Entwickler bezahlt.

  2. Es ist leicht zu lernen. In einem Linux-Shop müssen Sie beispielsweise .bash-Skripte schreiben. Wenn Sie Terminalsitzungen usw. verwendet haben und andere Entwickler Erfahrung mit dem Schreiben haben, sollten Sie in der Lage sein, diese Fähigkeit zu erwerben, wenn auch nur, um einige Ihrer eigenen Aufgaben zu automatisieren.

  3. Es handelt sich um ungewöhnlich häufig verwendete technische Fähigkeiten, und Ihr Unternehmen möchte nicht die Zeit und die Kosten für die Suche nach einem Berater für die Arbeit aufwenden. Zum Beispiel habe ich gelernt, wie man XSLT schreibt, weil wir eine einfache Möglichkeit brauchten, einige XML-Dateien (Protokolldateien) für die Anzeige zu transformieren.

Andere Möglichkeiten, die Sie sich außerhalb der Arbeit bieten müssen. Wählen Sie sorgfältig aus - welche Technologien sehen Sie in Zukunft als nützlich an? In diesen Fällen müssen Sie Zeit und Mühe in das Erlernen und Anwenden der Technologie investieren. Dies sollte Teil eines allgemeinen Karriereplans sein, und Sie müssen möglicherweise für den Unterricht bezahlen. (Ich hatte Glück - als ich Java lernte, unterrichteten sie es abends an einem örtlichen Community College).

Jay Elston
quelle
0

Wenn ich Ihre Frage beantworte, lerne ich aus eigener Erfahrung (ich bin ziemlich neu in der Industrie, also nicht viel davon) neue Sprachen, indem ich einige Nachforschungen anstelle, um herauszufinden, welche Sprache am besten zu meinen Bedürfnissen passt. Im College hatte ich ein Projekt in Kryptographie, das die Verwendung großer Ganzzahlen erforderte. In C ++ wurde es ziemlich umständlich, also wandte ich mich an Java, da es die BigInteger-Klasse bereitstellte. In meinem aktuellen Job konnte ich feststellen, dass Shell-Scripting mein Problem nicht vollständig lösen konnte, ohne zu komplex zu werden, und so lernte ich Perl. Schnelles Lernen ist mein Rat als Voraussetzung. Wenn Sie sich langweilen, gibt es natürlich eine ganze Welt von Sprachen zu entdecken.

Abhishek Anand
quelle