Programmieren Lernen Ohne Vorkenntnisse
Anzeige
#32
geschrieben 21. Juni 2009 - 15:50
#33
geschrieben 21. Juni 2009 - 18:40
Zitat (W@yne: 21.06.2009, 16:50)
So ist's richtig, erstmal pauschal über Programmiersprachen und Programmierer herziehen...! Wer so "luschige Sprachen" wie C# oder Java benutzt, kann ja auch nichts Brauchbares zustande bringen.
Witzigerweise stehst du mit dieser Meinung keineswegs alleine da. Selbst ein Großer wie Linus Torvalds benutzt eine vergleichbare Argumentation. Nur dass er sich gegen C++ richtet (Linus programmiert bekanntlich in C).
(...) C++ is a horrible language. It's made more horrible by the fact that a lot of substandard programmers use it, to the point where it's much much easier to generate total and utter crap with it. (...) [Quelle]
Übrigens ist sein ganzes Posting höchst unterhaltsam zu lesen, auch wenn ich die Argumentation "Programmiersprache X ist schlecht, weil es zu viele unfähige X-Programmierer gibt" immer noch überzogen finde. Aber das macht wohl gute Rhetorik aus.
Viele Grüße
Def
#34
geschrieben 21. Juni 2009 - 18:48
#35
geschrieben 21. Juni 2009 - 18:49
#37
geschrieben 21. Juni 2009 - 19:56
Zitat (def: 21.06.2009, 19:49)
Zitat (W@yne: 21.06.2009, 20:00)
Okay, ich habe jetzt Folgendes gefunden:
Zitat (W@yne: 21.06.2009, 04:23)
Zitat (W@yne: 21.06.2009, 16:50)
Zur Erklärung: Ich habe zumindest in Bezug auf Java schon viel (berechtigte und unberechtigte) Kritik gelesen, u.a. das, was du oben schreibst (langsam, verbraucht viel RAM). Ich habe aber noch nie vor dir gelesen oder gehört, dass Java "verzwickt" sei (jedenfalls nicht im Vergleich mit C++) und auch nicht, dass C++ ein "wesentlich enger gefasstes Regelwerk" als Java habe. Eher das Gegenteil.
Deshalb nahm ich an, das würde wieder auf das Argument "Java-Programmierern fehlt die 'bare metal'-Erfahrung, ergo erzieht Java zu schlechter Programmierpraxis" hinauslaufen, daher vorhin meine etwas unangemessene Unterstellung, du würdest über Programmierer herziehen. Als du das verneint hast, war also klar, dass du etwas anderes meinst.
Hat mich halt interessiert, weil es immer heißt, Java würde zumindest die Objektorientierung konsequenter durchziehen als C++ und sei auch sonst einfacher als C++. Das steht eben im krassen Gegensatz zu deinen bisherigen Aussagen hier im Thread. Aber wir müssen jetzt auch keine Grundsatzdiskussion anfangen.
Viele Grüße
Def
#38
geschrieben 21. Juni 2009 - 19:58
#39
geschrieben 21. Juni 2009 - 21:33
Ich würde ebenfalls wie schon andere C# oder Java empfehlen, wobei ich stark zu C# tendiere da man damit auf der Windowsplattform nen wirklich umfangreiches Framework bekommt das sich gut ins OS integriert, mit VS auch ne gute IDE und vor allem Zugriff auf moderne Technologien wie LINQ oder wenns mal Richtung GUI geht, dann WPF.
Man darf nicht das Ziel "programmieren lernen" vergessen. Da hat man es mit .Net bzw. Java einfacher weil man erstmal auf ein Programmierparadigma festgelegt ist (objektorientiert), sich z.B. nicht um die Speicherverwaltung kümmern muss. Klassenbibliotheken bekommt die um einiges umfangreicher sind als die Standardbibliothek von C++, usw. Das führt dazu, dass man schneller zu ersten Ergebnissen kommt als Anfänger.
C++ ist ohne Frage eine sehr fähige Sprache. Dadurch das man in C++ aber ohne weiteres prozedual, objektorientiert oder gar funktional programmieren kann, haut man am Anfang gerne alles durcheinander und blickt am Ende gar nichts mehr. Manuelle Speicherverwaltung ist für den erfahrenden Programmierer was tolles, er hat viele Freiheitsgrade, aber nen Anfänger kann man schnell frusten mit Segmentation Faults am laufenden Band weil mal wieder Zeiger ins Nirvana zeigen. Und so gehts weiter, für den Einsteiger ist C++ alles andere als einfach zu erlernen.
Auch wenn das wenig mit der eigentlichen Frage zum Programmieren lernen zu tun hat, aber hier
Zitat
Als Beispiel mal nen paar Dinge aus dem kommenden Standard der echt zeigt das die Weiterentwicklung von C++ meiner Meinung nach in die vollkommen falsche Richtung geht.
template <class T, class ...Args>
T* make_new (Args&& ...args)
{
return new T( *new Args(static_cast<Args&&>(args)) ...);
}
Na, wer kann sofort sagen was der Code macht, ohne groß nachzudenken? Der Codeausschnitt zeigt gut wie mächtig die Sprache ist, Variadic Templates und RValue Referenzen die hier verwendet werden sind sicherlich nette Features, aber da blickt doch kein Mensch mehr durch. Bei einzelnen Funktionen macht man das gerne, mal grübeln was der Code macht, aber doch net wenn der ganze Quelltext so aussieht.
Oder was unterscheidet folgende Lambda Ausdrücke formal gesehen?
[&]() { ... }
[=]() { ... }
Die Funktionalität Funktionen nachträglich löschen und verbieten zu können in der Form
void foo(long) = delete;ist ja wohl auch alles andere als sofort intuitiv erfasst.
Wenn jemand C++ als geeignete Anfängersprache empfiehlt kann ich das echt nicht nachvollziehen.
#40
geschrieben 21. Juni 2009 - 21:43
#41
geschrieben 21. Juni 2009 - 22:03
diese programmiersprachen sind so tierisch aufgeblasen, damit kriegt man jeden anfänger früher oder später zum schreien, weil er von einem berg von funktionen steht, mit denen er nix anfangen kann und die ihn einfach nur verwirren. schaut mal in didaktische fachliteratur.
im grunde ist für einen anfänger was ganz orthogonales sinnvoll. aber mit wenigen unnützen funktionen. da kommt eher sowas wie pyhton oder prolog (kotz!) in frage oder halt das scratch, was ich schon erwähnte. und einem anfänger direkt objektorientierung an den kopf zu werfen - also mal ehrlich leute. das kriegen pädagogen kaum hin, die da eine ausbildung drinne haben, weil das ausgesprochen kompliziert ist. und dann soll sich jemand sowas selber beibringen. am besten noch in java oder c++/c# und dann am besten mit ner IDE wie eclipse oder visual studio. ihr seid des wahnsinns.
natürlich, im grunde kann jeder anfänger sich irgend ne turingvollständige sprache nehmen - und sei es die makrosprache in excel. das geht alles. aber groß was mitnehmen tut man dann nicht, außer, dass man nen schreck fürs leben davonträgt.
#42
geschrieben 22. Juni 2009 - 00:43
Ach LoD, zerstör doch nicht unsere kleine schöne Diskussion mit deiner Didaktik
Das ist der ewig währende Sprachenkrieg, in dem jeder die Sprache seiner Überzeugung verteidigt und die irgendwann mal alle Foren-Server an die Kapazitätsgrenzen treiben wird.
#43
geschrieben 24. Juni 2009 - 17:17
Ich habe vor einen Jahr aufgehört zu porgrammieren und wolte nun eine Sprache neu erlernen.
Sie sollte gut auf Windows wie auf ubuntu(Linux) programmierbar sein.
Und später mir dann auch behiflich sein wenn ich mal am Quellcode einer LinuxDisi rumbastle.
Kennt einer eine.
Ich hätte da an c++ oder C# gedacht.
#44
geschrieben 24. Juni 2009 - 17:28
Dieser Beitrag wurde von W@yne bearbeitet: 24. Juni 2009 - 17:28
#45
geschrieben 24. Juni 2009 - 20:01
Gibts für C ein gutes Buch , bwz. ein openbook bei Galileo Computing?

Hilfe
Neues Thema
Antworten
Nach oben






