Ab wann 2. Programmiersprache lernen?

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
ll9
User
Beiträge: 34
Registriert: Samstag 9. Februar 2013, 15:13

Sonntag 16. März 2014, 16:04

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.
EyDu
User
Beiträge: 4872
Registriert: Donnerstag 20. Juli 2006, 23:06
Wohnort: Berlin

Sonntag 16. März 2014, 16:38

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.
Das Leben ist wie ein Tennisball.
Benutzeravatar
darktrym
User
Beiträge: 723
Registriert: Freitag 24. April 2009, 09:26

Sonntag 16. März 2014, 20:07

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.
„gcc finds bugs in Linux, NetBSD finds bugs in gcc.“[Michael Dexter, Systems 2008]
Bitbucket, Github
BlackJack

Sonntag 16. März 2014, 20:23

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.
Chiller Royal
User
Beiträge: 8
Registriert: Freitag 7. März 2014, 16:49

Montag 17. März 2014, 00:05

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
Leonidas
Administrator
Beiträge: 16024
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Montag 17. März 2014, 17:30

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.
My god, it's full of CARs! | Leonidasvoice vs Modvoice
lunar

Dienstag 18. März 2014, 15:40

darktrym hat geschrieben:Ich finde es kontraproduktiv eine zweite zu lernen bevor man nicht die erste in und auswendig kennt.
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.
Dami123
User
Beiträge: 225
Registriert: Samstag 23. Februar 2013, 13:01

Dienstag 18. März 2014, 23:37

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.
BlackJack

Dienstag 18. März 2014, 23:53

@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
User
Beiträge: 225
Registriert: Samstag 23. Februar 2013, 13:01

Samstag 22. März 2014, 17:58

Hab mit der Antwort gerechnet und deshalb "die meisten" hinzugefügt ;)
Selber in diesen Sprachen programmiert hab ich nicht, denke aber es gibt dort auch Datentypen und Formen von Abfragen, Schleifen?
Benutzeravatar
Balmung
User
Beiträge: 43
Registriert: Sonntag 17. März 2013, 18:36

Samstag 22. März 2014, 18:09

Schleifen in funktionalen Sprachen? Wohl eher weniger ;-)
»Honk Honk«
BlackJack

Samstag 22. März 2014, 18:18

@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.
Benutzeravatar
snafu
User
Beiträge: 5965
Registriert: Donnerstag 21. Februar 2008, 17:31
Wohnort: Gelsenkirchen

Samstag 22. März 2014, 18:38

Ich vermute, Dami123 meinte eher, ob es eine wie auch immer geartete Form von Iterationen, Ausführungsbedingungen, etc gibt.
BlackJack

Samstag 22. März 2014, 18:50

@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.
Dami123
User
Beiträge: 225
Registriert: Samstag 23. Februar 2013, 13:01

Sonntag 23. März 2014, 00:19

BlackJack hat geschrieben:Wenn Du das als Grundlage nimmst sind ja alle Sprachen irgendwie gleich.
Dann lohnt es sich dem Starterpost zufolge eine zweite Programmiersprache zu lernen, wenn man die grundlegenden Grundlagen verinnerlicht hat.
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.
Antworten