Was kann ich mit iso c++ machen?



  • Original erstellt von crass:
    p.s. wer is Alexandrescu 😃

    http://www.moderncppdesign.com/
    den sollte man kennen

    @Hume:
    Du bist immer so bescheiden...
    Naja, sagen wir: du hilfst mir ab und zu wenn ich Designprobleme habe und dafür tue ich weiterhin so, als wärst du ein guter C++ Programmierer :p



  • Aber die meisten Informatik-Lehrer an den Schulen haben auch nicht so den großen Plan und unterrichten auch. 🕶



  • Aber die meisten Informatik-Lehrer an den Schulen haben auch nicht so den großen Plan und unterrichten auch.

    eben... man muss nix wissen sondern nur so tun als ob man was weiß...
    und das bekommt unser info-lehrer noch nicht mal hin 🙄

    naja...

    mfg
    Plassy



  • nur so tun als ob man was weiß...

    du hast vollkommen recht! leider 🙄



  • LOL ich find des echt peinlich so Informatik an unserer Schule, oder der Java-Kursd den es bei uns gibt.

    Da kann man mal so richtig über die Lehrer lachen und sagen was die für nen scheiß verzapfen.

    Ein Gebiet wo ich mal mehr Ahnung hab als die Lehrer.

    Tja, ich hab mal bei den Java-Kurs mal reingeschnuppert und muss sagen schlimm, nach mehrern stunden hat die nichtmal erklärt was bytecode ist wie java aufgebaut ist, nix, null finito.
    Schrecklich.

    Hab dann rausgefunden dass die nur ein paar seminare mitgemacht hat.



  • @Hume
    hast natürlich Recht und die Bücher bringen so nichts (BTW. hab Modern C++ Design vergessen, bei den wichtigen Büchern ;)), sollte man abertrotzdem lesen, wenn man C++ lernen will 😉

    Zum unterrichten von anderen, sollte man unmengen an praktischer Erfahrung haben. Theorie ist natürlich auch wichtig, nutzt einem nur nichts, wenn man nicht weiss, wie man sie anwenden kann!



  • Hallo Leute

    Da habe ich ja was ins Rollen gebracht...
    Um euch ein wenig aufzuklären:

    Wir sind eine kleine Firma und haben dieses Jahr 5 Azubis eingestellt. Diese Azubis sollen bei uns eine gute Ausbildung genießen, um später einen gutes weiteres Berufsleben genießen zu können.

    Die Schulungen bezüglich C++ werden bei uns hauptsächlich für die Azubis verwendet. C++ gilt ja als gute Muttersprache. Wenn man C++ kann, wird man mit unseren weiteren Produkten (Schulungen in anderen Programmiersprachen) weniger Probleme haben.

    Später können die Azubis sich spezialisieren aber als GRUNDWISSEN möchten wir ihnen gerne C++ beibringen. Es soll auch nicht so ablaufen, dass ich eine Lehrerrolle einnehme. Wir haben ein sehr enges Verhältnis (die azubis und ich). Es soll mehr ein gemeinsames Lernen sein aber das Grundwissen, was oftmal das schwerste Wissen überhaupt ist soll ich ihnen beibringen. Es geht hier um den C++ Syntax. Funktionen, Schleifen, if, usw. Ein paar kleine Spiele programmieren (nimm und gib spiel, zahlenraten, usw) also nichts wirklich schwiriges.

    Ich bin in unserem Betrieb für die Webschulungen verantwortlich (PHP/MySQL/HTML). Von daher weiss ich wie ich ihnen das Wissen gut einstampfen kann.

    danke für eure Ratschläge...



  • Original erstellt von sabine-cc:
    **Später können die Azubis sich spezialisieren aber als GRUNDWISSEN möchten wir ihnen gerne C++ beibringen. Es soll auch nicht so ablaufen, dass ich eine Lehrerrolle einnehme. Wir haben ein sehr enges Verhältnis (die azubis und ich). Es soll mehr ein gemeinsames Lernen sein aber das Grundwissen, was oftmal das schwerste Wissen überhaupt ist soll ich ihnen beibringen. Es geht hier um den C++ Syntax. Funktionen, Schleifen, if, usw. Ein paar kleine Spiele programmieren (nimm und gib spiel, zahlenraten, usw) also nichts wirklich schwiriges.

    Ich bin in unserem Betrieb für die Webschulungen verantwortlich (PHP/MySQL/HTML). Von daher weiss ich wie ich ihnen das Wissen gut einstampfen kann.
    **

    hi
    wenn du in php-schulung schon erfahrung hast, dann wird die "syntax" in c++ für den anfängerkurs nicht so das problem sein.
    auch die ganzen schleifen, verzweigungen, funktionen ... sind dann für dich nix neues.
    so du php auch klassenorientiert bist (und ich vermute schon, weil es einfach angesagt ist) ist dir objektorientierung in grundzügen ja auch geläufig.
    was jedoch wichtig ist: daß sie "objektorientiert" denken lernen. das ist das schwerste. vor allem die polymorphie.. da musst du sie auch als anfänger schon hinkriegen.
    na ja.. klingt aber eigentlich so, als ob deine frage eher eine rethorische war ..



  • Original erstellt von HumeSikkins:
    Ich kann mir vorstellen, dass man den Stroustrup in 6 Monaten durcharbeiten kann. Sogar soweit, dass man den größten Teil *der da steht* versteht. Man kann das was im Stroustrup steht vielleicht danach auch reproduzieren. Aber kann man deshalb auch, wie ein guter Lehrer, viele Fragen beantworten, die nicht genau im Struppi beantwortet werden? Das würde ich mit einem klaren Nein beantworten. Um eine solche Transferleistung erbringen zu können braucht man sicher eine etwas längere Ausbilungszeit als 6 Monate.

    Das geht in meinen Augen ohnehin alles an der Realität vorbei.

    Wer hat denn 6 Monate Zeit, nur um den Stroustrup durchzuarbeiten? Und die nächste Frage auch gleich nach: wozu sollte das überhaupt gut sein?

    Die meisten haben irgendwie keine Vorstellung von der Realität... denkt mal an die ganzen Freelancer, da ruft Montags ein Kunde an und fragt nach einem Projekt. Dienstags Kontaktbesuch, der Softwerker erfährt, daß der Kunde eine Implementation in C# wünscht. Hm, Schwerpunkt bisher war immer C++ und Java. Bis Freitag soll man eine vorläufige Schätzung abgeben, welchen Zeitaufwand die Sache erfordert. Projektstart in 2 Wochen, wenn man den Auftrag annimmt. Zeitziel ca. 2 Monate. Im Laufe der Vorüberlegungen stellt man auch noch fest, daß man im Laufe des Projekts mit ADO.NET arbeiten muß, wovon man gar keine Ahnung hat. Oberflächen sollen auch entwickelt werden, mit WinForms - oh Mann, außer mal 2 Tage im neuen Studio hat man damit noch gar nicht rumgespielt. Und wir waren auf einem 3-Tage-Seminar zu .NET. Also - Entscheidung: Projekt annehmen oder nicht?

    In der Realität sagen 95% der Entwickler zu so einem Projekt ja - und arbeiten es ab, sogar problemlos. Ohne Ideologie, ohne 100%ige Kenntnis der Sprache.

    Diese Forderung nach 100%iger Perfektion in einer Programmiersprache, um Projekte zu bewältigen, ist völlig unrealistisch und wird im realen Leben nicht erreichbar sein. Das ist so ähnlich wie die immer wieder gehörte Aussage, man sollte erst WinAPI beherrschen, bevor man mit MFC oder VCL beginnt. Ein hohes Ziel, nur selten erreichbar, da man bereits unverhofft an einem MFC oder VCL-Projekt arbeitet.

    Man sieht doch auch gut, welche Leute das beherrschen - man kann das sehr gut an der Anzahl der Buchautoren zu C++ abzählen. Und schaut man auf deren Seiten nach ihrer Berufstätigkeit, so stellt man fest, daß sie eben keine Softwareentwickler im normalen Berufsleben sind. Sie sitzen in Instituten, sind freie Seminarleiter, Trainer oder Berater, und Buchautoren. Es ist auch klar, wer an der nächsten ISO-Norm für C++ mitarbeitet, wird seine Schwerpunkte ganz anders legen als ein Entwickler, der eigenständig Projekte ausführt.

    Aber darüber sollte man als Lernender auch mal nachdenken - will man mit seinen C++-Kenntnissen an der nächsten ISO-Norm mitarbeiten oder an einem Compilerbau mitwirken, oder will man Projekte bearbeiten und Softwareentwickler werden. Diese Bereiche sind in vielen Teilen überschneidungsfrei und eine allzu tiefe Spezialisierung in dem einen Bereich macht für den anderen blind.

    Unter dem Strich bleiben wichtig gute theoretische Grundkenntnisse (über OOP, Komponenten, Datenbanken, Funktionsweise von eventgetriebenen Systemen, GUI-Aufbau). Da sollte man sicher sein.

    Aber von der Sprache her empfehle ich eigentlich Scott Meyers Bücher möglichst bald zu lesen... noch vor dem Stroustrup. In der Realität kommt man nämlich sehr viel früher mit Copykonstruktoren und Speicherlöchern in Berührung, als mit einigen Details der Standardlib.

    Schwerpunkte bilden.



  • @marc++s

    jep 🙂



  • @Marc++us
    Irgendwie sehe ich deinen Punkt nicht. Es geht doch nicht darum, ob oder wann man an Projekten arbeitet. So wie ich die Frage verstanden habe geht es hier eher darum ob und wann man andere Leute ausbildet.
    Und von einem Ausbilder würde ich schon erwarten, dass er von dem Stoff den er lehrt auch ein wenig mehr Ahnung hat.
    Und nur weil es schon immer uninformierte Ausbilder gab muss man ja nicht selbst so einer werden.

    Und zu deinem Punkt: Ich glaube ehrlich gesagt nicht, dass man ein Projekt fertig bekommt ohne das zumindest ein paar im Team ein Plan von dem haben was sie machen. Klar an der Uni wird einem beigebracht, dass nur die ganz oben was können müssen und das die Programmierer dann nichts weiter als austauschbare Resourcen sind. Das widerspricht aber so ziemlich allem was ich bisher gelesen habe. Warum sonst gibt es Bücher wie "The mystical man-month" oder "Death-March" (um nur zwei zu nennen)? Wenn alles so einfach ist, warum scheitern dann so unglaublich viele Softwareprojekte?



  • Sie scheitern wegen Nutzung der VHIT-Methode ... Vom Hirn ins Terminal ohne jegliche Überlegung. Das muss allerdings nicht aus mangelnder Kompetenz in Sachen C++ sein.



  • @Marc++us
    es macht einen Unterschied (wie Elise bereits ganz am Anfang gesagt hat), ob man mit etwas programmieren kann oder ob man jemanden etwas beibringen kann. Hier geht es ja um den Fall, dass man jemand unterrichten soll, dass kann man aber nicht ohne solide Kentnisse der Sprache.

    (BTW. Es gibt aber auch einige Autoren, die praktisch arbeiten, wie zB. Herb Sutter)



  • @kingruedi:
    Schau Dir mal genau an, welche Tätigkeit Herb Sutter im praktischen macht... das ist eher die Ecke, die ich nannte. Softwareconsultant und externer Projektberater ist für mich keiner mehr, der an Projekten "tippt".

    @Dimah:
    yep, zum Teil auch damit verbunden, daß oftmals die Anforderungen nicht klar sind, welche Funktionalität eigentlich implementiert werden soll. Irgendwann haben alle was fertig, was keiner will, und man zieht die Reißleine. Im seltensten Fall hängt das davon ab, daß jemand etwas nicht beherrscht - dem Fall kann man mit Maßnahmen auch leicht gegensteuern (Seminar, Buch, ext. Berater). Hauptsächlich ist einfach nicht klar, was gewollt ist.

    @Hume:
    Du hast durchaus auch mal ein Team, in dem keiner eine Ahnung von einem Tool hat, trotzdem wird beschlossen dieses zu nehmen, Training on the job. Wie glaubst Du sind die ganzen Firmen von C auf C++ umgestiegen? 6 Monate die Arbeit niedergelegt und gelesen und geübt, bevor ein Projekt gestartet wurde? Da hieß es "das nächste Projekt machen wir in C++", es gab etwas mehr Zeit, die Tools wurden gekauft, und zwischendrin gab's ein paar Seminare wenn Zeit war. Und so entwickeln sich die Kenntnisse der meisten Mitarbeiter. Man hat Probleme, liest etwas rum ob es das Problem schon wo gibt und eine Lösung dafür... auf diese Weise lernt man dann Design Patterns, Templates und Alexandrescu kennen. Wenn der Kommunikationsfluß im Team gut ist passt sich damit der Kenntnisstand gemeinsam und gegenseitig an. Aber diese Evolution erfolgt von Projekt zu Projekt. Alte haben den Stand nicht, neuere mehr, usw. Das perfekte Projekt gibt's nicht. Bei den Freelancern ist das noch 100mal schlimmer, weil da der Kunde ein Tool vorgibt ohne es zu kennen. Bei einem eigenen Team hat man noch Einfluß auf das Tool.



  • Ach so, noch was zu den Trainern: es kann jemand durchaus ein sehr guter Seminarleiter für C++ sein, ohne den Alexandrescu gelesen zu haben.

    Das liegt schon daran, daß bei einem typischen 3 oder 5 Tageseminar doch nur ein Bruchteil der Sprache abgehandelt werden kann. Wenn der Teilnehmer mit Aha-Effekten bzgl. Klassen, Polymorphie, vector<T> und delete/Copykonstruktor raus geht, ist das Ziel bereits erfüllt. Darin muß der Leiter natürlich fit sein, aber mehr ist doch typischerweise einem Anfänger gar nicht zu vermitteln.

    Und wieviel ist das von C++? 10%? 20%?



  • 5 %



  • Schau Dir mal genau an, welche Tätigkeit Herb Sutter im praktischen macht... das ist eher die Ecke, die ich nannte. Softwareconsultant und externer Projektberater ist für mich keiner mehr, der an Projekten "tippt".

    Hmm, okay... Was ist mit dir :p da hast du dir selbst eine Falle gestellt 😉 aber du hast natürlich recht, dass die meisten Buch Autoren nicht wirklich an den Projekten tippen 😉

    Da hieß es "das nächste Projekt machen wir in C++", es gab etwas mehr Zeit, die Tools wurden gekauft, und zwischendrin gab's ein paar Seminare wenn Zeit war.

    Das sieht man leider oft an fremden Code 😉 Diese Methode ist IMHO sehr halsbrecherisch. Aber in der Praxis lässt sich das wohl kaum vermeiden 😞



  • @Marc++us
    Marshal Cline und co beschreiben in "C++ FAQs 2nd Edition" sehr schön die Katastrophen die damals beim Umstieg von C auf C++ eintraten. Und alle Autoren dieses Buch arbeiten in der realen Welt (oder haben dort gearbeitet).

    Schau Dir mal genau an, welche Tätigkeit Herb Sutter im praktischen macht... das ist eher die Ecke, die ich nannte. Softwareconsultant und externer Projektberater ist für mich keiner mehr, der an Projekten "tippt".

    Das macht er jetzt, aber hast du dir mal angeschaut, was er früher gemacht hat? Ich glaube kaum, dass man Herb Sutter vorwerfen kann, dass er nicht weiß, was man in der "realen Welt" braucht.

    Es ist bisher kaum ein Consultant vom Himmel gefallen.

    Oder nimm Frederick Brooks. Dessen "The Mystical Man-Month" enstand auch aus
    seiner praktischen Arbeit.

    Das perfekte Projekt gibt's nicht.

    Das habe ich auch nirgends behauptet oder angenommen. Es gibt aber zweifellos gute und schlechte Ausbildungen. Und mir kann keiner erzählen, dass jemand ohne Erfahrung einem Anderen eine gute Ausbildung verpassen kann.

    es kann jemand durchaus ein sehr guter Seminarleiter für C++ sein, ohne den Alexandrescu gelesen zu haben.

    Würde ich auch niemals bezweifeln. Nur wenn ein Seminarleiter über spezielle Templatetechniken reden will, dann sollte er zumindest mal in die Bücher von Alexandrescu, Vandevoorde, Barton und Nackman usw. reingeschaut haben.

    Kein Mensch lernt nur durch Praxis.



  • Dazu sollten wir zunächst mal definieren, was wir unter Praxis verstehen...

    Unter "Lernen in der Praxis" verstehe ich eben, daß man mit 3 oder 4 Büchern auf dem Tisch an einem Projekt arbeitet... aber bereits scharf. D.h. jedes Ergebnis muß benutzt werden.

    Als "Lernen in der Theorie" verstehe ich, daß man das Buch 1-3 mal durchliest, die Beispiele ausprobiert, eigene Experimente macht, aber losgelöst von Zeit und Raum, ohne sofortigen Verwertungsdruck der Erkenntnisse.

    Versteht mich hier nicht falsch, ich bin ein überzeugter Anhänger der theoretischen Grundkenntnisse und hasse Leute, die sich als Praktiker bezeichnen. Es gibt bekanntlich nichts praktischeres als eine gute Theorie.

    Ich will einfach darauf hinweisen, daß die Hoffnung oder Vorstellung, man könne sich während realen Projekten vorher oder begleitend ausführlich und grundlegend in die Theorie des Themengebiets einarbeiten ein frommer Wunschtraum ist.



  • Weiß ja net, an was für Projekten ihr arbeitet,
    aber ich fände ich schon entspannend wenn ich während eines Projektes mal die Zeit hätte mir zwei Bücher durchzulesen.

    Ein Faktor wurde hier überhaupt nicht erwähnt (vielleicht hab ich es auch überlesen). Projekte müssen mitunter unter extremen Zeitdruck durchgeführt werden.
    Da es nicht viel mit ein paar gemütlichen Seminaren und massig Einarbeitungszeit auf das Projekt buchen.

    Man muss ja bedenken das es nicht nur die verwendete Technologie ist, meist ist man schon allein genug damit beschäftigt durch die Fachlichkeit zu steigen.

    Und in dem Punkt gebe ich Hume recht, in vielen Fällen hängt das gelingen oder nichtgelingen davon ab ob jemand mit den entsprechenden Skills im Team ist.
    Zumindest ist es ein immenser Vorteil.

    Wenn du ein kleines Team hast ca. 4 reine Entwickler davon 1 bis 2 erfahrene und gute Leute ziehst du die anderen halt mit Know-How-Transfer durch.
    Kostet zwar verdammt viel Zeit gibt eine keine Alternative und ist ja auch irgendwo 'ne Investition für die Zukunft.

    Erfahrungen mit Teams wo nur unerfahrene Leute sind oder Leute die die Technologie nicht kennen hab ich nicht gemacht. Aber wo ist hier der Know-How-Transfer?
    Klar, mit genügen Zeit und Budget tun es vielleicht auch 4 Putzfrauen.

    Die Geschichte mit dem Einsetzen eines Freelancer der der keine Ahnung von der verwendeten Technologie hat, kann ein sehr teurer Spass werden. Wenn es keine alternativen gibt sicher, aber nur als letzes Mittel.

    O'Dog

    [ Dieser Beitrag wurde am 14.01.2003 um 21:42 Uhr von O'Dog editiert. ]


Anmelden zum Antworten