Hallo,
ich bin wohl noch recht weit weg davon, eine zweite Programmiersprache zu lernen. Ich habe mich jedoch schon öfters gefragt, ab wann es denn sinnvoll wäre eine zweite Programmiersprache zu lernen. Auch wenn man bei der ersten Programmiersprache noch einiges zu lernen hätte, könnte es doch Sinn machen eine zweite zu lernen, da sich diese im besten Fall gegenseitig ergänzen, oder etwa nicht?
Was haltet ihr zu dem Thema? Ab wann würdet ihr es als sinnvoll einschätzen eine zweite Programmiersprache zu lernen? Bin schon gespannt auf eure Antworten.
Ab wann 2. Programmiersprache lernen?
Hallo,
es kommt darauf an, was für eine Sprache du lernst. Wenn du Python und die dahinter stehenden Konzepte noch nicht richtig beherrscht, dann ist eine weitere imperative und objektorientierte Sprache zunächst recht sinnlos. Außer, du benötigst diese für einen bestimmten Zweck oder willst einfach nur eine andere Sprachen kennenlernen. Ganz grob gesagt: kennst du eine Sprache aus der Ecke, so kennst du alle.
Durchaus lohnenswert sind Sprachen aus anderen Richtung, zum Beispiel funktionale oder deklarative Ansätze. Da geht es um ganz andere Konzepte, welche dir eine andere Sichtweise auf Probleme liefern. Schau dir einfach mal Haskell oder Prolog an. Wahrscheinlich wirst du überrascht sein, da dort ganz andere Denkansätze verwendet werden.
es kommt darauf an, was für eine Sprache du lernst. Wenn du Python und die dahinter stehenden Konzepte noch nicht richtig beherrscht, dann ist eine weitere imperative und objektorientierte Sprache zunächst recht sinnlos. Außer, du benötigst diese für einen bestimmten Zweck oder willst einfach nur eine andere Sprachen kennenlernen. Ganz grob gesagt: kennst du eine Sprache aus der Ecke, so kennst du alle.
Durchaus lohnenswert sind Sprachen aus anderen Richtung, zum Beispiel funktionale oder deklarative Ansätze. Da geht es um ganz andere Konzepte, welche dir eine andere Sichtweise auf Probleme liefern. Schau dir einfach mal Haskell oder Prolog an. Wahrscheinlich wirst du überrascht sein, da dort ganz andere Denkansätze verwendet werden.
Das Leben ist wie ein Tennisball.
Ich finde es kontraproduktiv eine zweite zu lernen bevor man nicht die erste in und auswendig kennt. Wenn einem nämlich da Mängel auffallen oder Gebiete die nicht zufriedenstellend gelöst werden, kann man über eine weitere nachdenken. Bspw. wurde bei mir an der Uni C++ und Java in einem Durchgang als OOP beigebracht und Haskell als funktionale. Ich hatte vorher Batch/Pascal/C/Delphi/C++ Kenntnisse war und bin immer noch abgeschreckt vom fürchterlichen Syntax, von den Ideen der 80iger, vom Weg der Umsetzung. Ging nicht nur mir so. Drum greife ich noch heute extrem ungern dazu obwohl es einige Vorteile gibt.
Den Vorteil den ich mit Python sehe nach meiner langer Odyssee, neue Konzepte und Herangehensweisen die einen Java Programmierer deutlich machen wie umständlich einiges doch war. Da Python vieles verbindet ist es schwer was konkret vorzuschlagen. Deshalb würde ich das vom Zweck abhängig machen, willst du Mobil/Enterprise kommst du an Java nicht vorbei.
Den Vorteil den ich mit Python sehe nach meiner langer Odyssee, neue Konzepte und Herangehensweisen die einen Java Programmierer deutlich machen wie umständlich einiges doch war. Da Python vieles verbindet ist es schwer was konkret vorzuschlagen. Deshalb würde ich das vom Zweck abhängig machen, willst du Mobil/Enterprise kommst du an Java nicht vorbei.
Eine zweite Sprache kann einem aber auch helfen die erste besser kennen zu lernen, zum Beispiel weil man verschiedene Ansätze vergleichen kann, und einem Sachen über die jeweils andere Sprache bewusst werden, die man sonst nicht gesehen hätte. Das heisst eine zweite Sprache kann dazu führen das man die Erste erst wirklich in und auswendig kennenlernt.
Zur Wahl der nächsten Sprache würde ich mich im Grunde beiden Vorrednern anschliessen — entweder eine möglichst unterschiedliche Sprache, um tatsächlich den Horizont zu erweitern und nicht nur andere Syntax und ähnliche Idiome zu verwenden — oder eine Sprache die als Ergänzung für ein Python-Projekt gebraucht wird, also zum Beispiel JavaScript wenn man mit Python eine Webanwendung schreiben möchte, oder C wenn man eine Erweiterung in C schreiben möchte oder auch nur wenn man eine Bibliothek mit `ctypes` einbinden möchte.
Zur Wahl der nächsten Sprache würde ich mich im Grunde beiden Vorrednern anschliessen — entweder eine möglichst unterschiedliche Sprache, um tatsächlich den Horizont zu erweitern und nicht nur andere Syntax und ähnliche Idiome zu verwenden — oder eine Sprache die als Ergänzung für ein Python-Projekt gebraucht wird, also zum Beispiel JavaScript wenn man mit Python eine Webanwendung schreiben möchte, oder C wenn man eine Erweiterung in C schreiben möchte oder auch nur wenn man eine Bibliothek mit `ctypes` einbinden möchte.
-
- User
- Beiträge: 8
- Registriert: Freitag 7. März 2014, 16:49
Hi,
also ich kann nur von meiner eigenen Erfahrung berichten.
Habe jetzt ein Semester in der Uni begeistert mit Java gearbeitet, obwohl das nur ein kleines Praktikum war und wir nicht wirklich tief in die Sprache eingedrungen sind. Ich würde mich also selber noch als Java-Anfänger sehen. Dennoch bin ich gerade dabei mich privat in Python einzuarbeiten.
Im moment habe ich großen Spaß daran weil ich vieles aus Java nun noch einmal durchgehe und besser verstehe und ich Pythons genalität durch meine Javavorkentnisse sehr zu schätzen lerne.
Außerdem komme ich in Python sehr viel schneller vorran da ich vieles ja schon kenne und mir nur einprägen muss wie es da gemacht wird.
Nachteil ist allerdings das ich wohl bald auf einem Niveao sein werde auf dem ich beide Sprachen wohl etwa gleich gut, aber keine der Sprachen wirklich gut beherschen werde. Da wär ich in der Zeit die ich nun in Python stecke wohl in Java ein ganzes stück weiter gekommen.
Ist also auch eine Sache ob man lieber schnell in einer Sprache weit kommen möchte oder lieber sich viele unterschiedliche Konzepte ansehen und hier und da mal reinschnuppern möchte. Bei mir eher lezteres.
LG
also ich kann nur von meiner eigenen Erfahrung berichten.
Habe jetzt ein Semester in der Uni begeistert mit Java gearbeitet, obwohl das nur ein kleines Praktikum war und wir nicht wirklich tief in die Sprache eingedrungen sind. Ich würde mich also selber noch als Java-Anfänger sehen. Dennoch bin ich gerade dabei mich privat in Python einzuarbeiten.
Im moment habe ich großen Spaß daran weil ich vieles aus Java nun noch einmal durchgehe und besser verstehe und ich Pythons genalität durch meine Javavorkentnisse sehr zu schätzen lerne.
Außerdem komme ich in Python sehr viel schneller vorran da ich vieles ja schon kenne und mir nur einprägen muss wie es da gemacht wird.
Nachteil ist allerdings das ich wohl bald auf einem Niveao sein werde auf dem ich beide Sprachen wohl etwa gleich gut, aber keine der Sprachen wirklich gut beherschen werde. Da wär ich in der Zeit die ich nun in Python stecke wohl in Java ein ganzes stück weiter gekommen.
Ist also auch eine Sache ob man lieber schnell in einer Sprache weit kommen möchte oder lieber sich viele unterschiedliche Konzepte ansehen und hier und da mal reinschnuppern möchte. Bei mir eher lezteres.
LG
-
- Python-Forum Veteran
- Beiträge: 16025
- Registriert: Freitag 20. Juni 2003, 16:30
- Kontaktdaten:
Ich denke da würde ich BlackJack zustimmen: manchmal ist es notwendig eine weitere Sprache zu lernen, weil sich das Problem aus Python heraus nicht erschlagen lässt, wie etwa Client-Side JavaScript-Lösungen. Eventuell auch Mobile-Apps, für die Python eher wenig nützlich ist. Was ist wenn man aber solche Probleme nicht hat?
Man sollte sich für den Anfang, denke ich, nicht verzetteln. Damit meine ich nicht dass man unbedingt ein Python-Profi werden muss bevor man sich andere Sprachen ansieht. Aber man sollte denke ich solide Kenntnisse der Sprache haben, damit das lernen einer weiteren Sprache sich nicht nur in Syntaxunterschiede verzettelt sondern auch ein Verständnis für die jeweiligen Vor- und Nachteile da ist. Generall ist das lernen einer zweiten, dritten, fünften und neunten Sprache generell eine sinnvolle Idee, weil man dann oftmals neue Wege sieht Probleme zu lösen. Mein Ausflug nach Scheme hat auch meine Art Python-Code zu schreiben verändert.
Ist die Frage: wozu will man eine weitere Sprache lernen? Um berufliche Vorteile zu haben? Um mehr über Programmierung zu erfahren? Um sich selbst eine Challenge zu stellen? Für jede dieser Alternativen gibt es die passenden Sprachen.
Man sollte sich für den Anfang, denke ich, nicht verzetteln. Damit meine ich nicht dass man unbedingt ein Python-Profi werden muss bevor man sich andere Sprachen ansieht. Aber man sollte denke ich solide Kenntnisse der Sprache haben, damit das lernen einer weiteren Sprache sich nicht nur in Syntaxunterschiede verzettelt sondern auch ein Verständnis für die jeweiligen Vor- und Nachteile da ist. Generall ist das lernen einer zweiten, dritten, fünften und neunten Sprache generell eine sinnvolle Idee, weil man dann oftmals neue Wege sieht Probleme zu lösen. Mein Ausflug nach Scheme hat auch meine Art Python-Code zu schreiben verändert.
Ist die Frage: wozu will man eine weitere Sprache lernen? Um berufliche Vorteile zu haben? Um mehr über Programmierung zu erfahren? Um sich selbst eine Challenge zu stellen? Für jede dieser Alternativen gibt es die passenden Sprachen.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
Das kann ich so überhaupt nicht nachvollziehen. Ich habe mit zwei Sprachen gleichzeitig programmieren gelernt, und fand das nicht sonderlich unproduktiv. Im Gegenteil, man lernt von Anfang an über den Tellerrand hinauszublicken, und von den syntaktischen und semantischen Feinheiten einzelner Sprachen auf allgemeinere Konzepte zu abstrahieren.darktrym hat geschrieben:Ich finde es kontraproduktiv eine zweite zu lernen bevor man nicht die erste in und auswendig kennt.
Die meisten Programmiersprachen bestehen aus den gleichen Grundkenntnissen, so würde ich sagen lohnt es sich erst, wenn man diese kapiert hat. Dadurch wird der Einstieg in eine neue Sprache durchaus flüssiger und angenehmer verlaufen als in die Erste.
Wenn man von Sprachen wie HTML, CSS und Co. absieht, würde ich sagen lohnt sich das erlernen einer zweiten Sprache erst, wenn man die Erste verbessern, vergänzen oder ersetzen möchte.
Z.B.:
- Erweiterung deines Moduls mit C für höhere Geschwindigkeit
- Verwendung von Modulen aus anderen Sprachen
- Hardware Programmierung
- unabhängige EXE Dateien
Hängt natürlich auch davon ab, warum Python deine erste Sprache ist. Duales Lernen und ggf. verknüpfen hört sich im wesentlichen nicht schlecht an.
Wenn man von Sprachen wie HTML, CSS und Co. absieht, würde ich sagen lohnt sich das erlernen einer zweiten Sprache erst, wenn man die Erste verbessern, vergänzen oder ersetzen möchte.
Z.B.:
- Erweiterung deines Moduls mit C für höhere Geschwindigkeit
- Verwendung von Modulen aus anderen Sprachen
- Hardware Programmierung
- unabhängige EXE Dateien
Hängt natürlich auch davon ab, warum Python deine erste Sprache ist. Duales Lernen und ggf. verknüpfen hört sich im wesentlichen nicht schlecht an.
@Dami123: Hast Du schon mal in Haskell, Prolog, oder Factor programmiert? Ich vermute mal nicht, denn die sind jeweils komplett anders als das was man so von imperativ und objektorientiert gewohnt ist.
@Dami123: Teilweise total andere Typsysteme und bei Haskell und Prolog auch keine Schleifen. Factor hat Worte für Schleifen, die werden aber selten verwendet, weil Kombinatoren, so etwas wie Funktionen höherer Ordnung, bevorzugt werden.
@snafu: Wenn Du das als Grundlage nimmst sind ja alle Sprachen irgendwie gleich. Und es wäre egal ob man in C, Haskell, Java, oder Factor programmiert, weil die sich ja gar nicht gross unterscheiden. Tun sie aber.
Dann lohnt es sich dem Starterpost zufolge eine zweite Programmiersprache zu lernen, wenn man die grundlegenden Grundlagen verinnerlicht hat.BlackJack hat geschrieben:Wenn Du das als Grundlage nimmst sind ja alle Sprachen irgendwie gleich.
Diese sollten dann, egal mit welcher Sprache man beginnt, verwendbar und hilfreich beim lernen einer weiteren Sprache sein.
Ob es nun funktional oder objektorientiert sein darf, hängt von der Aufgabenstellung ab. Für meinen Fall ist die OOP zu 90% die geeignetste Vorgehensweise.
@Dami123: Ähm, doch aber nur wenn man das als Grundlage nimmt, was IMHO eine unsinnige Annahme ist, das alle Sprachen irgendwo gleich sind. Das ist zwar wahr, die sind alle turingvollständig, aber das ist irgendwie als wenn man sagen würde ein Hund und ein Stein sind aus Atomen zusammengesetzt, also kann ein Geologe wenn er die Grundlagen kennt eigentlich auch ganz einfach Tierarzt sein, es sind ja die gleichen Grundlagen, nur die Details sind ein bisschen anders. 
Ich hatte zum Anfang des Studiums schon ein paar Sprachen (verschiedene BASIC-Dialekte, Assembler (6510 und x86), Pascal, C) hinter mir und behaupte einfach mal ich war ein halbwegs brauchbarer Programmierer (für damalige Verhältnisse). Haskell hat mein Selbstbewusstsein damals ganz schön erschüttert, weil ich das Gefühl hatte wieder komplett bei Null anzufangen. Klar hatte man auch Datentypen, die denen in den Sprachen die ich kannte nicht unähnlich waren, aber alles andere hat radikales Umdenken erfordert.

Ich hatte zum Anfang des Studiums schon ein paar Sprachen (verschiedene BASIC-Dialekte, Assembler (6510 und x86), Pascal, C) hinter mir und behaupte einfach mal ich war ein halbwegs brauchbarer Programmierer (für damalige Verhältnisse). Haskell hat mein Selbstbewusstsein damals ganz schön erschüttert, weil ich das Gefühl hatte wieder komplett bei Null anzufangen. Klar hatte man auch Datentypen, die denen in den Sprachen die ich kannte nicht unähnlich waren, aber alles andere hat radikales Umdenken erfordert.
Bin schon auf den Zeitpunkt gespannt, wenn ich mich dazu entscheide Haskell o.ä. auszuprobieren.
Kann jetzt schlecht weiteres zu diesem Thema beitragen und verinnerliche einfach für die Zukunft mich auf eine 180° Wende vorzubereiten
Kann jetzt schlecht weiteres zu diesem Thema beitragen und verinnerliche einfach für die Zukunft mich auf eine 180° Wende vorzubereiten

Ich find ja ein grundlegendes Tutorial kann man immer mal machen. Das kostet nicht zu viel Zeit. Und dann sieht man schon, ob das Interesse geweckt wird und man sich dem gewachsen fühlt, die Kenntnisse zu vertiefen.
Es gibt für alles eine rationale Erklärung.
Außerdem gibt es eine irrationale.
Wie man Fragen richtig stellt
Außerdem gibt es eine irrationale.
Wie man Fragen richtig stellt