Programmieren lernen - besser kein OOP.
-
Hallo
Ich versuche auch mal meinen Senf dazuzugeben. Ich halte es nicht für sinnvoll sich anfangs mit char[] oder char* rumzuplagen. Dann doch lieber mit std::string und co.
chrische
-
muemmel schrieb:
Man fängt mit C an und nimmt für Sachen wie Strings und Ausgaben die C++-Möglichkeiten. Und dann schleicht man sich ganz langsam in dem Maße wie man es durchblickt an C++ ran.
ich finde, C ist nicht so gut für absolute anfänger geeignet (zu kryptisch), eher BASIC oder Pascal.

-
Ich halte es im Grunde für wünschenswert, alle Perspektiven zu kennen. Von Assembler angefangen bis zur vollkommenen Abstraktion. Das Problem ist nicht wirklich, womit man anfängt. Das Problem entsteht erst, wenn man einen Pfad einschlägt und bevor man alles gesehen hat entscheidet, dass man nicht weiterlernen muss. Dann bleibt man auf dem Status eines Lowlevel-Fricklers stehen, oder produziert abstrakten Bloat ohne Sinn und Verstand.
-
Bashar schrieb:
Ich halte es im Grunde für wünschenswert, alle Perspektiven zu kennen. Von Assembler angefangen bis zur vollkommenen Abstraktion.
kommt darauf an, was man mit der programmiererei erreichen will. angenommen einer möchte tolle, dynamische webseiten machen, entscheidet sich z.b. für PHP und ist damit völlig zufrieden. nie im leben wird dafür assembler brauchen und auch nicht auf den gedanken kommen, dass es sowas überhaupt gibt.

-
Bin auch dafür, Anfängern erst prozedurales Programmieren beizubringen und dann erst OOP. Beim Umstieg von C auf C++ kann man den realen und praktischen Nutzen meiner Meinung nach übrigens sehr gut verstehen. Bei komplexeren Projekten wird der C-Programmierer auch seine Daten kapseln und extra Funktionen dafür schreiben (vielleicht muss man ihn auch drauf stoßen, macht ja nix :D)
struct Haus { int hoehe; int breite; }; void Haus_MacheIrgendwas( Haus* h, int bla ) { }Wenn man an dieser Stelle nun Klassen gezeigt bekommt, erkennt man sofort den Nutzen und vor allem den Sinn der OOP.
-
Hi,
das es nötig ist Assembler zu können glaube ich nicht ganz, aber es ist gut, wenn man zumindest grob weiß wie Rechner im innern ticken, dann weiß man, was man vom Rechner erwarten kann.
Das von vielen als kryptisch empfundene an C ist es doch nur für den der von Pascal oder Basic oder... kommt.
Wenn man gleich mit C anfängt, dann geht einem das sicher von Anfang an in Fleisch und Blut über und man vermißt in anderen Sprachen das klare Erscheinungsbild. Das ist ja gerade das schöne an C, daß nicht alles eine Textso0e ist, sondern schön gegliedert mit viel Luft dazwischen.Und welche Sprache ermöglicht (außer vielleicht Pascal/Delphi) noch einen so gleitenden Übergang zwischen nicht oop und oop wie C und C++.
Wobei Delphi ist ja mittlerweile fast Subset-C++ mit Pascal-Notation.Gruß Mümmel
-
Ich brauche ja nur C und Assembler. Ich arbeite direkt mit der Hardware, da brauch ich kein C++, das stört mich nur.
-
Undertaker schrieb:
kommt darauf an, was man mit der programmiererei erreichen will. angenommen einer möchte tolle, dynamische webseiten machen, entscheidet sich z.b. für PHP und ist damit völlig zufrieden.
Dann ist er so ein Spezialist, dass er nicht zum Thema dieses Threads gehört: Jemand der nie was anderes als PHP machen will, sollte natürlich mit PHP anfangen. In 10 Jahren ist er allerdings spätestens Hartz-IV-Empfänger, das muss jeder für sich entscheiden.
Ich dachte wir reden hier über Leute, die -- (Prämisse des Threads) aufgrund der Sprache, mit der sie angefangen haben -- mit unangebrachten geistigen Bildern arbeiten und schlechte Angewohnheiten haben und deshalb schlechte Designs und schlechten Code abliefern.
-
Bashar schrieb:
Undertaker schrieb:
kommt darauf an, was man mit der programmiererei erreichen will. angenommen einer möchte tolle, dynamische webseiten machen, entscheidet sich z.b. für PHP und ist damit völlig zufrieden.
Dann ist er so ein Spezialist, dass er nicht zum Thema dieses Threads gehört: Jemand der nie was anderes als PHP machen will, sollte natürlich mit PHP anfangen. In 10 Jahren ist er allerdings spätestens Hartz-IV-Empfänger, das muss jeder für sich entscheiden.
naja, jeder der programmieren will, hat irgendein ziel vor augen und wird sich dementsprechend eine programmiersprache aussuchen. will jemand z.b. spiele programmieren, dann werden die meisten wohl C++ lernen wollen, weil man irgendwo gehört hat, dass viele spiele in C++ gemacht werden. die wenigsten leute sind aber reinrassige programmiersprachen-freaks und ziehen sich alle möglichen sprachen und konzepte rein. unser rüdiger ist vielleicht so ein fall, aber die sind eher selten.

-
Undertaker schrieb:
naja, jeder der programmieren will, hat irgendein ziel vor augen und wird sich dementsprechend eine programmiersprache aussuchen. will jemand z.b. spiele programmieren, dann werden die meisten wohl C++ lernen wollen, weil man irgendwo gehört hat, dass viele spiele in C++ gemacht werden. die wenigsten leute sind aber reinrassige programmiersprachen-freaks und ziehen sich alle möglichen sprachen und konzepte rein. unser rüdiger ist vielleicht so ein fall, aber die sind eher selten.

Ich bin auch so ein Fall, aber das nur am Rande. Es mag ja sein, dass jeder ein Ziel vor den Augen hat, aber das ist auf lange Sicht meistens irrelevant. Ich hab 1989 angefangen zu programmieren, da gabs noch kein Web, geschweige denn PHP. Heißt das, ich darf nie im Leben was fürs Web machen? Natürlich nicht. Ich bin ja auch nicht Eisverkäufer geworden. Ziele ändern sich im Laufe der Zeit.
-
Hi,
ich hab damals, so gegen 1984 rum oder noch früher ohne jeden Rechner mit Basic angefangen, rein theoretisch. Anschließend hab ich nach einer Schnellbesohlung mit Fortran IV gearbeitet. Nachdem ich es dann endlich geschafft hatte, den absoluten gordischen Knoten zu programmieren, aus dem sich weder ich noch ein anderer noch herr Compiler rausgefunden haben hats bei mir nach dem Lesen kleiner Heftchen der DDR-Informatikreihe über strukturierte Programmierung und die Sprache C klick gemacht. Ab dann war ordentlicheres programmieren angesagt. Erst noch in Fortran. Nach einem kurzen Zwischenversuch mit etwas Asm (brrrr) um Diskettenlaufwerke zurücksetzen zu können und Turbo-Pascal, das mir aber zu kleinlich war (wie können zwie Dinge die das selbe beschreiben, nur unterschiedlich definiert snd nicht compatibel sein?) und ein wenig rumprobieren mit PLM und dBase (an was man so damals rankam) bin ich dann bei C gelandet. Ich muß ehrlich sagen, die Sprache war wie ein Befreiungsschlag für mich. Endlich klar lesbaren schön übersichtlichen strukturierten Quelltext, der genau das macht was ich wollte. Den Goto-Befehl, das eigentliche Grundübel, zumindest in meiner anfänglich ahnungslosen Verwendung habe ich seit dem nicht ein einziges mal wieder verwendet. Von dem bin ich geheilt. Hat mich aber nicht gehindert andere Ferkeleien zu begehen. Beim Versuch, fürs Studium vorhandene Grafik-Beispiele in Fortran umzustricken bin ich an der zu geringen Geschwindigkeit meines Rechners fast verzweifelt. Selbst ein vorzeichenwechsel dauerte ohne Koproz zu lange. Also wurden die Abs und sign-funktionen von Fortran auf Basis von Bitoperationen nachgebildet. Würde mir heute nicht mehr im Traum einfallen und wahrscheinlich würde ich den damaligen quelltext auch gar nicht mehr verstehen. Dann weiter Richtung C++ und über die Meinung eines Bekannten, daß der Umstieg von C nach C++ zwei Jahre dauert ein wenig geschmunzelt. Das bischen Syntaxerweiterung muß doch schnell gelernt sein. Heute
weiß ich, daß er recht hatte. Wenn man von einer normalen Sprache kommt, dauert es wirklich lange, bis man in sich stellenden aufgaben automatisch entsprechende C++-Construkte sieht.
Danach lange Zeit nur Delphi gemacht und diese Sprache, besonders in der ersten Zeit als unübersichtlich und als reinste Zwangsjacke empfunden. Wo war das klare Bild und die elegante Ausdrucksweise von C geblieben. Heute bin ich zum Glück wieder mit beiden Borland-Produkten, Delphi und C++Builder zusammen und muß sagen, daß das eine das andere inspiriert. Nach wie vor sind meine C++-Projekte aber die wesentlich sauberer programmierten. Da weiß ich daß ich das offene Messer in der Hand habe und arbeite sorgfältiger. Beim ach so sicheren Pascal lasse ich mich dagegen schon mal mit aller Wucht in die sichere Hängematte fallen wie das Schwein in die Sch...Gruß Mümmel
-
Bashar schrieb:
Ich hab 1989 angefangen zu programmieren, da gabs noch kein Web, geschweige denn PHP. Heißt das, ich darf nie im Leben was fürs Web machen? Natürlich nicht.
natürlich nicht, aber im normalfall (du bist programmiersprachen-fan, auf dich trifft das jetzt mal nicht zu) würde man erst dann eine neue sprache lernen wollen, wenn man merkt, dass die bisherige lieblingssprache für das neue anwendungsgebiet nicht, oder nur wenig taugt.

-
Hi,
gerade auf die oop trifft das ganz besonders zu, was mir schon mein allererster programmierlehrer damals in tiefsten DDR-zeiten gesagt hat: "Die Kunst besteht im Weglassen".
In einem kleinen Programm das mir nur ein paar Zufallszahlen bereitstellen soll muß ich nicht unbedingt alle Möglichkeiten von Mehrfachvererbung, generischer Programmierung und was weis ich was noch ausprobieren.
Wenn ich immer versuche das Problem mit den einfachsten mir zur Verfügung stehenden Mitteln zu lösen und erst dann zu komplexeren Lösungen greife wenn ich davon signifikante Vorteile habe, ist das sicher kein falscher Zug auf dem Weg zu einem sauberen Programmierstil.Gruß Mümmel
-
Undertaker schrieb:
....
naja, jeder der programmieren will, hat irgendein ziel vor augen und wird sich dementsprechend eine programmiersprache aussuchen....Undertaker schrieb:
...normalfall (du bist programmiersprachen-fan, auf dich trifft das jetzt mal nicht zu) würde man erst dann eine neue sprache lernen wollen, wenn man merkt, dass die bisherige lieblingssprache für das neue anwendungsgebiet nicht, oder nur wenig taugt.

Plädierst Du hier (in einem Thread, der offensichtlich nicht den Status Quo, sondern eine Verbesserung vor Augen hat) wirklich für einen "bewegt sich nur, wenn er unbedingt muss"-Ansatz ?
Sorry, das kann ich nicht als Ideal erkennen. Meine "programmiertechnischen Vorbilder" kennen allesamt zahllose Programmiersprachen und Plattformen und bilden sich permanent weiter. Von einem "Ich will so bleiben wie ich bin"-Kandidaten habe ich noch keine beeindrucken Lösung gesehen.
Gruß,
Simon2.
-
Simon2 schrieb:
Plädierst Du hier (in einem Thread, der offensichtlich nicht den Status Quo, sondern eine Verbesserung vor Augen hat) wirklich für einen "bewegt sich nur, wenn er unbedingt muss"-Ansatz ?
plädieren? aber nein!
es gibt viele die genau so handeln. sie wollen erst wissen 'wofür es gut ist', sonst gucken sie sich das gar nicht erst an.

-
Hi,
man muß durchaus nicht jeden Schmarrn mitmachen, aber es ist durchaus legitim, sich alles mal anzugucken, was man daraus für sich entnehmen könnte.
Mann muß nicht jede neue Programmiersprache lernen, aber bei welchen die neue Gedanken reinbringen sollte man gucken ob einem die dahinter stehende Philosophie nicht was nützen könnte.Gruß Mümmel
-
muemmel schrieb:
ich hab damals, so gegen 1984 rum oder noch früher ohne jeden Rechner mit Basic angefangen, rein theoretisch. Anschließend hab ich nach einer Schnellbesohlung mit Fortran IV gearbeitet.
Ein Real Programmer!

ghorst schrieb:
pascal und c... pascal bietet aus meiner sicht für anfänger eine wesentlich bessere grundlage, da der compiler tatsächlich über vieles meckert oder es schlicht nicht zulässig ist, was in c einfach durchgewunken wird.
Ohne Zweifel ein Quiche Eater...

-
Hi,
gute Programmierer erhält man nicht dadurch, daß man sie in extrem restriktiven Programmierumgebungen an der kurzen Leine hält, sondern in dem man erreicht, daß sie unter maximaler Freiheit aus eigener Erfahrung und Überzeugung freiwillig sauberen Programmierstil praktizieren. Mit Sprachen wie C oder Fortran IV lernt man sowas, mit Pascal lernt man nur dem Compiler gehorchen.
Kinder werden schließlich auch nicht durch in Watte packen sondern durch ausprobieren und kennelernen der eigenen Grenzen optimal aufs Leben vorbereitet.Gruß Mümmel
-
muemmel schrieb:
gute Programmierer erhält man nicht dadurch, daß man sie in extrem restriktiven Programmierumgebungen an der kurzen Leine hält, sondern in dem man erreicht, daß sie unter maximaler Freiheit aus eigener Erfahrung und Überzeugung freiwillig sauberen Programmierstil praktizieren. Mit Sprachen wie C oder Fortran IV lernt man sowas, mit Pascal lernt man nur dem Compiler gehorchen.
Kinder werden schließlich auch nicht durch in Watte packen sondern durch ausprobieren und kennelernen der eigenen Grenzen optimal aufs Leben vorbereitet.Und darum lernt man Babys das Laufen immer mit Stelzen.
-
muemmel schrieb:
Hi,
gute Programmierer erhält man nicht dadurch, daß man sie in extrem restriktiven Programmierumgebungen an der kurzen Leine hält, sondern in dem man erreicht, daß sie unter maximaler Freiheit aus eigener Erfahrung und Überzeugung freiwillig sauberen Programmierstil praktizieren....
Sorry, aber das halte ich für Quatsch.
Allein aus dem Grund (und da hinkt nämlich auch der "Kindervergleich"), dass man beim Programmieren relativ wenig "Rückkopplung" hat:- Man sieht relativ wenig Fremdcode, mit dem man sich vergleichen könnte (im Gegensatz zu Kindern, die andere Menschen laufen sehen .... und zwar besser als sie)
- Viele "Programmierschwächen" treten erst in komplexeren Umfeldern/Anforderungen zutage. Bis aber der "Wald&Wiesen-Programmierer" in ein derartiges Umfeld kommt, hat er sich bereits einen "Fuddelstil" angewöhnt, der nur sehr schwer abzulegen ist.
Mit dem Argument ("maximale Freiheit") sollte man auch C ablehnen und jede Sprache, die einem die Maschinennähe kapselt: Hast Du Dir mal angesehen, wie "in Watte gepackt" man mit einem printf() ist ? Oder mit malloc() ? ...
Gruß,
Simon2.