Wie lange braucht man um C++ zu lernen?
-
BGiebel schrieb:
Das einzige was ich weiß ist das ein Kunde eine alte Verwaltungssoftware hat die eine externe Datenbank anspricht und dann die gewonnenen Datensätze zum Filtern und Drucken aufbereitet, welche Frameworks da verwendet wurden kann ich jetzt noch nicht sagen.
Das ist eine heikle Geschichte. C++ gibt es schon viel länger als Java oder PHP.
Selbst wenn man C++ kann und mit aktuellen IDEs vertraut ist, kann man in Teufels Küche kommen, wenn da einer eine alte Borland OWL oder Watcom Anwendung anschleppt ...
Es gibt auch nur wenige Leute, die gleichzeitig den Überblick über die Geschichte von MFC und C++ Builder haben und für beide sagen könnten, was sich da in den letzten 15 Jahren jeweils geändert hat.
Unter diesem Aspekt halte ich den Ansatz "Ich lerne jetzt C++ und ändere dann diese alte Anwendung" für fragwürdig, selbst wenn man dem Fragesteller zubilligt, dass er ein guter Programmierer ist und die Sprache schnell lernt.
Für diese Aufgabe braucht man möglicherweise Wissen, das man sich nicht selbst beibringen kann.
-
Mitleid schrieb:
Wer ist "Peter Norvig" und wieso ist seine Meinung relevant?
Haha, google hilft dir sicherlich, diese Frage zu beantworten.
-
knivil schrieb:
Haha, google hilft dir sicherlich, diese Frage zu beantworten.
Eigentlich war das keine Frage.
Dieses Essay ist nichts weiter als eine überflüssige Ansammlung von Trivialitäten bestückt mit falschen Aussagen (z.B. dass Mozart ein Wunderkind war).
-
Mitleid schrieb:
knivil schrieb:
Haha, google hilft dir sicherlich, diese Frage zu beantworten.
Eigentlich war das keine Frage.
Dieses Essay ist nichts weiter als eine überflüssige Ansammlung von Trivialitäten bestückt mit falschen Aussagen (z.B. dass Mozart ein Wunderkind war).
In den Artikel über Mozart wird aber nun einmal von einem Wunderkind gesprochen. Damit auch du das begreifst hier mal ein Link für dich: http://de.wikipedia.org/wiki/Mozart
Das nächste Mal bitte erst denken dann schreiben.
-
auchMitleid schrieb:
Das nächste Mal bitte erst denken dann schreiben.
Ist zwar offtopic, aber was soll's.
Das einzig wundersame an dem "Wunderkind" Mozart und den allermeisten anderen "Wunderkindern" ist, der elterliche Drill. Sieht man sich Mozarts Verhältnisse genauer an, so stellt man fest, dass er ca. dreimal so viel geübt hat wie zu seiner Zeit üblich.
Es gibt bestimmt Menschen, die aufgrund irgenwelcher körperlichen Eigenschaften (oder Fehlbildungen) Inselbegabungen haben und "wundersame" Dinge vollbringen, die ihnen niemand nachmachen kann. Mozart gehörte sicher nicht dazu.
Bevor du mich wieder unqualifiziert angehst lies dir doch vorher entsprechende Literatur durch (z.B. etwas von Werner Siefer) und verlass dich nicht auf einen Artikel von Hobbyautoren, der im Übrigen neben der Kapitelüberschrift kein Wort dazu verliert, welche wundersamen Eigenschaften Mozart denn hatte.
-
Ich habe nie geschrieben das er in Wirklichkeit ein Wunderkind war, das interessiert auch wirklich Niemanden. Er wird halt so genannt, ob das nun wahr ist oder nicht ist schnuppe.
Du diskreditierst jemanden weil er nach der Allgemeinbildung gesehen eine richtige Beschreibung gegeben hat? So etwas nenne ich unqualifiziert.
-
Dann begruende doch mal, warum Norvigs Meinung nicht relevant ist?
-
auchMitleid schrieb:
Du diskreditierst jemanden weil er nach der Allgemeinbildung gesehen eine richtige Beschreibung gegeben hat?
Nö.
Ich kritisiere dieses Essay, weil es von falschen Annahmen ausgeht und dann, darauf aufbauend, einen Haufen triviales Gesülze vom Stapel lässt.
knivil schrieb:
Dann begruende doch mal, warum Norvigs Meinung nicht relevant ist?
Es geht bereits mit dem Titel los. Wer sagt denn, dass jeder es eilig hat?
Jedem Titel aus der 21-Tage-, 24-Stunden- oder For Dummies-Reihe stehen doch dutzende andere Fachbücher gegenüber. Nebenbei sind auch die 21-Stunden-Bücher recht dicke Wälzer mit hunderten von Seiten.
Der Tenor, dass man in der Programmierung, wie auf jedem anderen Gebiet, Praxis braucht ist doch wohl selbstverständlich.
Neben Tipps wie: "Stellen Sie sicher, daß es dauerhaft so viel Spaß macht, daß Sie dadurch mindestens zehn Jahre investieren wollen!" oder "Seien Sie der beste Programmierer bei einigen Projekten, seien sie der schlechteste bei anderen!", die einem eher zum Lachen bringen, stoßen mir Sätze wie: "Bedenkt man dies alles, ist es fragwürdig, wie weit Sie durch Lernen mit Büchern kommen können." übel auf.
Fragwürdig ist höchstens wie weit man OHNE Bücher kommt. Learning by doing ist zwar schön und gut, aber nicht sehr effizient. Das Leben ist kurz und die Systeme werden immer umfangreicher und komplexer. Wo soll denn das Fachwissen herkommen? Sobald es ans Eingemachte geht findest du weder ein Tutorial, noch Quelltexte, noch einen Fachman der bereit wäre seine Zeit dafür zu opfern dir etwas beizubringen. Da bleiben nur Bücher, Fachzeitschriften und wahnsinning überteuerte (häufig nur dreitägige!!!:D) Kurse. Sein Beispiel mit der Kindererziehung ist deshalb auch falsch gewählt, weil das kein Fachwissen ist.
Sein Fazit: "Also, gehen Sie los und kaufen Sie dieses Java-Buch! Sie werden wahrscheinlich einen Nutzen daraus ziehen können. Sie werden aber nicht Ihr Leben oder ihre wirkliche Gesamtkompetenz als Programmierer in 24 Stunden, Tagen oder sogar Monaten ändern." ist genauso trivial wie überflüssig, weil nämlich keiner das behauptet hat.
-
@Mitleid: So wie du schreibst bist du bestimmt noch sehr jung und unerfahren. Lass dir gesagt sein das man Programmieren nicht aus Büchern lernt sonder dort nur eine Art Bedienungsanleitung zur Anwendung bekommst. Das richtige Programmieren geht dann nur mit "learning by doing" nur so kann das Gehirn gut lernen. Nur vom Lesen, Zuschauen lernst du nicht viel du musst machen machen machen. Da sind im Gehirn so kleine Schnüre, die werden wenn du das Wissen dann wirklich selbst anwendest, immer dicker und so lernst du dann.
Und nicht gleich böse sein wenn dir hier die Profis erklären wo es lang geht, du kannst nicht alles wissen und hast ja noch dein ganzes Leben vor dir um zu lernen.
-
Informationen schrieb:
... bla ...
... einfach köstlich ...
Am besten finde ich den Abschnitt "Lass dir gesagt sein..."
Wunderbar!
-
So etwas hast du dir aber leider auch verdient. Wir brauchen nicht noch einen Pseudo-Klugen hier, davon gibt es schon genug hier.
Einfach mal etwas weniger Müll zusammenschreiben, dann klappt es auch mit dem Nachbarn(Respekt).
-
@PseudoBuster
Du meinst bestimmt mich. "Nett" wäre es, wenn nicht Behauptungen aufgestellt und mir in den Mund gelegt werden. Anschließend wird dann gegen etwas argumentiert, dass NIEMAND wirklich gesagt hat.Und verfolge mal den Thread dann bekommst du auch mit wo die Tonlage sich verschiebt. Von wegen Respekt und so.
Falls du ein Argument hast, dann trag es vor. Hab mich von besseren Argumenten schon immer überzeugen lasssen. Wenn nicht spar dir einfach die Tipparbeit, ich weiß selbst wie alt ich bin und mit wie vielen tutorialgeschädigten "Learning-by-doing" Pfeifen ich bereits zusammenarbeiten musste.
-
Bitte lese doch erst einmal bevor du was schreibst und dazwischen ein wenig denken hat auch noch keinem geschadet. Es wurde NICHT gesagt dass man nur mit learning by doing lernt sondern es wurde behauptet dass nur das Zusammenspiel zwischen Fachliteratur und dann "leraning by doing" zum Erfolg führt.
Programmieren lernen = Bücher durcharbeiten + viel Praxis
Nur mit Büchern, wie schon geschrieben, wirst du nicht weit kommen. Da kannst du auf klug machen wie du willst. Du hast schlicht und einfach keine große Ahnung, was du mit jedem Posting erneut wieder unter Beweis stellst.
Und nun nimm einen Fisch und hör auf zu trollen.
-
Neben Tipps wie: "Stellen Sie sicher, daß es dauerhaft so viel Spaß macht, daß Sie dadurch mindestens zehn Jahre investieren wollen!" oder "Seien Sie der beste Programmierer bei einigen Projekten, seien sie der schlechteste bei anderen!", die einem eher zum Lachen bringen,
Warum. Beim ersten kann man sein Wissen festigen, indem man es anderen vermittelt. Beim zweiten lernt man viel. Es hat nichts mit absichtlich schlecht sein zu tun, sondern eher mit Herausforderungen.
Sein Fazit: "Also, gehen Sie los und kaufen Sie dieses Java-Buch! Sie werden wahrscheinlich einen Nutzen daraus ziehen können. Sie werden aber nicht Ihr Leben oder ihre wirkliche Gesamtkompetenz als Programmierer in 24 Stunden, Tagen oder sogar Monaten ändern." ist genauso trivial wie überflüssig, weil nämlich keiner das behauptet hat.
Doch! Genau das verspricht der Titel von solchen Buechern, zum Beispiel: C in 21 Tagen: Schritt für Schritt zum Profi, Visual C# 2008 in 21 Tagen: Schritt für Schritt zum Profi. Deswegen wird es explizit hervorgehoben, dass es leere Versprechen sind.
Gab mal ein interessantes Video, das die Zeit zum Lernen/Meistern analysiert hat. Bei GoogleTechTalk oder so. Auch gibt es Studien in Bezug auf Instrumente wie Geige oder Klavier, die zu aehnlichen Einsichten gelangen. Finde sie nur nicht wieder ...
-
knivil schrieb:
Warum?
Ich musste beim Lesen lachen, weil ich mir vorstelle wie man das umsetzen will. Steht man morgens auf und sagt sich 10 Mal: "Programmieren mach Spaß. Programmieren macht Spaß. ..."?
Oder wie würde man die Kontaktaufnahme zu Kollegen/Freunden realisieren bzw. wie würde man sie testen, wenn man sie für ein Projekt gewinnen will und gleichzeitig sicherstellen muss, dass das eine Mal die Rakten und das andere Mal die Fehlzünder dabei sind.
Sowas läuft doch innerhalb eines Teams projektbezogen sowieso ab. Du merkst doch gleich, wo du stehst, ob du jetzt mal selbst pushen musst damit es vorangeht, usw. usw.
knivil schrieb:
Doch!
Weiß nicht, ob man das so sehen kann. Die Titel sagen ja nicht: "Wir machen dich zum vollständigen Programmierer in 24 Stunden". Sie behaupten lediglich, dass man die entsprechenden Kapitel normalerweise in einem Tag, einer Stunde usw. durchlesen kann. Wobei nicht einmal das. Ich habe nur eines dieser 21-Tage Bücher bei mir herumstehen (zum Thema Oracle) und bereits in der Einleitung äußert sich der Autor differenziert über die Art und Weise wie man das Ding lesen könnte.
Es kommt hinzu, dass der Leser vielleicht genau das will: Einen oberflächlichen, schnellen Einblick in ein Thema. Kann mir gut vorstellen, dass ein Maschinebaustudent, keine große Lust hat für seinen c++ Schein den Struppi zu wälzen. Der holt sich so ein 21-Tage Buch bearbeitet seine Übungsblätter und gut is.
Ich weiß ja nicht wie da deine Erfahrungen sind, aber die meisten (eigentlich alle) Tipps von Norving sind doch absolut trivial.
Fangen Sie damit an, sich für Programmieren zu interessieren
Passiert doch automatisch, häufig bereits im Kindes-, Teenageralter. Deswegen habe doch die allermeisten auch bereits mehr als 10 Jahre damit zu tun, bevor sie es dann professionell, also für Geld tun.Reden Sie mit anderen Programmierern: Lesen sie andere Programme! Das ist wichtiger als jedes Buch oder Seminar.
Passiert auch automatisch. Übrigens argumentieren die meisten Bücher sowieso am Quelltext entlang, enthalten vollständige Porgramme (wenn auch oft nur auf Diskette/CD) usw.Programmieren Sie!
Na ja, was sonst?Bearbeiten Sie Projekte gemeinsam mit anderen Programmierern!
Meiner Erfahrung nach, war das durchgängig so. Fing in der Schule an, ging im Studium weiter und in den Firmen, in denen ich gearbeitet habe, war man immer als Team an einem Projekt.Arbeiten Sie an Projekten nachdem andere Programmierer diese bearbeitet haben....
Alltag.Lernen Sie mindestens ein halbes Dutzend Programmiersprachen. ...
Wer an einer anständigen UNI/FH studiert hat musste das sowieso.Erinnern Sie sich daran, daß die Informatik ihre heutige Bedeutung ...
ÜberflüssigBeteiligen Sie sich an Bemühungen um die Standardisierung einer Sprache.
ÜberflüssigDeshalb finde ich Norvigs Essay nicht besonders gelungen. Er unterstellt zuerst etwas und argumentiert dann in seinen "Rezepten" mit Trivialitäten dagegen an.
knivil schrieb:
...das die Zeit zum Lernen/Meistern analysiert hat...
Dazu zwei Bemerkungen:
Das schöne am Programmieren ist ja, dass man es nicht wirklich auf einem hohen Niveau meistern muss um ein gutes Ergebnis abzuliefern. Wie der Threadstarter bereits sagt, dann macht man eben Überstunden. Ich kenne Firmen die ganze Abteilungen ausschließlich mit Praktikanten füllen, also Leuten die gerade mal das Vordiplom haben und höchstens 6 Monate am Stück da sind. Aber da wird ebenfalls produktive Software erstellt, die sich anschließend jahrelang im Einsatz befindet, korrigiert wird, erweitert wird usw.
Außerdem ist für wirklich gelungene Software das Programmieren noch das kleinste Problem.
Deswegen lohnt es sich eigentlich gar nicht so viel Wind um die Sache zu machen.
-
Mitleid schrieb:
Die Titel sagen ja nicht: "Wir machen dich zum vollständigen Programmierer in 24 Stunden".
Also bei einem Titel wie "C++ in 21 Tagen . Schritt für Schritt zum Programmierprofi" wird meines Erachtens ganz deutlich versucht, einem weiß zu machen, das man innerhalb von 21 Tagen ein C++ Profi ist.
Davon abgesehen das ich kaum eines der Bücher gesehen habe, die auch nur die wesentlichsten Inhalte nachhaltig beibringen konnte. Ganz zu schweigen davon, das sie inhaltlich häufig vieles nur überfliegen und einen anschließend teilweise ratloser als vorher stehen lassen.
Ich bin der Meinung das man um C++ zu lernen, sich mindestens ein halbes Jahr mit der Sprache beschäftigen muss.
-
asc schrieb:
Ich bin der Meinung das man um C++ zu lernen, sich mindestens ein halbes Jahr mit der Sprache beschäftigen muss.
Überbewertest du das nicht etwas? Von 0 an, sicherlich. Wahrscheinlich auch länger. Aber wenn er schon Java kann, dann kann man das doch relativ schnell lernen. Syntax ist die gleiche, geht sofort. Algorithmen entwerfen und OO modellieren kann er auch schon. Die ganzen Grundkonzepte der Programmierung sind ebenfalls bekannt. Für Standarddatenkonstrukte kann man sich eine Übersetzungstabelle schreiben, braucht auch fast 0 Zeit. Und dann erklärt man den C++-Stil und verabreicht dem Lernenden jedes Mal einen Elektroschock, wenn er trotzdem einen Pointer im Java-Stil benutzen will oder RAII verletzt. Nach ein paar Wochen Übung sollte das dann einigermaßen gut sitzen. Wichtig ist halt, dass man das C++ gut beigebracht bekommt und man dabei weder C lernt, noch stilistisch bei Java bleibt.
edit: Falls du Programmieren von 0 an oder von C kommend meinst (habe jetzt nicht alle 4 Seiten des Threads durchgelesen), stimme ich dir vollkommen zu.
-
Mitleid schrieb:
Das schöne am Programmieren ist ja, dass man es nicht wirklich auf einem hohen Niveau meistern muss um ein gutes Ergebnis abzuliefern. Wie der Threadstarter bereits sagt, dann macht man eben Überstunden. Ich kenne Firmen die ganze Abteilungen ausschließlich mit Praktikanten füllen, also Leuten die gerade mal das Vordiplom haben und höchstens 6 Monate am Stück da sind. Aber da wird ebenfalls produktive Software erstellt, die sich anschließend jahrelang im Einsatz befindet, korrigiert wird, erweitert wird usw.
Mein Beileid und Mitleid für die Kunden die an so ein Systemhaus geraten sind.
-
SeppJ schrieb:
asc schrieb:
Ich bin der Meinung das man um C++ zu lernen, sich mindestens ein halbes Jahr mit der Sprache beschäftigen muss.
Überbewertest du das nicht etwas? Von 0 an, sicherlich. Wahrscheinlich auch länger. Aber wenn er schon Java kann, dann kann man das doch relativ schnell lernen. Syntax ist die gleiche, geht sofort. Algorithmen entwerfen und OO modellieren kann er auch schon. Die ganzen Grundkonzepte der Programmierung sind ebenfalls bekannt. Für Standarddatenkonstrukte kann man sich eine Übersetzungstabelle schreiben, braucht auch fast 0 Zeit. Und dann erklärt man den C++-Stil und verabreicht dem Lernenden jedes Mal einen Elektroschock, wenn er trotzdem einen Pointer im Java-Stil benutzen will oder RAII verletzt. Nach ein paar Wochen Übung sollte das dann einigermaßen gut sitzen. Wichtig ist halt, dass man das C++ gut beigebracht bekommt und man dabei weder C lernt, noch stilistisch bei Java bleibt.
edit: Falls du Programmieren von 0 an oder von C kommend meinst (habe jetzt nicht alle 4 Seiten des Threads durchgelesen), stimme ich dir vollkommen zu.
Um eine Programmiersprache zu lernen reicht es nicht den Syntax der Sprache zu lernen, in jeder Sprache geht man Probleme etwas anders vom Design her an. Und um dies gut zu können bedarf es einiger Jahre Erfahrung in der jeweiligen Sprache, von Frameworks/Libs fange ich gar nicht erst an.
-
asc schrieb:
Also bei einem Titel wie "C++ in 21 Tagen . Schritt für Schritt zum Programmierprofi" wird meines Erachtens ganz deutlich versucht, einem weiß zu machen, das man innerhalb von 21 Tagen ein C++ Profi ist.
OK, aber du hast ja, ähnlich wie in anderen Situationen, den gesunden Menschenverstand und verlässt dich nicht auf den Titel, oder auf einen Werbespruch auf der Verpackung.
Das Buch hat z.B. noch eine Einleitung:
http://www.informit.de/books/c++21/data/start.htmc++ in 21 Tagen schrieb:
In nur 21 Tagen lernen Sie alle wichtigen Grundlagen ...
c++ in 21 Tagen schrieb:
Nach drei Wochen harter Arbeit mit C++ sind Sie nun ein kompetenter C++-Programmierer. Der Lernprozeß hört aber nicht einfach an dieser Stelle auf. Auf Ihrem Weg vom Einsteiger in C++ zu einem Experten sollten Sie weitere Wissensquellen ausschöpfen.
Klingt für mich nicht danach als ob der Leser getäuscht wird.
auweia schrieb:
Mein Beileid und Mitleid für die Kunden die an so ein Systemhaus geraten sind.
Das brauchst du nicht. Je nach Problemstellung ist es besser an ein Systemhaus zu geraten in welchem Leute wie der Threadstarter Überstunden schieben um den langjähringen Kunden zufriedenzustellen, als an Systemhäuser dessen Verkäufer einem kompetent "beraten" um ihren hochdotierten "Spezialisten" Umsatz zu verschaffen.
Außerdem gebe ich zu bedenken, dass der "Kunde" häufig im eigenen Hause sitzt.