Programmiersprache ganz beherrschen? Wie lange würde es dauern?

7 Antworten

joa kann schon paar jährchen dauern ich brauchte ein jahr für c++ (ohne Vorkenntnisse)

Man muss ein Gefühl fürs Programmieren, dir Sprache und die Muster bekommen. Das geht nur durch Praxis. Kein Programmier kennt alle Funktionen da es praktisch unendliche gibt.

Jeder braucht da anders lange. Aber 3-5 Jahre würde ich einplanen um als halbwegs fortgeschrittener Programmierer zu gelten.

Das kommt darauf an, was du unter "ganz zu beherrschen" verstehst und welche Programmiersprache du meinst.

Bei den einfachen Basic-Dialekten aus den frühen 1980er Jahren war es immerhin noch möglich, alle Befehle zu kennen. Selten verwendete Befehle hat allerdings niemand auswendig gekonnt, sondern man hat im Handbuch nachgeschlagen, wenn man diese Befehle benötigt hat.

Bei modernen Programmiersprachen wie C++ oder Java ist das etwas anders - hier muss ich etwas ausholen:

Die eigentliche Programmiersprache enthält gar keine Befehle, sondern nur die Schlüsselwörter um z.B. Variablen anzulegen, Funktionen zu erstellen, Schleifen oder Verzweigungen zu machen usw.

Die "eigentlichen" Befehle (z.B. um eine Ausgabe auf dem Bildschirm zu machen; bei C wäre das "printf", bei C++ "cout") sind in der so-genannten Bibliothek - also in sepraraten Dateien gespeichert. Diese Bibliothek unterscheidet sich dann noch von Betriebssystem zu Betriebssystem.

Bei Java wäre es immerhin noch möglich, die Sprache (ohne Bibliothek!) "komplett" zu berherrschen; C++ so weit zu beherrschen, dass man jeden Ausnahmefall von Operatorüberladungen und Makroersetzung noch beurteilen kann, halte ich bereits für unmöglich.

Bei den Bibliotheken ist es noch schlimmer: Alleine die Java-Version 7 hat bereits etwa 6200 Standard-Klassen mit jeweils durchschnittlich vielleicht 20 Funktionen. Macht etwa 120000 Funktionen. Die alle auswendig zu können ist unmöglich!

Bei C++ ist es ähnlich; C hat zwar deutlich weniger funktionen, aber immer noch zu viele, um alle auswendig zu kennen.

Jeder hauptberufliche Programmierer (wie z.B. ich) wird also bei selterner verwendeten Funktionen einen Blick in die Dokumentation werfen müssen, da es niemanden gibt, der wirklich alle Funktionen beherrscht.

JavaTheHutt  18.02.2015, 11:38

Stimme deiner Antwort soweit zu.

Als Anmerkung noch ein Punk, den du vergessen hast. Und zwar ist es so, dass es in einem Projekt meist nicht bei den Standard-Bibliotheken bleibt. Das heißt es kommen Frameworks oder 3rd-Party-Bibliotheken zum Einsatz, die auch wieder mehrere 1000 Funktionen bereitstellen.

Mal abgesehen davon, dass die Sprache an sich sowie die Bibliotheken / Frameworks ständig weiterentwickelt werden, wird man wegen diesem Umfang eine Sprache nie zu 100% auswendig lernen können.

1

Das Stroustrup C++-Buch hat ca 1300 Seiten.

Für viele Konzepte brauchst Du sicherlich mehrere Tage, um sie zu beherrschen.

Sagen wir: Für einen Profi ein Jahr?

Meist wirst Du aber eine Programmiersprache nicht im Buch erlernen, sondern dadurch, dass Du ein Projekt in dieser Sprache implementieren musst, und Dir dann zusammensuchst, was Du brauchst. Die wesentlichen Begriffe kennst Du dann schon aus anderen Sprachen und erfährst aus Foren interessante Konzepte wie z.B. Template Metaprogramming, die Du dann als interessant begreifst und Dir aneignest, wenn ein Problem darauf zu passen scheint.

Du kannst eine Programmiersprache meist nicht vollständig auswendig lernen. Was du lernst ist lediglich das Muster der Sprache und einige Grundbefehle. Außerdem eignest du dir im Laufe der Zeit die Logik an, die hinter einer jeden Programmiersprache steht. Normalerweise liest man sich vor den meisten Projekten das Wissen an, da es so unendlich viele Befehle gibt, die man ausführen kann ( außer bei neueren Sprachen, wie Python, Ruby...).

LG TobiMacDuev