Ich wollte objektorientierte Programmiersprache lernen, ich möchte nicht, dass ich das gesamte Konzept von OOP kenne. Kann mir jemand sagen, welche Sprache ich lernen soll?
Ich wollte objektorientierte Programmiersprache lernen, ich möchte nicht, dass ich das gesamte Konzept von OOP kenne. Kann mir jemand sagen, welche Sprache ich lernen soll?
Antworten:
Einige weitere Vorschläge:
Das beste Buch, das ich je über OOP gelesen habe, ist Bertrand Meyers objektorientierte Softwarekonstruktion . Es ist keine einfache Lektüre, bei der man sich an einigen Stellen Gedanken machen muss. Aber es ist der beste Job, den ich je gesehen habe, um die OO-Prinzipien zu erklären.
Was die Sprachen angeht: Ich würde mich von C ++ fernhalten. Einfach zu groß für Lernzwecke. Wenn Sie eine Sprache suchen, die Ihnen wirklich hilft, OO zu verstehen (im Gegensatz zu einer Sprache, mit der Sie Mainstream-Apps schreiben / einen Job bekommen würden), schauen Sie sich smalltalk an. Oder Eiffel (die Sprache in Meyers Buch oben).
Wenn Sie eine Sprache suchen, die ein bisschen mehr Mainstream ist, aber dennoch die OO-Prinzipien treu unterstützt, ist Python eine gute Wahl. Java & C # sind auch anständig, wenn Sie statische Typisierung möchten.
Ein Wort der Vorsicht: Die Sprache wird Sie nicht OO lehren. Es kann nur helfen (oder behindern), wie gut es OO-Konzepte unterstützt. Beim Lernen von OO geht es wirklich darum, zu lernen, in OO-Begriffen zu denken . Dafür würde ich auf Meyers Buch zurückkommen.
hth.
Sie können jede der objektorientierten Sprachen wie C ++, Java, C # usw. lernen, um OOPS auszuprobieren.
Wenn Sie OOP wirklich lernen möchten, müssen Sie über die Sprachen hinaus denken und verstehen, dass es ein Paradigma ist, das die Komplexität von Mangae in Softwareprogrammen unterstützt, so wie wir sie in dieser realen Welt verwalten. Dann lernen Sie die Grundkonzepte in OO wie Polymorphismus, Vererbung, Verkapselung (PIE) usw
Es gibt gute Bücher über objektorientiertes Analysieren und Entwerfen mit Anwendungen (2. Auflage) von Grady Booch
Sie können auch Blogs wie dieses ausprobieren, von denen ich fand, dass sie einfach genug sind, um mit fascinatingoops.com zu beginnen
Sie möchten OOP lernen? Eine Antwort - Smalltalk.
Es ist eine elegante Sprache und ist OO bis ins Mark. Sie werden von Anfang an OOP lernen und sich nicht durch all die anderen Ablenkungen behindern lassen, die andere Sprachen übernehmen können.
Smalltalk gewinnt. Und es gibt auch einige gute kostenlose E-Books (siehe: Stephane Ducasse )
Sie müssten C ++ lernen, oder vielleicht einer der Vorfahren wie Smalltalk. C ++ bietet eine klare Trennung zwischen Konzepten wie Objektorientierung, Speicherverwaltung und Referenz vs. Wert und verfügt über eine starke generische Unterstützung.
Lernen Sie kein Java oder eine .NET-Sprache wie C #. Wenn Sie eine Sprache wie Java lernen, lernen Sie Dinge wie "Objekte sind immer auf dem Haufen und sind immer Referenzen", was nur für Java und absolut nicht für OOP im Allgemeinen gilt. Diese Verschmelzung von Begriffen (Objektorientierung, Speicherverwaltung, Referenz vs. Wert) ist für eine Muttersprache sehr gefährlich, da es sehr schwierig sein kann, sie wieder herauszubekommen, wenn man sie erst einmal im Kopf hat. C # ist in dieser Hinsicht etwas besser, aber nicht viel. Außerdem neigen sie häufig dazu zu lehren, "Vererbung ist ein Hammer und alles ist ein Nagel" mit schwacher generischer Programmierunterstützung.
Der beste Weg, um OOP-Konzepte zu erlernen, besteht darin, immer mehr Code zu schreiben und ihn häufig überprüfen zu lassen. Übung macht einen guten Programmierer.
Denken Sie an reale Szenarien, definieren Sie eine Problemstellung - lösen Sie sie im Code und lassen Sie sie überprüfen. Sie können jederzeit die Hilfe von /codereview// für Bewertungen erhalten :)
Viel Spaß beim Programmieren !!!
Schritte
Mein erster Kontakt zur OO-Welt war C ++, was kein schlechter Start war. Aber ich habe mich beim Lernen von Python sehr verbessert. Der Unterschied ergibt sich aus den Sprachen: Das Ausprobieren von Ideen ('Wie kann ich dieses Problem auf eine OO-Art lösen?') In C ++ erfordert mehr Code und enthält viel mehr Fallstricke als das Ausprobieren derselben Idee in Python. Daher würde ich Python empfehlen.
Ich denke nicht, dass Sie in eine andere Sprache schauen sollten, während Sie versuchen, OOP zu lernen. Für mich ist es einfacher, die Theorie zu verstehen und sie dann anzuwenden, wenn ich mich auf etwas beziehen kann, das ich bereits weiß. Das Herausfinden einer neuen Syntax steht gerade im Weg.
Sie können mit jedem OOP-Buch beginnen. Ich würde wieder eine in der Sprache meiner Wahl bekommen. Das Lesen eines Buches über Refactoring (OOP Style) hat mir bei der Anwendung von OOP geholfen. Ich habe ein bestehendes Projekt (keine Ablenkung vom Sammeln von Anforderungen) genommen und neue Wege gefunden, um es zu verbessern. Es war nicht nur OOP um OOP willen. Dann können Sie lernen, wie es bei einem neuen Projekt von Anfang bis Ende gemacht wird. Die Logik hier ist, dass Sie es nicht immer von Anfang an richtig machen. Wenn Sie erkennen, wo es angebracht ist, sind Sie besser dran. Wie die meisten Dinge wird es nicht jedes Problem lösen.
Bei einigen Sprachen gibt es bestimmte Einschränkungen. Wenn es Ihr Ziel ist, der Meister der Mehrfachvererbung zu sein, ist .NET out.
Ich gehe hier gegen das konventionelle Denken vor und schlage vor, dass die einfachsten Sprachen für die Verwendung von OOP nicht unbedingt die besten Sprachen für das Erlernen von OOP sind . Ich war mit C ++ zum ersten Mal mit OOP vertraut, habe es aber erst "verstanden", als ich Larry Walls Kamelbuchkapitel über OOP mit Perl gelesen habe. Aus irgendeinem Grund hatte ich Probleme, den Unterschied zwischen Klassen und Objekten zu erfassen, bis ich explizit segnen musste ein Objekt in eine Klasse . Ich habe die zugrunde liegende Implementierung von OOP erst in C mit GObject verstanden, in dem keine dieser Details für Sie verborgen sind. Ich habe die Best Practices erst wirklich verstanden, als ich an einer sprachunabhängigen Firmenklasse teilgenommen habe. Es ist ein sehr großes Thema,.