Ich bin ein Anfänger und habe nur wenig Programmierkenntnisse.
Wäre es gut, wenn ich C ++ direkt aus Büchern lernen würde, die sich mit neuem C ++ 11 befassen, oder sollte ich die alten besten C ++ - Bücher durcharbeiten?
Sollte ich wenig über C ++ wissen, bevor ich C ++ 11 lerne? oder kann ich direkt von dort aus starten?
Würde es ein Problem verursachen, wenn ich direkt von C ++ 11 aus starte? Wenn nein, schlagen Sie einige Bücher zu C ++ 11 vor.
Programmers — Stack Exchange is a site for professional programmers...
In diesem Fall würde es Ihnen etwas ausmachen , mich zu der Site für Anfängerprogrammierer zu führen? Ich bin auch ein Neuling in derAntworten:
Es gibt viele Verbesserungen der Benutzerfreundlichkeit, die C ++ 11 für Anfänger verständlicher machen, insbesondere für diejenigen, die Erfahrung in anderen Sprachen mit diesen Funktionen haben. Andere Änderungen in C ++ 11 sind nur für fortgeschrittene Benutzer von Interesse, sodass Sie wahrscheinlich überfordert sind, wenn Sie sich ein Buch zulegen, in dem hauptsächlich die Unterschiede vermittelt werden. Stellen Sie sicher, dass jedes Buch, das Sie erhalten, für Anfänger von C ++ geeignet ist.
Davon abgesehen müssen Sie wahrscheinlich irgendwann den alten Weg erlernen, da es eine Menge vorhandenen Code gibt und selbst neuer C ++ 11-Code die alten Methoden enthält, wenn der Programmierer dies wünscht. Ich schreibe C ++, und meine Firma hat sich noch nicht einmal damit beschäftigt , C ++ 11-kompatible Compiler zu evaluieren , geschweige denn einen in der Produktion zu verwenden.
quelle
Sie müssen kein altes C ++ verwenden, um C ++ 11 zu verwenden. Es gibt neue Funktionen in C ++ 11, die jedoch optional sind. Zu wissen, wie man C ++ 11-Funktionen einsetzt, könnte von Vorteil sein, und es wäre sicherlich kein Nachteil, wenn man mit älteren (vor 11) Codebasen arbeitet, wenn man die Besonderheiten der älteren Versionen kennt.
C ++ lernen ist ein guter Ort, um mit dem Lernen zu beginnen. Anhang B zeigt Ihnen die C ++ 11-Funktionen, nachdem Sie die Grundlagen erlernt haben.
Ich kann verstehen, warum einige Leute Java / CSharp usw. als einfachere alternative Sprachen vorgeschlagen haben, aber ich habe ein bisschen C ++ gelernt, bevor ich zu CSharp übergegangen bin, und ich bin deshalb kein schlechter Programmierer Syntax / Funktionalität und mit einer soliden Grundlage in C ++ können Sie jede andere zwingende OOP-Sprache leicht erlernen.
quelle
Es ist schwer zu sagen.
Altes C ++ ist eher ein Minenfeld, und es ist schön zu lernen, wie man ein solches Biest navigiert. Sie werden auch verstehen, warum die Dinge so gemacht werden, wie sie sind, und welche Auswirkungen die verschiedenen Konstrukte haben.
Andererseits ist altes C ++ nicht das, was Sie wollen, wenn Sie Code schreiben.
Aber andererseits ist altes C ++ das, was eine Menge Industrie für weitere 20 Jahre antreibt.
Ich liebe C ++ 11, aber es ist vorerst nur in Startups verwendbar. Nicht in großen älteren Codebasen. Wenn Sie direkt zu C ++ 11 springen, verfügen Sie möglicherweise über nicht entwickelte Kenntnisse in bösen C ++ - Teilen. Diese Methode schlägt fehl, sobald einige fortgeschrittene C ++ 11-Konstruktionslecks oder -abstürze auftreten, da sie syntaktisch korrekt, aber logisch inkorrekt verwendet wird.
quelle
Trotz vieler Verbesserungen in
C++11
,C++
ist immer noch keine einfache Sprache. Obwohl Java nicht so einfach ist, wie manche vielleicht denken, ist es dennoch eine einfachere Sprache mit sehr guter Leistung (oft fast so schnell wieC++
) und bietet bessere IDEs (vielleichtVisual C++
so gut wie aktuelle Java-IDEs, aber hier unter Linux kein Glück) umfassendere Standardbibliothek (das JDK), mehr Bibliotheken (z. B. Hibernate , Spring , JEE , Lucene usw.) und keine Speicherverluste (na ja, fast keine - Sie können in Java immer noch einen Speicherverlust erstellen, dies ist jedoch schwieriger als inC++
). Um fair zu sein, mit modernenC++11
ist es viel einfacher, Speicher Lauch zu vermeiden.C ++ 11 hat viele coole Funktionen wie Lambdas, Auto-Keyword, Bewegungssemantik und vieles mehr. Es ist definitiv eine viel bessere Sprache als
C++98
früher. In dieser Übersicht von Herb Sutter finden Sie Informationen zu den neuen Funktionen inC++11
: Elements of ModernC++
Style.Zusammenfassend denke ich, dass jeder mindestens einiges lernen sollte
C++
. Wenn Sie die Programmierung in habenJava
,Scala
,Ruby
oderPython
für die letzten zehn Jahre und nie berührtC
oderC++
, jetzt mitC++11
Ich denke , es ist Zeit zu lernen , istC++11
Ihre Programmierkenntnisse und zu verbessern , während dies zu tun.Ich werde
C++
in den kommenden Jahren wahrscheinlich nicht viel bei der Arbeit verwenden und wenn ich eine leistungsfähigere Sprache als benötigeJava
, werde ich wahrscheinlich Scala wählen, aber ich werdeC++11
die neuen Funktionen genauer betrachten und versuchen, sie zu lernen und zu verstehen, insbesondere die über Multithreading und Parallelität.quelle
Atmen Sie tief ein und lesen Sie diesen Artikel von Peter Norvig.
Hast du das gelesen Ok, wenn Sie ein Anfänger sind, müssen Sie in kleinen Schritten beginnen. -Sprache hier einfügen- kann später erscheinen. Schauen Sie sich Coursera oder Udacity an, um einige Einführungskurse in die Informatik zu erhalten.
Wenn Sie das erledigt haben, empfehle ich Ihnen, sich langsam durch die Programmiersprache C von K & R zu arbeiten, wenn Sie eine C-Sprache eingestellt haben.
Arbeiten Sie an den Grundlagen, der Rest wird rechtzeitig kommen.
quelle
Aktuelle Einführungsbücher zu C ++ behandeln zunehmend auch C ++ 11. Ich habe Sam's Teach Yourself C ++ gelesen, nachdem ich fast zehn Jahre mit Skriptsprachen, aber nicht mit C / C ++ gearbeitet hatte, und fand es wirklich hilfreich. Ich habe mich sehr schnell mit den zentralen Ideen von C ++ (einschließlich einer Menge von STL) vertraut gemacht und war mir sehr vieler Details bewusst, die sich in C ++ 11 unterscheiden.
Wie einige andere Poster erwähnt, C ++ 11 ist in vielerlei Hinsicht leichter als ältere Standards mit Scripting-Stil Zusätze wie
auto
,for(int &i : m_vector){}
usw. Also , wenn Ihr „wenig Wissen“ aus Sprachen wie Python oder Matlab kommt, werden Sie feststellen , C ++ 11 etwas "natürlicher" als die früheren Standards.Ich möchte auch darauf hinweisen, dass die Compilerkompatibilität für C ++ 11 ( fast ) vollständig ist, sodass es kein Problem mehr gibt, Code zu haben, der "zu aktuell zum Kompilieren ist".
Kurz gesagt, mach es.
quelle
Zu meiner Zeit galt C als Voraussetzung für C ++, insbesondere für Programmieranfänger. Weil man herausfinden muss, was eine Sprache macht und warum sie so gestaltet wurde. C hat eine Menge großartiger und ausreichender Ideen für die Programmiersprache, die niemals veraltet sein werden. Daher halte ich dies für den besten Start.
Und nachdem Sie eine grundlegende Sichtweise in Bezug auf das Programmieren haben, müssen Sie möglicherweise auswählen, was als nächstes getan werden soll, was bedeutet, dass Sie eine Sprache auswählen müssen, um so tief wie möglich zu lernen. Egal wie tief Sie gehen, es kann im Allgemeinen entscheiden, wie tief Sie für eine andere Sprache gehen können, was bedeutet, dass unabhängig von der Anzahl der Sprachen, die Sie gelernt haben, die tiefste immer die erste ist, die Sie ausgegraben haben. Ich habe mich mit Java befasst und einige Java-Modelle selbst erstellt, um die Kernelfunktionalität besser zu verstehen.
Danach können Sie möglicherweise lernen, was Sie wollen, da Sie die Technologie der Programmiersprache vollständig verstehen. Ich habe angefangen, C #, Go, Python und sogar Scala zu lernen und habe viele Projekte zum Spaß / zur Arbeit gemacht. Der persönliche Rekord liegt bei 3 Monaten vom Erlernen einer Sprache bis zum 1.0-Leiter eines Entwicklungsprojekts.
In meinem Fall ist mein erstes Programm über 15 Jahre her und ich kann mich nicht einmal daran erinnern, was es ist. Ich glaube, wenn du hart genug arbeitest, wirst du definitiv besser und schneller als ich.
quelle
Ich denke, als Anfänger müssen Sie zuerst C ++ - Konzepte durchgehen, da C ++ 11 und alles wie eine neue Version ist, aber C und C ++ die Basis für jede Art von Entwicklung sind. Sobald Sie C ++ gelernt haben, werden die meisten Konzepte automatisch gelöscht.
quelle
C ++ ist eine wirklich großartige und mächtige Sprache. Es ist jedoch auch eine große Verantwortung für den Programmierer.
Wenn Sie noch kein Programmierer sind, machen Sie es sich leichter und beginnen Sie mit C #. Die Syntax basiert auf C ++, aber die Fehlerbehandlung ist viel anfängerfreundlicher und hilft Ihnen, wenn etwas schief geht.
Wenn Sie mit Methoden, Klassen und Vererbung vertraut sind und sich in einer Umgebung entwickeln möchten, in der das Verwalten von Speicher- und Systemressourcen wichtiger ist als die Produktivität, ist C ++ eine gute Wahl, und ich möchte zunächst den aktuellen Standard erlernen. Beachten Sie, dass Sie in C ++ den Speicher verstehen und aktiv verwalten müssen. Machen Sie hier Fehler und alles, was Sie bekommen, ist entweder ein Core-Dump oder Ihre Daten enthalten Bytes, die keinen Sinn ergeben. Und oft hängt der Punkt, an dem Sie das Problem finden, nicht davon ab, wo die Ursache tatsächlich liegt.
quelle
Warum willst du mit C ++ anfangen?
Ich persönlich empfehle gegen C ++ als Muttersprache. Es ist knifflig, komplex, schwierig ... einfach viel niedriger und "unsicherer" als die meisten anderen Programmiersprachen.
Ich empfehle, C #, Java, Python oder Javascript ... und ein gutes Buch auf dem Weg zu wählen. Sie werden viel mehr Spaß damit haben.
quelle