Buch zum OOP?

masta

Erfahrenes Mitglied
Guten Tag,

ich habe heute diverse Bücher empfangen,
die sich mit der Programmiersprache C beschäftigen.
Leider wird in diesen Büchern das Thema Objekt Orientierte Programmierung kaum bzw. gar nicht angesprochen.
Ich würde mich wahnsinnig über ein paar Buchtipps freuen die
eine ausführlich Dokumentation über OOP bieten.
Dazu noch eine Frage, welches Programm sollte ich benutzen Borland oder Microsoft?

Gruss Patrick...
 
Original geschrieben von masta
Guten Tag,

Dazu noch eine Frage, welches Programm sollte ich benutzen Borland oder Microsoft?

Keins von beiden.

Um C++ zu lernen bedarf es keiner IDE. Sie ist sogar hinderlich.
Zudem kosten diese beiden Programme eine menge Geld.
Nimm den freien Borland Compiler oder andere freie Compiler.
z.b gcc

http://www.mut.de/leseecke
C++ in 21 Tagen ist ganz gut und kannst dir da herunterladen :)
 
ich habe heute diverse Bücher empfangen,
die sich mit der Programmiersprache C beschäftigen.
Leider wird in diesen Büchern das Thema Objekt Orientierte Programmierung kaum bzw. gar nicht angesprochen.
Das könnte unter anderem daran liegen, dass C auch kaum bzw. gar nicht objektorientiert ist. ;)
Wir haben hier in der Rubrik "Literatur" ein paar Bücher über C++, die sich auch teilweise schwerpunktmässig auf objektorientiertes Programmieren festlegen - beispielsweise kann ich dieses hier nur empfehlen. :)

Zur zweiten Frage: Für den Anfang reicht wirklich einer der kostenlosen Compiler, eine zu komplexe Entwicklungsumgebung wie Visual C++ oder der C++ Builder ist am Anfang meistens einfach zu verwirrend - abgesehen von dem Preis.
DevC++ ist schon sinnvoller zum Anfangen und zum Lernen: IDE mit Syntax-Highlighting und GCC als Compiler.
 
Vielen Dank für die Empfehlungen,
leider finde ich in meinen Büchern nur sehr graue Theorie,
wobei mir alles schonmal vor den Augen getreten ist beim erlernen von PHP. Würde gerne grafisch was machen wie zB. ein simples EMail Programm für Windows. Und nicht diese langweiligen Ausgaben in der Dos-Prompt.

Gruss Patrick...
 
Wenn Du Programme schreiben willst, die unter Windows laufen und mit Fenstern ausgestattet sind, kannst Du das auch unter anderem mit DevC++ machen. Allerdings kannst Du dabei nur über API-Funktionen Fenster erzeugen - und das ist teilweise ziemlich umständlich.
Zum anderen gibt es natürlich Umgebungen wie Visual C++ oder den C++ Builder, die einem dabei eine Menge an Arbeit abnehmen. Aber auch damit wirst Du um die Grundlagen der dahinter liegenden Programmiersprache nicht herumkommen. Also ist es wichtig, die Sprache an sich erstmal zu kennen, bevor man sich solchen anspruchsvolleren Projekten zuwendet. Deswegen wird es sinnvoller sein, erstmal mit Konsolenanwendungen die Sprache selbst zu lernen - und auch diese Programme können komplex genug werden.
 
Original geschrieben von masta
Vielen Dank für die Empfehlungen,
leider finde ich in meinen Büchern nur sehr graue Theorie,
wobei mir alles schonmal vor den Augen getreten ist beim erlernen von PHP. Würde gerne grafisch was machen wie zB. ein simples EMail Programm für Windows. Und nicht diese langweiligen Ausgaben in der Dos-Prompt.

Gruss Patrick...

Irgendwie seltsam das keiner Consolen Programme erstellen will.
Denn mit die hochwertigsten Programme sind konsolen Programme.
Ok ich gebe zu unter Windows arbeite ich auch nicht gern mit DOS Programmen, aber das ändert nichts an der Tatsache das eine UI egal ob es eine GUI (Fernsterln / ncurses Consolen GUI) ist oder die Konsole eigentlich in vielem nur nebensache ist.
u.a die besten & umfangreichen Programme sind Konsolenprogramme siehe fetchmail bzw vim / emacs & mutt.
Die Userschnittstelle ist doch nicht das wichtige beim Programmieren lernen.
Sie ist sogar so unwichtig das mann sie mit einem GUI Builder zusammenklicken kann.
Mag sein das es vielen komisch vorkommt, aber ich vertrete die Ansicht das GUI Programmierung beim Lernen von Programmiersprachen eher hinderlich ist.

Grund ist mann kann beim Lernen noch nichts mit Trennung von Layout und Logic anfangen, zudem arbeitet mann mit Messageque ohne es zu merken. Grade solch sehr intitutiven IDEs wie Borland C++ Builder machen es einigen möglich Events abzufangen ohne! überhaupt zu verstehen wie dieses im Betriebssystem / GUI System implementiert ist.

Sorry aber ich habe eine laaaaange zeit Konsolen Programme programmiert, und mache das immer noch gerne wenn es sich anbietet.
Doch auch wenn ich GUIs programmiere lasse ich lieber die Finger von GUI Buildern. Mann ist etwas langsamer aber mann hat die komplette Kontrolle über seinen Code und das ist mehr wert.

Also mein Tipp, schreibe eine Weile nur Konsolenprogramme und konzentrier dich auf die Grau Theorie bei OOP.
Ohne das Grundwissen (PHP OOP Wissen ist nicht wirklich hilfreich hierbei) wirst du immer wieder bei Dingen ins stottern kommen wo OOP Cracks z.b einfach die polymorphen Eigenschafften betreffender Objecte nutzen können.

Ich habe einige Programmierer kennengelernt, und bei vielen merkt mann das sie selbst nach Jahren nicht wirklich OOP kapiert haben.
Grund ist nicht dummheit oder unerfahrenheit sondern einfach zuwenig hintergrundwisse.

Aber bin mal gespannt was ihr dazu denkt :)
 
Original geschrieben von Lirion

und auch diese Programme können komplex genug werden.

jau es gibt konsolenprogramme die von der komplexität an grosse Office / Graphiklösungen herankommen.

nur spielen jene Programme auf Windows eine untergeordnete Rolle.

Aber denk mal z.b nur an den Apache webserver. Der bestizt gar keine GUI und ist x mal so komplex wie z.b Photoshop
 
Die Userschnittstelle ist doch nicht das wichtige beim Programmieren lernen.
Sie ist sogar so unwichtig das mann sie mit einem GUI Builder zusammenklicken kann.
Mag sein das es vielen komisch vorkommt, aber ich vertrete die Ansicht das GUI Programmierung beim Lernen von Programmiersprachen eher hinderlich ist.
Das seh ich dann doch etwas anders. Gerade die Benutzerschnittstelle ist nicht ganz unwichtig, weil das bei dem Grossteil der Software, die so auf dem Markt herumschwirrt eben das Frontend ist, dass überhaupt erst eine Interaktion mit dem Benutzer möglich macht. Natürlich sind die Aktionen im Hintergrund, von denen der Benutzer nichts mitbekommt wichtiger, aber ganz unwichtig ist diese Schnittstelle nicht wirklich.

Grade solch sehr intitutiven IDEs wie Borland C++ Builder machen es einigen möglich Events abzufangen ohne! überhaupt zu verstehen wie dieses im Betriebssystem / GUI System implementiert ist.
Das ist leider wahr, viele benutzen den C++ Builder, um sich "mal schnell" eine komplexe C++-Anwendung zusammenzuklicken - ohne wirklich die Sprache zu können. Ich mag den C++ Builder zwar, und richtig eingesetzt hat man damit auch ein extrem gutes Programmierwerkzeug an der Hand, welches richtig eingesetzt sehr produktiv sein kann und viel Arbeit abnimmt (beispielsweise bei der lästigen Erstellung der Oberfläche, die mit API eine echte Qual ist) - aber viele setzen ihn leider nur noch ein, um mal schnell und ohne viel Hintergrundwissen eine C++-Anwendung zusammenzuklicken. Wenn es echt nur darum geht, sollte man doch lieber zu VB greifen, das ist einfach besser geeignet dafür. ;)

Doch auch wenn ich GUIs programmiere lasse ich lieber die Finger von GUI Buildern. Mann ist etwas langsamer aber mann hat die komplette Kontrolle über seinen Code und das ist mehr wert.
Da kannst Du sagen, was Du willst - die wie Du selbst sagst "überflüssige" Erstellung der Benutzerschnittstelle geht damit einfach schneller, so dass man sich mehr auf die wichtigeren Dinge konzentrieren kann. Ich hab lieber eine komfortable Möglichkeit, meine Windows-Anwendungen zu gestalten, als mit API immer wieder tippen, debuggen, ansehen, und wenn es nicht passt nochmal anzufangen.

Ich habe einige Programmierer kennengelernt, und bei vielen merkt mann das sie selbst nach Jahren nicht wirklich OOP kapiert haben.
Grund ist nicht dummheit oder unerfahrenheit sondern einfach zuwenig hintergrundwisse.
Es gibt auch Programmierer, die zwar in der Theorie absolut geniale Informatiker oder Mathematiker sind - aber in der Praxis leider absolut nicht klarkommen. Dann wird in Visual Basic mit endlos vielen Sprungmarken programmiert, und letztenendes kommt dabei ein Ergebnis raus, das nur noch der Verantwortliche dafür versteht - oder eben auch nicht. :rolleyes:
Also nicht nur Theorie, das kann genau so nach hinten losgehen. :)

Aber denk mal z.b nur an den Apache webserver. Der bestizt gar keine GUI und ist x mal so komplex wie z.b Photoshop
Das glaube ich nun nicht gerade, die Algorithmen, die gerade bei Grafikprogrammen im Hintergrund ablaufen, um beispielsweise einen Weichzeichner oder ähnliches zu berechnen sind schon nicht ganz ohne.

jau es gibt konsolenprogramme die von der komplexität an grosse Office / Graphiklösungen herankommen.

nur spielen jene Programme auf Windows eine untergeordnete Rolle.
Auch nicht ganz richtig. Natürlich gibt es Anwendungen unter Windows, die keine eigenen Fenster haben und noch nicht einmal mit einer DOS-Schnittstelle Eingaben vom Benutzer verlangen. Aber die haben nicht wirklich eine untergeordnete Rolle, sondern existieren weiterhin in Form von DLLs. Und aus denen besteht fast das ganze Windows API, also sind die schon ziemlich wichtig.

Aber bin mal gespannt was ihr dazu denkt :)
Das hast Du jetzt davon. :)
 
-

Mann ist etwas langsamer aber mann hat die komplette Kontrolle über seinen Code und das ist mehr wert.
Wenn es nach dem OOP Prinzip geht, darf man auch gar nicht hinter die Kulissen einer Komponente/Klasse gucken. Es ist doch gerade von Vorteil, dass die Komponente von allein existieren und sich verwalten kann. Da sehe ich keinen Nachteil.

Wichtig bei der Entwicklung mit einer IDE ist, dass man darauf achtet, nach dem EVA-Prinzip zu programmieren. Strenge Trennung von Kommunikation mit dem Benutzer und der Verarbeitung der Daten.

Aber zum erlernen der Syntax langt es vollkommen, wenn du erstmal bei Konsolenprogrammen bleibst.
 
Vielen Dank für eure Ratschläge,
werde hier im Forum immer wieder überrascht,
wieviele hilfsbereite Menschen es doch gibt.
Zurück zum Thema:

Da ich mich leider auf ein Selbstudium beschränken muss,
würde ich mich freuen wenn Ihr mir ein paar Tipps zu Lektüren
oder gar ein Selbststudium geben könntet.
Ich bin nun im Besitz von folgenden Büchern:

Programmieren lernen für Teens mit C
(Bernd Brügemann, Verlag Addison-Wesley)

Dieses Buch bestellte ich im glauben das es mir den Einstieg
in C erleichtern würde. Weil ich bereits einige PHP Bücher
studiert habe und mir es am Anfang sehr schwer fiel die Thematik zu
verstehen.
Doch nach den ersten 70 Seiten muss ich sagen das ein Einstieg in PHP
sich wirklich gelohnt hat.

Desweiteren besitze ich das Buch:

C-Programmierung lernen
(Andre Willms, Verlag Addison-Wesley)

Dieses werde ich dann anschließend in Angriff nehmen.

Wie geht es danach weiter? Mich interessieren Datenbankanbindung und die Erstellung von grafischen Oberflächen.

Danke für Tipps und Anregungen.

Gruss Patrick...
 
Zurück