realLeuchtturm schrieb:
Was ich persönlich empfehle ist, gerade wenn man ganz am Anfang steht, sich einen Kurs zu suchen. Nichts hilft am Anfang besser, als ein Mensch der einem die Grundlagen zeigt.
Das kann tatsächlich ziemlich hilfreich sein. Unter Umständen hat man ja auch jemand der programmiert im Bekanntenkreis. Bringt der noch zumindest ein Minimum an Erklärtalent mit, hilft das schon viel weiter.
Ansonsten ist ja noch dieses Forum stets bemüht :-)
realLeuchtturm schrieb:
Leider verführt gerade die Möglichkeit des rumprobierens dazu, sich einen schlechten Programmierstil anzueignen.
Das war nicht immer so, aber inzwischen ziehe ich solche Argumentationen in Zweifel.
Als ich angefangen hab, da war das mit BASIC (also in seiner ursprünglichen Form mit Zeilennummern etc. wie man es von den Homecomputer der 80er Jahre kannte). Damals hieß es, dass ist gaanz schlechter Stil. GOTO ist die Wurzel allen Übels etc. Mach was modernes. Nimm Pascal oder C.
Ok. Also Pascal genommen mit seinem prozeduralen Stil. Hat auch alles gut geklappt. Nur tauchten dann vermehrt OOP-Leute auf. Prozedural? Ganz schlechter Stil! Die Zukunft ist objektorientiert. Lern so zu denken. Hat nur Vorteile. Nimm C++ !!!"
Also mit C++ abgequält. Aber C++ ist wirklich Schrott. Nimm Java. Das ist jetzt der heiße Scheiß. Endlich saubere OOP ohne Fallstricke wie Mehrfachvererbung etc. Also machte ich von da an alles in Java später auch Python und Ruby, aber da kippte die Stimmung schon. OOP? Ganz schlechte Idee. Du musst funktional programmieren. Denk nur an immer öfter vorkommenden Multicore-CPUs die Du dann endlich ausnutzen kannst ohne Dir groß Gedanken machen zu müssen.
Also programmierte ich funktional.
Zwei Erkenntnisse hab ich gewonnen. Du kannst eigentlich nehmen was Du willst. Irgendwie kommt immer einer um die Ecke der sagt, dass man das so nicht macht. Aber das ist gar nicht das Wichtige. Das Wichtige ist, dass man dadurch mit vielen Paradigmen auseinandergesetzt hat und selbst für einen einschätzen kann, was gut ist und was nicht.
Das das bedeutet für mich persönlich, dass eine Art und Weise zu programmieren eben nicht per se gut ist oder schlecht, sondern es darauf ankommt, was man machen möchte. Und ich mir heute den Luxus erlauben kann, für ein Teilproblem eben auch das passende Paradigma wählen kann. Die Erfahrung habe ich aber nur, weil ich halt diesen Weg gegangen bin. Weil ich sowohl in den Dreckecken der Programmierung war als auch in den Elfenbeintürmen.
Und ja, es ist anstrengend und oftmals auch frustrierend, weil man merkt, das man in der Vergangenheit viel Sch**ß gemacht hat (wer das nicht glaubt, soll mal seinen Quellcode von vor ein paar Jahren nochmal angucken).
Aber meiner Meinung nach lohnt es sich und es ist auch nicht unbedingt nachhaltig schädlich wenn man sich ein paar schlechte Angewohnheiten einfängt.
Solange man fähig ist das auch zu erkennen und sich einzugestehen, dass man immer irgendwie dazu lernt und das dazu Fehler genauso dazu gehören wie Erfolge, ist das überhaupt kein Problem.
Dann gibts natürlich noch den Typus von Programmierer, der irgendlich nur seine Probleme lösen will. So in die Richtung Excel-Advokat der irgendwann mal auf VBA gestoßen ist. Oftmals von sogenannten richtigen Programmierern verlacht, schafft er es aber dennoch sich das Leben zu vereinfachen. Seine Lösungen sind zwar mitunter kreativ aber nicht unbedingt das, was man mit gutem Stil verbindet.
Aber mal ehrlich. Was wäre passiert, wenn man dem gesagt hätte?: Lass mal den Quatsch. Nimm C++ (oder was auch immer). Dem wäre das alles viel zu kompliziert gewesen und er wäre gar nicht zum programmieren gekommen. Der hätte dann anstelle von VBA (oder was es da sonst noch so für belächelte Sprachen gibt) einfach nix, womit er seine Probleme löst bzw. sich das Leben vereinfacht.
Insofern sollte man das mit dem guten Stil und schlechten Stil etwas gelassener sehen.
Was dann schon eher sinnvoll ist in Hinblick auf die Wahl der Programmiersprache ist, wenn es darum geht, dass man ein bestimmtes Paradigma verinnerlichen will. Dort kann es dann sinnvoll sein möglichst eine Programmiersprache zu nehmen, die sich vor allem ein Paradigma verschreibt. Weil man (bei Multiparadigmensprachen) sonst leicht in Gewohnheiten zurückfällt, so dass man das dann doch nicht wirklich lernt.
Bei Objektorientierung denk ich da z.B. an
Smalltalk (bzw.
Pharo als zeitgemäße und sehr aktiv gepflegte Implementation).
Beim funktionalen Paradigma erfüllt z.B.
Haskell diese Aufgabe gut.
Aber bei einem Anfänger der von Tuten und Blasen keine Ahnung hat, machen Empfehlungen hinblicklich irgendeines guten oder schlechten Stils kaum Sinn. Der soll überhaupt erstmal irgendwie Anfahren lernen, bevor es darum geht nen Sportwagen schnell über die Piste zu peitschen oder ein LKW filligran in ne Parklücke zu bekommen.
realLeuchtturm schrieb:
Ich selbst bin Programmierer (prozedurale Programmiersprache) und derzeit dabei mich nebenbei in Java einzuarbeiten.
Was von guten Stil zu erzählen und dann aber Java lernen, ringt mir dann doch ein schmunzeln ab. :-)
Gruß
A.