Ja und nein, also ein klares Jein"Eine Programmiersprache beherrschen" ist etwas unglücklich ausgedrückt, finde ich. Man kann eine Programmiersprache bis in ihre tiefsten Tiefen kennen, und trotzdem ein sehr schlechter Programmierer sein. "Programmieren lernen" funktioniert weitgehend unabhängig von den Sprachen die man dazu benutzt. Dabei geht es darum, ein Problem exakt zu analysieren, es möglicherweise in seine kleinsten Bestandteile zu zerlegen, um dann mit dem zur Verfügung stehenden Werkzeug, also der Programmiersprache, die man gerade da hat, einen Algorithmus zu entwickeln und zu einer Lösung zu kommen.
Fast jede Programmiersprache ist nach den gleichen Regeln aufgebaut. Auch wenn in Ruby nahezu Alles und Jedes ein Objekt ist, gibt es doch viele Gemeinsamkeiten mit Sprachen, die vermutlich bereits vor der Geburt eurer Eltern ausgestorben waren. Ich erwähne nur mal COBOL. Variablen, Schleifen, Kontrollstrukturen, Bedingungsabfragen, und so weiter, wirst du in jeder Sprache finden, auch wenn es manchmal etwas schwer zu erkennen ist. (Brainfuck, anyone?)
Wenn jemand eine Programmiersprache "beherrscht", sagt das nicht wirklich viel. Wer hingegen das Programmieren gelernt hat, kann seinen Quick-, Heap-, Bubble- Sort-oder Sonstwas-Algorithmus in kurzer Zeit in nahezu jeder Sprache umsetzen.
Modernere Sprachen kommen allerdings mit umfangreichen Funktionsbibliotheken daher, die einem erfahrenen Programmierer schon einen Großteil der alltäglichen Arbeit abnehmen.
Jeder, der gelernt hat, zu programmieren, sollte in der Lage sein, sich in wenigen Stunden mit einer neuen Umgebung vertraut zu machen - ob die IF-Abfrage nun in C++, Python, Ruby, oder sonstwas da steht, macht keinen Unterschied. Um aber herauszufinden, wie eine bestimmte Programmierumgebung ihre Standard-Objekte handhabt, und welche Methoden sie zur Verfügung stellt, braucht man etwas mehr als 'n verkürztes Wochenende.
Wann also "beherrscht" man eine Programmiersprache? Wenn man 'ne WHILE-Schleife ohne Syntaxfehler abtippen kann? Oder ist es doch erst, wenn man alle Standard-Funktionen, -Methoden und -Objekte schon mal zum Essen (Incl. Vor- und Nachspiel) eingeladen hat?
Wenn der Aufruf einer Standard-Funktion in bspw Python nicht so funktioniert, wie ich es erwarte, schaue ich in den Sourcecode wo diese Funktion deklariert ist, und sehe meistens sehr schnell, warum das Ding sich nicht so benimmt wie erwartet, und meistens habe ich dann auch bald eine Idee, wie ich die gewünschten Ergebnisse bekomme. Falls es doch mal länger dauert, liegt es meistens daran, dass ich ich irgendwo einen Denkfehler und/oder ein Logik-Problem habe.
Anyway, man KANN mit einer (nahezu) beliebigen Sprache fast jedes Programmierproblem lösen - es bleibt nur die Frage, ob es die dafür aufgewändete Zeit Wert ist. Mit Grausen erinnere ich mich daran, wie unser Dozent erwartet hat, dass wir eine größere Sammlung von C++-Standard-Funktionen nachprogrammieren und nach unseren (seinen) Wünschen modifizieren können. Aber: das daduch erlangte Wissen und die Erfahrung möchte ich heute nicht mehr missen - auch wenn ich nur noch selten programmiere..
Nein. Nicht, so wie ich es sehe. Einer Sprache beherrschen bedeutet für mich, dass man wirklich mit jedem Standad-Objekt und jeder Standard-Funktion oder Methode, die die Sprachumgebung zur Verfügung stellt, auf Du-Und-Du steht. Aber wer tut das schon? Wie ich Eingangs erwähnte, dauert es vielleicht einen oder zwei Nachmittage, um sich mit einer neuen Sprache vertraut zu machen - WENN man programmieren gelernt hat. Wenn man das gelernt hat, ist die Sprache wirklich egal, oder nicht?Zitat
Um zum Threadstarter zurückzukommen: Es ist egal, mit welcher Sprache du anfängst - du wirst immer mal auf Verständnisprobleme stoßen - da wird sich durchgebissen, das gehört sich so.
Wenn du allerdings glaubst, es braucht nur ein paar Zeilen Code, um alle deine Wünsche zu erfüllen, irrst du dich - um diese paar Zeilen schreiben zu können, musst du nämlich auf die Erfahrungen und das Wissen zurückgreifen können, die du dir in vielen tausend vorhergehenden Zeilen erarbeitet hast. Ja, ich habe auch schon mal 2000 Zeilen Code geschrieben um ein Problem zu lösen, welches sich nach Klärung eines Verständnisproblems und Aufbesserung einer Wissenslücke mit 15 Zeilen lösen ließ. So ist das Leben.