Soll man neue Sprachen lernen oder sich nur auf Sprachen konzentrieren, die man bereits kennt und seine Kenntnisse erweitern? [geschlossen]


22

Welcher Weg ist vorteilhafter und produktiver?


1
Kommt es nicht auf die Art der Arbeit und der Projekte an? Wenn Sie für ein großes Unternehmen arbeiten, wechseln Sie wahrscheinlich nicht zu oft die Technologie. Wenn Sie freiberuflich tätig sind, haben Sie die Wahl.
Chris

@ Chris: Suggestion, "Languages ​​and Frameworks", die meisten Entwickler arbeiten nicht mehr nur mit einem Befehlszeilen-Compiler und einem Texteditor, sondern mit Bibliotheken, IDE, BD, Thrid-Party Tools, ... ;-)
umlcat

1
Gemessen an der Aufwärtsstimmenauszählung, diese Frage ist konstruktiv in der Meinung vieler. Ich denke, Mark Trapp ist eigentlich ein Computerprogramm, mit dem Fragen geschlossen werden können.
T. Webster

Antworten:


18

Ich denke du brauchst beides. Sie müssen sich auf Ihre Kernkompetenzen konzentrieren und diese besser verstehen, aber es ist auch von Vorteil, nach draußen zu schauen und zu sehen, was es sonst noch gibt. Der Umgang mit anderen Ansätzen und anderen Sprachen ist sehr wichtig, um einen Entwickler insgesamt zu verbessern. Es gibt viele Möglichkeiten, eine Katze sozusagen zu häuten, und wenn Sie so viele wie möglich kennen, können Sie als Psychopath besser das richtige Werkzeug für eine bestimmte Aufgabe auswählen.

Verbringen Sie also den größten Teil Ihrer Zeit damit, Ihre gewählten Fähigkeiten zu verbessern, und verbringen Sie einen Teil Ihrer Zeit damit, etwas Neues zu lernen.


4
+1 Um zu wissen, wie man den "Hammer" richtig benutzt, aber auch, dass es Dinge wie "Schraubendreher", "Sägen" und "Klebrigkeit" gibt.
Ryan Hayes

1
Und die meisten Male, in denen Sie eine neue Sprache lernen, setzen Sie möglicherweise einem Entwurfsmuster oder etwas Nützlichem aus, an das Sie noch nie gedacht hatten, Ihre eigenen Sprachen zu verwenden.
AttackingHobo

8

Jemand sagte: "Eine Sprache, die Ihre Einstellung zum Programmieren nicht verändert, ist es nicht wert, sie zu lernen."

Wenn Sie Java kennen, ist das Erlernen von C # (oder umgekehrt) wenig hilfreich. Wenn nicht aus pragmatischen Gründen (dh Sie brauchen es, um ein Problem zu lösen), würde ich vorschlagen, sich an eine Sprache pro Paradigma zu halten, und Ihr Zeitplan ist immer noch voll genug;).

Die Spezialisierung hingegen erfolgt nach meinen Erfahrungen meistens „vor Ort“, dh wenn ich an einem Projekt arbeite, so ist das selbstverständlich.


1
C # bietet Java-Entwicklern interessante neue Funktionen. Linq & Lambda-Ausdrücke könnten ihre Augen für eine neue Welt öffnen.
Carra

Eigentlich würde ich sagen, dass es (zumindest für mich) einfacher war, ein C # -Programm auf den Markt zu bringen, als ein Java-Programm auf den Markt zu bringen. In diesem Sinne öffneten sich mir die Augen und ich konnte die Vorteile von Java nutzen und gleichzeitig einige seiner Mängel vermeiden. Ungeachtet der Sprachflammenkriege würde ich sagen, dass dies ein guter Punkt ist.
Riwalk

+1 Ich habe in .NET angefangen und viel aus meinen Versuchen mit Objective C und JavaScript gelernt.
Trevor

@ Carra: Ich war mir dessen nicht bewusst (meine letzte gründliche Erfahrung mit beiden war, als Java 1.5 aktuell war). Ist der Unterschied Ihrer Erfahrung nach so groß geworden, dass er unterschiedlich genug ist, um eine Empfehlung zu rechtfertigen, beides zu lernen (aus akademischer Sicht)?
Keppla

Sie sind wahrscheinlich noch besser darin, eine und eine funktionierende Sprache zu lernen. Insgesamt stimme ich Ihnen zu.
Carra

3

Auf beiden Seiten gibt es viele wirklich gute Argumente. Vor vielen Jahren wurde mir genau diese Frage gestellt ... Konzentrieren Sie sich auf meine Primärsprache und versuchen Sie, ein "Experte" zu werden ODER eine neue Sprache zu lernen und meine Marktfähigkeit zu erweitern. Ich habe mich auf eine Sprache konzentriert.

Es wird wirklich keine falsche Antwort geben. Beide haben ihre Vorzüge, es wird wirklich darauf ankommen, welches besser zu Ihnen passt und wohin Ihre Karriere führen soll.


2

Das Erlernen neuer Sprachen ist vor allem ein Mittel, um neue Konzepte zu erhalten und Ihre Effizienz beim Programmieren zu steigern. Das Erlernen des Programmierens an sich unterscheidet sich stark vom Erlernen einer neuen Sprache zum Programmieren.

Sie sollten sich darauf konzentrieren, Ihre Programme zu verbessern (und es gibt eine Menge von Metriken zum Messen, von denen viele subjektiv sind; es spielt keine Rolle, wählen Sie die Metriken aus und verfeinern Sie sie im Laufe der Zeit, verwenden Sie sie für Ihre Ausbildung).

Wenn Sie jedoch "neuere" Sprachen (zum Beispiel Python) über Ihre ältere Liste (zum Beispiel " C" ) lernen, können Sie effizienter denken und sich auf die Kernkonzepte konzentrieren, die verbessert werden sollten. Wenn Sie das Beispiel weiter ausführen, wird es möglicherweise nicht sofort angezeigt, aber Sie werden möglicherweise feststellen, dass Ihre CProgrammierung besser wird, weil Sie in Python nachgedacht haben. Sie könnten sogar anfangen, Python anstelle von Psudo-Code für zu schreiben C. Nun, das ist ein viel besser lesbarer und überprüfbarer Psudo-Code.

Das bringt uns dazu, die Hauptfrage zusammenzufassen:
Ja, Sie sollten sich auf Sprachen konzentrieren, die Sie bereits kennen, und Ihre Kenntnisse in diesen Sprachen verbessern - solange sie noch für Sie verwendet werden. Und sollten Sie auch in neueren Sprachen dabble Ihre Gehirne neuere Werkzeuge zu geben , zu denken (vielleicht sogar schneller) Lösungen für Ihre Programmierung benötigt.


1

Beherrschen Sie ein Programmierframework (und die zugehörige Sprache) und lassen Sie etwas Zeit für eine andere, vorzugsweise andere "Domäne". Beispiel: C ++ Client-Server, Ruby on Web


1

Eine neue Sprache lernen

Es hängt von dem Zweck ab, für den Sie die Sprache lernen. Wenn Sie die Sprache lernen, weil sie ein anderes Paradigma verwendet oder für einen bestimmten Problembereich geeignet ist. Wenn es sich jedoch um eine Sprache handelt, die der bereits bekannten Sprache sehr ähnlich ist, und Sie lediglich planen, den gesamten vorhandenen Code in dieser neuen Sprache umzuschreiben, ist der Wert wahrscheinlich nicht so hoch (z. B. das Umschreiben einer Python-Webanwendung in Rubin) drin.

Vertiefung der Kenntnisse in der aktuellen Sprache

Wenn Sie sich in einer Sprache bereits sehr wohl fühlen, mit all ihren Redewendungen vertraut sind und Programme darin schreiben können, ohne bei jedem Bibliotheksaufruf in der Dokumentation nachsehen zu müssen, gibt es wahrscheinlich nicht viel mehr zu lernen. Wenn andererseits Ihre Sprachkenntnisse nicht so tief sind, kann es sinnvoll sein, mehr zu lernen. Einige gute Möglichkeiten, um zu beurteilen, ob Sie sich im ersten oder im letzten Camp für Sprache X befinden, sind:

  1. Wie viele Programme haben Sie in Sprache X geschrieben?
  2. Wenn Sie auf Stack Overflow gehen und sich die Fragen mit dem Tag X ansehen, auf wie viele davon würden Sie gerne eine Antwort geben?
  3. Kommen Leute zu Ihnen, um Hilfe in Sprache X zu erhalten?

Wenn Ihre Antworten auf diese Fragen irgendwo im Sinne von "viel", "die meisten von ihnen" und "ja, und es wird ärgerlich" sind, ist dies ein gutes Indiz dafür, dass Sie die Sprache beherrschen und zu etwas übergehen sollten Neu.


0

Wenn Sie mit der Sprache, mit der Sie vertraut sind, bereits gut genug sind, gibt es keinen Grund, sehr detaillierte, spezifische Tricks für ein wenig Coolness zu lernen. Es ist eine reine Zeitverschwendung. Wenn Sie sich jedoch mit einer Sprache nicht wohl fühlen, ist der Vorschlag, diese Sprache zuerst zu beherrschen.

Neben den Sprachen gibt es Frameworks, Patterns ... um ein Framework zu lernen, muss man eine Sprache kennen. Für sehr ähnliche Sprachen hilft das Erlernen nichts, als ein bisschen weniger Spaß zu bringen.

Meiner persönlichen Meinung nach sollten Sie immer Ihre Fähigkeiten entwickeln, um schnellere, sicherere und robustere Software für mehr Plattformen zu entwickeln und die dafür benötigte Zeit zu verkürzen. Dazu müssen Sie möglicherweise eine neue Sprache, ein neues Framework und eine neue IDE erlernen (das ist genauso wichtig wie eine Sprache), und nur wenn Sie zu diesem Zweck sind, lohnt sich Ihre Investition.

Lerne zumindest keine neue Sprache, um die Anzahl der Sprachen zu erhöhen, die du kennst.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.