Hallo, ich möchte eine Programmiersprache richtig lernen, und ich weiß noch nicht ob für meine Zwecke C oder C++ das richtige ist. Vorweg mal meine Wünsche und mein derzeitiger Wissensstand: -Ich möchte erstmal Komandozeilen-Programme schreiben, später aber auch graphische. -Ich möchte etwas mit Schnittstellen machen, also meine AVR-Projekte via RS232 bzw USB-seriell Wandler mit dem PC vernetzen. -Ich kenne bereits Grundlagen vom programmieren (ich mache z.B. Bascom). -Ich habe mal angefangen C zu lernen, allerdings recht schnell wieder aufgehört, da ich damals leider zu wenig Zeit hatt, es hat mir allerdings sehr viel Spaß gemacht. Visual Basic habe ich auch mal reingeschnuppert, das hat mir allerdings gar nicht gefallen, da das programme schreiben ganz anders war als so we ich es bisher kenne. Ich würde mich über Antworten freuen. Mfg, Nils
Wenn du C++ lernen möchtest, wirst du um C nicht vermutlich drumrumkommen, denn das bildet immer noch die Basis. Aus printf() in C wird in C++ zwar meistens iostream und Gedöhns (was nicht unbedingt besser sein muss), aber an if, while, for und Datentypen etc. ändert das nichts. In jedem Fall würd ich dir empfehlen, anfangs einen Bogen um Klickibunti à la VisualStudio und Borland zu machen und echte Konsolenprogramme zu schreiben. Alles andere verwirrt am Anfang einfach zu sehr. Da werden mir jetzt hundert Moralapostel widersprechen, aber glaubs mir einfach, das sage ich aus meiner Erfahrung als Leiter einer Informatik-AG an meiner Schule.
Hallo, danke für die schnelle Antwort. Ich weiß, bei Programmiersprachen gibt es oft "Glaubenskriege" ;-) Kannst du mir einen gute Editor/Compiler (kostenlos) empfehlen? Ich habe als Lektüre schon "C von A bis Z" angepeilt, da ich über dieses Buch bisher nur gutes gehört habe. Gruß Nils
Mal gesetzt den Fall, dass du dir Grundlagen in C aneignen möchtest: - Absolute Standardlektüre ist Kernighan&Ritchie, 'Programmieren in C' - Als Nachschlagewerk empfehle ich 'C in a nutshell' von O'Reilly. - Dazu am besten noch die Manpages zur Standardbibliothek installieren oder das entsprechende Manual besorgen (auf http://gnu.org durchwühlen) - Compiler nehm ich systembedingt schon immer den GNU GCC, den gibts für Computer (Windoof, Linux, ...) und es gibt einen, mit dem man z.B. für AVR-Mikrokontroller programmieren kann. - Als Editor nehm ich Kate, der gehört zu KDE. Eclipse soll auch gut sein, aber frisst oft viel Speicher etc. Ansonsten gehen natürlich auch vi, Emacs. Müssten alle auch unter Windows laufen. Andere Editoren kenn ich bisher nicht :-)
Ich habe C mit dem (kostenlosen) uralten DOS-Borland-C Compiler gelernt. Ich persönlich stimme sven P. absolut zu. Für Anfänger ist die Programmierung von Windows-GUIs nicht empfehlenswert.
C und C++ sind halt schon sehr ähnlich. Ich würde zunächst mal C lernen. Sobald deine Projekte gross und unübersichtlich werden, ist es Zeit, die objektorientierten Erweiterungen von C anzuschauen. Nennt sich dann C++ :-) (nicht Hauen, aber im Grunde ist es doch so)
Naja, im Grunde ist C++ ja 'nur' ein erweitertes C. Der ganze Sprachablauf bleibt ja identisch, lediglich das 'OOP' wurde oben draufgesetzt. Man kann übrigens auch in C sehr übersichtliche und riesige Projekte ansetzen, das ist überhaupt kein Problem. Genauso kann man aber mit der achsotollen OOP richtig dicke Scheiße bauen. Viele Leute (insbesondere Lehrer) neigen dazu, auf Biegen und Brechen OOP einzusetzen. Man kann auch in C objektorientiert programmieren, es kommt immer drauf an, was man vor hat. Im Übrigen sind OOP und ihre Auswüchse konkret in C++ auch nicht das Allheilmittel, soll heißen, C++ ist kein besseres C, wenn auch das manche Leute immer wieder zu vermitteln versuchen. So manches ist da im Laufe der Zeit schief gegangen oder hat sich im Nachhinein als 'unpraktikabel' erwiesen, insbesondere, wenn man z.B. von anderen OOP-Sprachen umsteigt, wundert man sich öfter mal :-)
Rein sprachlich wurde OOP oben drauf gesetzt, das stimmt. In C kann man viel Blödsinn bauen, und in C++ hat man noch viel mehr Möglichkeiten dazu; das ist auch richtig. Aber wenn man vernünftig in C++ programmiert (und nicht nur die zusätzlichen Fehlermöglichkeiten nutzt), arbeitet man doch ganz anders als in C. Deshalb bestehe ich schon darauf, dass es bei C++ um mehr geht als ein paar neue Features.
Sven P. wrote: > C++ ist kein besseres C Doch doch. Wer bei C-Programmen ohne zwingenden Grund nicht den C++-Compiler nimmt, ist selbst schuld. Es sind so manche Kleinigkeiten, die man auch als C-Programmierer nutzen kann, wie z.B. die typisierten enums, die heute im Forum angesprochen wurden. Andersrum scheuen sich ja viele Programmierer auch nicht davor, mit Klassen aber ohne Objektorientierung zu programmieren ;-) > manche Leute immer wieder zu vermitteln versuchen. So manches ist da im > Laufe der Zeit schief gegangen oder hat sich im Nachhinein als > 'unpraktikabel' erwiesen, insbesondere, wenn man z.B. von anderen > OOP-Sprachen umsteigt, wundert man sich öfter mal :-) Das kann man ohne Probleme ignorieren, hat ergo praktisch keine Nachteile (solange man nicht versaute Projekte Anderer uebernehmen muss :-().
Naja, ich nehm seit der Steinzeit einen C-Compiler und komme damit parat :-) C++ ist kein besseres C, C++ ist was grundlegend Anderes. Auch wenn vieles gleich aussieht, sag ich ja...
Meine Meinung dazu: Wer C++ lernen will nachdem er bereits C kann, braucht richtig viel Selbstbeherrschung und Durchhaltevermögen, sonst wird das nix. Schlimmstenfalls hörst du mittendrin auf, und kannst nachher nur diese schreckliche Sprache namens "C/C++". Und was ich darin schon an Programmen gesehen hab, grenzt oft an "Verbrechen gegen die Menschlichkeit"... (Tip an Personaler: Bewerbungen mit "C/C++" gleich in die Rundablage...) Lern lieber zuerst C++ (so richtig, auch mit dem dazu nötigen Quäntchen Theorie). Danach C dazuzulernen ist wesentlich einfacher, und der Compiler unterstützt einen sogar noch dabei.
Peter Stegemann wrote: > Sven P. wrote: > >> C++ ist kein besseres C > > Doch doch. Seh ich nicht so. > Wer bei C-Programmen ohne zwingenden Grund nicht den > C++-Compiler nimmt, ist selbst schuld. Schon. Aber dann programmiert er immer noch C mit einem C++ Compiler und nicht C++. Das ist eines der größten Missverständnisse heutzutage: Das C++ im Prinzip C ist, mit ein bischen was dazu. Wer richtig C++ programmiert, programmiert ganz anders als er es in C tun würde. Persönlich rate ich auch zuerst zu C++ zu greifen. Alleine die Zeit, die man sich beim Lernen durch einen funktionierenden String-Datentyp spart, ist in Algorithmen-Lernen wesentlich besser investiert. Und in die Niederungen von C-Strings kann man immer noch im Lauf der Zeit vordringen, wenn man den ersten Teufelskreis, dass man am Anfang am besten alles gleichzeitig ins Hirn reinstopfen müsste, hinter sich gelassen hat.
> C++ ist kein besseres C, C++ ist was grundlegend Anderes.
Wie bei C#, das sieht auf den ersten Blick auch aus wie C, da for, if,
switches, Klammern, etc. erst mal identisch aussehen.
Karl heinz Buchegger wrote: > Das ist eines der größten Missverständnisse heutzutage: Das C++ im > Prinzip C ist, mit ein bischen was dazu. Wer richtig C++ programmiert, > programmiert ganz anders als er es in C tun würde. Ich habe in C schon sehr modular programmiert, der Umstieg auf C++ war da sehr fliessend, "OOP" keine voellig neue Welt. Natuerlich hat sich mein Stil durch die Moeglichkeiten, die C++ bietet, nochmal stark veraendert - das wirkt sich aber auch darauf aus, wie ich heute in C programmieren wuerde. > Persönlich rate ich auch zuerst zu C++ zu greifen. Alleine die Zeit, die > man sich beim Lernen durch einen funktionierenden String-Datentyp spart, > ist in Algorithmen-Lernen wesentlich besser investiert. Wer Stringverarbeitung "von Hand" gelernt und verstanden hat, hat die wichtigsten Grundlagen drauf. Gerade das sollte man nicht ueberspringen. Dann muss man auch nicht im Forum fragen, wie man einen int in Zeichen konvertiert um sie auf dem Display auszugeben... Welche Algorithmen soll man denn als Anfaenger lernen? Direkt beim Ringbuffer einsteigen? Oder bei binaeren Baeumen?
Hallo, danke für die zahlreichen Antworten. Ich habe mich für C entschieden, ich denke alleine aus dem grund, da man dann alle Grundlagen lernt, riesige Programme will ich in absehbarer Zeit sowieso nicht schreiben und mir macht programmieren einfach Spaß :-) Kann jemand etwas zur Lektüre "C von A bis Z" sagen? Was für Compiler/Editoren gibt es (Links?), Visual C++ möchte ich nämlich nicht nehmen. Gruß Nils
Entweder gcc unter Linux, oder wenn es Windows sein soll: auch dort gibt es den gcc in verschiedenen Varianten. Eine davon ist mingw. Falls du mal vorhast, irgendwann nicht nur Konsolenprogramme zu machen, könnte es interessant sein, das aktuelle Qt zu nehmen. Seit neuestem ist es endlich so frei, daß man damit auch kommerzielle Programme erstellen kann, ohne Geld abdrücken zu müssen. Mit Qt wird unter Windows praktischerweise der mingw gleich mit installiert.
ach ja, Editor: Mit dem Qt wird eine kliene IDE mit installiert, inkl. Editor. Ich selber nehme schon immer und wahrscheinlich noch in hundert Jahren den EMACS, der ist aber sicher nicht jedermanns Geschmack. Es gibt aber noch Tausend andere, z.b. notepad++ soll ganz brauchbar sein.
Gibt es denn auch ein Programm welches Editor und Compiler in einem hat? Ich hatte irgendwann mal ein solches, ich glaube es hieß dev-cpp, das hat aber nicht immer gut geklappt.
Nils S. wrote: > Kann jemand etwas zur Lektüre "C von A bis Z" sagen? > Was für Compiler/Editoren gibt es (Links?), Visual C++ möchte ich > nämlich nicht nehmen. Wo ist das Problem bei Visual C++? Der Compiler als auch IDE sind fortschrittlich und in der Express Version sogar kostenlos!
Hinter dev-cpp steckte - der gcc. Ich hatte es vor längerem mal angesehen, da war der gcc aber hoffnungslos veraltet; keine Ahnung, ob das jetzt besser ist.
Unter Linux - eh klar - GCC. Unter Windows nimm lieber LCC http://www.cs.virginia.edu/~lcc-win32/ - alles drinnen, auch GUI ...
Mit Dev C++ und "C von A bis Z" hab ich´s auch gelernt. Nach ein paar Wochen schon ging´s dann an SDL und man konnte einfache Spielchen basteln, ist also alles sehr übersichtlich. Es waren aber auch schon Vorkenntnisse vorhanden (verschiedene Basic-Dialekte, PHP, Javascript), so ganz von Grund auf könnte es auch ein bisschen länger dauern ... Auch wenn DEV C++ wohl nicht mehr gepflegt wird, für die ersten Schritte genügt es allemal. Später kann man immer noch auf die Monsteranwendungen VS oder Eclipse umsteigen.
@zwieblum: Die Seite sieht gut aus. @Chris: Das Buch ist also zu empfehlen? Ich habe schon oft gehört das sei eins der besten.
kernighan-richie ist noch immer die bibel. auf der lcc-seite sind auch 2 gute C-kurse drauf.
>@Chris: Das Buch ist also zu empfehlen? Ich habe schon oft gehört das >sei eins der besten. Ist schön, um schnell zu lernen. Nicht lange denken sondern machen. Compiler, eventuell im Paket im IDE seiner Wahl herunterladen und anfangen http://openbook.galileocomputing.de/c_von_a_bis_z/ durchzuarbeiten. Wenn's begeistert wäre es nätürlich fair es auch zu kaufen.
Ich würde es alleine deshalb schon kaufen, weil ich am lieber Bücher lese als irgendein PDF am PC, lieber was was man in die Hand nehmen kann. Ich werde es heute im Buchladen vorbestellen.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.