Einstieg in die Programmierung
-
Cybertec schrieb:
Wenn ich etwas lernen will, dann mach ich das, und lern nicht vorher erst was anderes, das ergibt gar keinen Sinn.
Ja doch schon. Bevor man Fußball lernt, lernt man laufen. Bevor man Gleichungen löst, lernt man rechnen. Bevor man schreibt, lernt man lesen.
-
Deine Vergleiche hinken aber ganz schön, meinste nicht?
Aber wenn du es drauf anlegst, erklär bitte genau was der Vorteil daran sein soll damit das jemand so machen soll.
Ich könnte es verstehen wenn jemand sagt das er das Konzept von OOP lernen will, dazu muss man wirklich nicht C++ nehmen, da würde auch Python usw. reichen.
-
Cybertec schrieb:
Ich könnte es verstehen wenn jemand sagt das er das Konzept von OOP lernen will, dazu muss man wirklich nicht C++ nehmen, da würde auch Python usw. reichen.
Riou schrieb:
Ich mach mir schon eine Weile gedanken Anzufangen mit programmieren, weil ich in der Berufsschule schon einen kleinen Einblick darin hatte und es mir da sehr gefallen hat, mein Problem ist einfach nicht wie ich damit beginnen soll, also welche Sprache ich für den Anfang nehmen soll.
Er will anscheinend das Konzept Programmieren lernen. Da gleich mit einer der schwierigsten Sprachen anzufangen, ist meistens nicht sinnvoll.
-
cooky451 schrieb:
Tipp schrieb:
Die Frage sollte man besser umstellen.
Lieber nicht, dann kommt da so ein Quatsch wie Delphi *hust* aus der Versenkung.
stimmt. Ich hab mit Fortran angefangen, das macht es aber nicht gut. Ich empfehl immer C.
-
Das Problem ist, wenn man einmal eingestiegen ist kommt man so schnell nicht wieder davon weg. Ich würds mir lieber zweimal überlegen...
-
Cybertec schrieb:
Aber wenn du es drauf anlegst, erklär bitte genau was der Vorteil daran sein soll damit das jemand so machen soll.
Nun, es gibt zwei Ansätze C++ zu lernen:
1. Von low-level auf. Dann lernt man aber eigentlich C, und es ist viel schwieriger Hilfe zu bekommen, weil alle mit std::string und std::cout ankommen. Zudem lernt man ja auch nur Dinge, die man mit C auch gelernt hätte.
2. Direkt "high-level" mit string, vector und cout. Da passieren dann aber zwangsweise magische Dinge. (Man versteht weder Operatorüberladungen, noch Klassen, noch dynamische Speicherverwaltung noch Templates.)Ich würde also Weg 1 bevorzugen, wenn da nicht die genannten Hürden wären. Also C.
-
Tipp schrieb:
Die Frage sollte man besser umstellen.
Mit welcher Sprache habt ihr angefangen zu programmieren?
BASIC, würde ich aber nicht empfehlen. Wie bereits gesagt: Wenn man C++ lernen will, dann sollte man C++ lernen.
-
Vielen Dank für die rege Beteiligung.
Der Grund für den Thread war auch der, da ich wisse wollte ob man einem Anfänger vllt doch mehr zu einer anderen Sprache rät, wie beispielsweise C#.
C wird zwar auch oft genannt, aber ich weiß noch nicht zurecht.
-
Dann solltest du aber eher nicht in einem Sprach spezifischen Forum fragen. Hättest du in einem C#-Forum gefragt hätten dir wahrscheinlich fast alle abgeraten.
-
Also abgeraten von C/C++ und geraten zu C#
-
Was willst du denn mal proggen können? Danach musste die Sprache wählen. Oder fängst willst du es wirklich einfach so anfangen ohne eine bestimmtes Ziel?
-
C# ist sicher besser für einen der noch nie programmiert hat.
-
Das ich in keinem spezifischen Forum fragen sollte, ist mir klar.
Das hatte ich auch schonmal gemacht, dort hatte man mir C++ empfohlen.Mein Ziel ist es eig wirklich zu lernen, ein Ziel was ich mal programmiert haben will, hab ich nicht. Klar so gedanken wie ein Spiel sind da, aber was ich mir da vorstelle ist zu hochgegriffen, als das ich es mir als wirkliches Ziel setzten könnte.
Ist halt so die Sache, dass C++ so mächtig sein soll klingt halt langfristig gesehn sehr interessant
-
Nimm was dir gefällt. (oder wofür du ein gutes Buch findest) Ich finde man kann mit fast jeder Sprache Programmieren lernen. Jede Sprache (bis auf ganz neue und ganz exotische) wird schon mal einen Anfänger gehabt haben der damit Programmieren gelernt hat.
Und außerdem kannst du ja später auch weitere Sprachen lernen. Wenn du mit C++ anfängst heißt das ja nicht das du nicht später PHP lernen kannst und damit Webseiten programmierst.
Also setzt dich nicht bei der Wahl nicht unnötig unter Druck und fange mit dem an was dir zusagt.
-
Riou schrieb:
C++ Objektorientiertes Programmieren von Anfang an - Helmut Erlenkötter (rororo Computer)[/b]
So kennt jemand eins davon?
Ja, das zitierte kenne ich.
Es ist aber kein Buch das ausreicht um die gesamte Sprache zu lernen, dafür ist es im Taschenbuchformat mit geschätzt vielleicht 150 Seiten viel zu dünn.
Auch gibt es von Erlenkötter noch ein Buch für C und ich denke, daß C++ Buch baut auf diesem auf.
Denn in diesem C++ Erlenkötterbuch wird er Schwerpunkt auf die Objektorientierte Programmierung gelegt und nicht auf die Grundlagen wie Schleifen und If Anweisungen.Dieses Buch erklärt die ganze Sache zwar einfach, aber es reicht nicht aus, der Stoffumfang von C++ ist viel größer. Das Buch müßte in seinem Stil etwa 10 mal so dick sein um C++ halbwegs abzudecken.
Du wirst also ein anderes C++ Buch nehmen müssen.Ein ordentliches C++ Buch kostet schon seine > 40 € und ist nicht für ein Taschenbuch um die 10 € zu haben.
Zu deinem Vorschlag mit C, wäre es denn einfacher zu lernen als C++ und wie schwer wäre später der übergang zu C++?
Ob C einfacher ist hängt von dir ab ob du die Konzepte von C verstehst.
Der Sprachumfang ist aber auf jedenfall kleiner, womit es schneller erlernbar ist und die Grundlagen die du da lernst werden dir später in C++ von großem Nutzen sein, weil du dann auch die abstrahierten Konzepte von C++ und der OOP besser verstehen kannst.
z.B. wirst du eine Vorstellung davon haben, wie Objektlisten im Speicher abgelegt werden.
C ist hier eine sehr große Hilfe, ich würde also auf alle Fälle vorher C lernen.
Im Beruf wirst du C sowieso können müssen, denn in der Embedded Programmierung wird z.b. immer noch in reinem C programmiert und nicht in C++.
Für Low Level Sachen ist C auch immer eine große Hilfe.
Es schadet also auf keinen Fall.Zur Frage der Schwierigkeit später zu C++ wechseln denke ich daß es mit den Grundlagen in C einfacher ist, aber du wirst ordentliche Bücher brauchen die vor allem den Schwerpunkt darauf setzen, wie Objekt Orientierte Programmierung funktioniert.
Dieses Konzept solltest du verstehen, wenn du später in C++ und nicht C++ in C programmieren willst.Prinzipiell hängt die Schwierigkeit für den Wechsel von C zu C++ also davon ab, welches C++ Buch du später kaufst, liest und durcharbeitest.
Nimm C, das ist ganz klar meine Empfehlung.
Und als Buch solltest du dieses nehmen:
http://www.amazon.de/Programming-Language-Prentice-Hall-Software/dp/0131103628/Es gibt davon auch eine deutsche Ausgabe:
http://www.amazon.de/Programmieren-Reference-Manual-deutscher-Sprache/dp/3446138781/
-
Cybertec schrieb:
Deine Vergleiche hinken aber ganz schön, meinste nicht?
Aber wenn du es drauf anlegst, erklär bitte genau was der Vorteil daran sein soll damit das jemand so machen soll.
Wer C++ zuerst lernt, der übt nicht besonders viel Zeigerarithemtik, sofern es ein gutes C++ Buch ist.
Am Ende hat das den Nachteil, daß man weniger durchschaut wie C++ und die OOP alles abstrahiert.
Zeigerarithmetik ist hier der Schlüssel für dieses Hintergrundwissen, aber um diese vernünftig zu lernen nimmt man C und nicht C++, weil C den Benuzter eben dazu zwingt die Zeigerarthmetik zu nutzen und durch viel Übung dadurch zu beherrschen.
In C++ wird man kaum im Traum darauf kommen, den ganzen Weg via Zeigerarithmetik zu lösen, wenn dafür ganz andere Mittel aus der OOP zur Verfügung stehen.
C++ verleitet also dazu, das Thema Zeigerartihmetik nicht tiefgründig genug bis zur Beherrschung zu lernen, so daß man das Konzeot im FF beherrscht und das hat dann später Nachteile weil man aufgrund wagem Wissen über die Zeigerartithmetik und damit auch das was unterhalb der Abstrahierung in OOP abläuft sich darum keine Gedanken macht oder mehr machen möchte.
-
cooky451 schrieb:
Cybertec schrieb:
Aber wenn du es drauf anlegst, erklär bitte genau was der Vorteil daran sein soll damit das jemand so machen soll.
Nun, es gibt zwei Ansätze C++ zu lernen:
1. Von low-level auf. Dann lernt man aber eigentlich C, und es ist viel schwieriger Hilfe zu bekommen, weil alle mit std::string und std::cout ankommen. Zudem lernt man ja auch nur Dinge, die man mit C auch gelernt hätte.
2. Direkt "high-level" mit string, vector und cout. Da passieren dann aber zwangsweise magische Dinge. (Man versteht weder Operatorüberladungen, noch Klassen, noch dynamische Speicherverwaltung noch Templates.)Ich würde also Weg 1 bevorzugen, wenn da nicht die genannten Hürden wären. Also C.
Treffender hätte ich es auch nicht formulieren könnne, ganz genau so sehe ich das auch.
Daher ganz klar C, da ist der Sprachumfang abgegrenzt und die C Leute kennen ihre Sprache, man wird also nicht mit std::string usw. beschmissen.
-
Riou schrieb:
C wird zwar auch oft genannt, aber ich weiß noch nicht zurecht.
Sie es doch auch einfach mal praktisch & pragmatisch.
Um C++ zu beherrschen brauchst du mehr als 10 Jahre, das führt zu der Frage wann willst du damit anfangen erste ordentliche Programme zu schreiben?
Für C brauchst du weniger als ein Jahr und kannst dich dann schon auf andere Programmierkonzepte wie z.B. Datenstrukturen und Algorithmen konzentrieren um dann im 2. Jahr schon ordentliche Programme schreiben zu können.
Solltest du aber C++ lernen und schon vor diesen 10 Jahren versuchen ordentliche Programme zu schreiben, dann ist die Gefahr groß, daß du dir beim Programmieren aufgrund der fehlenden Erfahrung mehrmals ins Bein schießt und am Ende hast du ein Programm, daß man viel besser hätte lösen können, wenn du noch ein paar Jahre mehr ins lernen investiert hättest, so daß du auch Konzepte mit deinem Wissen und deiner Efahrung abdeckst, die man zwar nicht so häufig braucht, aber bei der ein oder anderen Aufgabe zu besserem Code führen.
-
Nimm C schrieb:
Um C++ zu beherrschen brauchst du mehr als 10 Jahre, das führt zu der Frage wann willst du damit anfangen erste ordentliche Programme zu schreiben?
Das führt zu der Frage, wieso nicht gleich mit Assembler anfangen, Grundkenntisse etwa 8 Wochen oder schneller und man kann sich dann auch gleich mit Algorithmen und Modulen usw. beschäftigen und hätte nach ein bis zwei - oder drei Jahren Fleiß hervorragende Programmierexpertise und braucht vor Zeigertohuwabohu sowieso keine Angst mehr haben. Für Webgeschichten wäre auch Haskell super, ganz zu schweigen von den Taschenrechnerqualitäten des Ghci-Interpreters. Aber es dauert bei Haskell eine Weile, bis man überhaupt irgendetwas versteht, vorher muß man eben viel auswendig lernen, und Geduld haben.
Da C sowieso eine Untergruppe von C++ ist, und für diverse hardwarenahe Sachen standard ist, kann man mit C auch nicht viel falsch machen, außer OO und Co nicht richtig zu verstehen.