Überfordert mit Projekt?



  • Marc++us schrieb:

    Durch den enormen Zeitdruck entscheidet man sich eben oft für eine sicher funktionierende aber unelegante Lösung.

    Kenne ich. Aber die Schlamperei (#defines etc.) spare ich mir bei der Arbeit meistens fürs UI auf. Da fallen die Fehler dem Tester am leichtesten auf, können schnell geflickt und stören die Funktionsweise des Programmes nicht so erheblich. Es sieht zwar hinterher Klasse aus und lässt sich gut bedienen aber in dem UI-Code sollte besser keiner gucken. Bei dem Programm dahinter gebe ich mir aber meistens peinliche Mühe (naja, bis auf die portierbarkeit aber die spielt meistens eh keine große Rolle). Ich trenne aber immer eigentliches Programm von UI. Wenn ich wirklich plattformunabhängigen und sauberen Code schreibe dann mache ich das in Ruhe zuhause.



  • void OT() {
    wenn wir bei dem Thema UI sind. Bei GTKmm ist das wunderbar gelöst IMHO. Man entwirft die GUI mit glade und speichert das Design in einer XML Datei. Die UI wird dann dynamisch zur Laufzeit geladen und in dem Programm muss man nur noch die entsprechenden Signal-Callbacks setzen und fertig ist die GUI. So trennt man wunderbar Backend und Design.
    Der einzige Nachteil ist IMHO, dass XML benutzt wird 😉
    }



  • Marc++us schrieb:

    Unseren Azubi Fachinformatiker/AE lasse ich kleinere Projekte erstellen, wo er mit Konsolensachen anfängt, dann GUIs dazu baut, und diese Projekte haben einen zunehmenden Schwierigkeitsgrad. Ausgewählt wurden dafür Dinge, die nicht mission critical sind, aber von vielen Leuten als "nice to have" eingestuft wurden. Allerdings hat man bei einem Azubi auch etwas mehr Zeit...

    Sollte der Azubi nicht schon programmieren können, bevor er aufgenommen wird (Informatikunterricht)? 😮

    Dann könnt ich ja jetzt theoretisch auch schon als Informatiker anfangen.

    ChrisM



  • kaum ein Informatikunterricht lehrt dich wie du mit grossen Projekten zurecht kommst.
    Meist erstellt man da übersichtliche Programme mit 3 Seiten Quellcode oder so.. und wenns dann mal 100 Seiten sind wissen die meisten nicht wie sie damit umgehen sollen.



  • Das Erlernen des Umganges mit großen Projekten ist ja auch nicht Primärziel des Informatikunterrichtes.



  • Marc++us schrieb:

    Also gerade im Industriebereich dauert das sehr lange, bis das wirklich durchsickert. Durch den enormen Zeitdruck entscheidet man sich eben oft für eine sicher funktionierende aber unelegante Lösung.

    Klein anfangen hätte ich mir auch gewünscht. Aber in der Realität ist das doch nie der Fall. Ich hab noch nie was in C++ gemacht und muß es jetzt trotzdem hinkriegen. Graphische Oberfläche + Oracle + Windows & Mac. Software eines Drittherstellers einbinden, der ein gräßliches Handbuch mitliefert...
    Ab ins kalte Wasser, effektiv ist das sicher nicht, aber normal.
    Ich beneide unseren Azubi, der in der Schule sitzt und sich berieseln läßt. Und frage mich dann gleichzeitig, was die dort eigentlich machen, wenn ich nach vier Wochen C++ mehr hinkriege als er nach einem Jahr?
    Ich denke, Leute mit dem nötigen Biß sollten gleich ein größeres Projekt anfangen. Was Sinnvolles, das einem auch das Gefühl gibt, nicht seine Zeit zu verschwenden.



  • @volkard:
    Witzig, aber leider absolut zutreffend. 😃

    Also ich jage die Azubis auch sofort ins kalte Wasser.
    Relative anspruchsvolle Aufgaben, enges Zeitfenster und verlange viel Eigeninitiative und Verantwortungsgefühl.
    Gerade das erste Lehrjahr schafft selten mehr als 20 Klassen, ohne das die Struktur hoffnungslos zusammenfällt.
    Wenn sie dann Alles in Klumpen gecodet haben, fustriert und enttäuscht sind, dann sind Sie erst bereit für die ersten wichtigen Lektionen ... 😉



  • Vieleicht sag ich mal als Azubi FI-AE was dazu, ich bin zwar etwas ungeeignet, da ich schon mit 11 mit BASIC angefangen hab,
    aber ich habe durch die Berufsschule einen Eindruck davon, was Azubis heut so 'können'/'können müssen'.
    Wir haben 6 Fi-AE bei uns in der Klasse davon:
    - einer proggt seit er keine Windeln mehr trägt in C/C++, Delphi und ASM und das alles extrem gut (ist Intro-Coder).
    - einer (ich) proggt seit so 2 Jahren gelegentlich in C/C++ und kann so das meiste was der Inhalt der typischen C++ Grundlagen Bücher ist,
    lieber programmiere ich aber in VisualBasic ( seit 5 Jahren und auch schon wirklich große Projekte), weil man dan nur ein Bruchteil der Entwicklungszeit hat
    - drei kannten vor ihrer Ausbildung C/C++ nur vom Hörensagen und generell keine Programmiersprachen

    Das erste Jahr haben wie jetzt hinter uns und nach wöchentlich 2 STunden C++ Schul-Unterricht sind wir jetzt grad mal bei Funktionen!! Mit anderen Worten: Es ist ein Witz! Könnt man grad weglassen...
    Was ich in der Firma machen lässt sich grob so umschreiben: VBA-Makros für Excel programmieren, Support und ab und an mal ein C++ Projekt über 2 Wochen (Importbiblitheken für Scansoftware, Tools für Barcodedruck, Druckdatenstromaufbereitung ). Darauf, dass meine eigene Weiterbildung dabei nicht zu kurz kommt, muss ich selber achten: Wenn ich mal Zeit hab lern ich die Tiefen von C++ oder WinApi etwas besser kennen, lerne mich mit .NET anfreunden oder bastel ein paar Tools für Steganografie, Serverüberwachung, Teammanagement oder irgendwelchen Systemtools rum. Am liebsten würde ich ja an meinen 3D-Games rumbasteln, aber das wäre zu auffällig. 😃



  • illuminator schrieb:

    Mit anderen Worten: Es ist ein Witz! Könnt man grad weglassen...

    Den Eindruck hab ich auch. Aber das ist doch echt schlimm 😡 !
    Unsere Studenten sagen mir allerdings auch, daß sie richtiges Programmieren beim Studium nicht lernen, sondern eher allgemeine Konzepte der Softwareentwicklung. Ist ja sicher auch ganz nett, nur würde mich mal interessieren, wo man denn nun richtig vertieft(!) programmieren lernt. Sind das alles selfmade-"Freaks", die in irgendwelchen Foren meine Anfänger-Fragen beantworten?



  • Bini schrieb:

    Ist ja sicher auch ganz nett, nur würde mich mal interessieren, wo man denn nun richtig vertieft(!) programmieren lernt.

    In der Praxis.

    Ein SW-Studium ist m.E. dazu da, gewisse Techniken und Grundmittel bezubringen. Designpattern, etc. Programmieren selber allerdings kannst du in keiner Schule lernen. Das hat viel mit Erfahrung zu tun. Es gibt auch exakt so viele Vorgehensweisen wies Programmierer gibt. Die Shcule kann dir nur ein paar Vorgehensweisen aufzeigen oder dir helfen deine eigene Vorgehensweise zu finden.

    -junix



  • Ah, was ich vergessen habe: Versteift euch nicht zusehr auf eine Sprache. Programmieren kann man mit jeder Sprache. Und man kann mit jeder Sprache jedes Problem Lösen. Es ist einfach eine Frage des Aufwands.

    Betrachtet die Sprache als Werkzeug. Und wer würde mit einem Bolzenschneider einen Faden durchtrennen?

    @illuminator: Du magst VB lieber wegen der schnelleren Fortschritte? Das muss ich doch noch kurz demoniteren:
    Wieso machst du schnellere Fortschritte? Wegen des Frameworks. Hat das Framework was mit VB zu tun? Nein.
    Kennst du zum Beispiel den C++ Builder (VCL) bzw. Delphi (VCL)? oder das "neue" C#-Framework? Alle haben ebenfalls den Gedanken von Rapid Application Development implementiert und das Framework entsprechend aufgebaut. Die Fortschritte sind vermutlich gleich gross wie mit VB. Nur hald mit anderer Syntax.

    -junix



  • Pah, die Schule... die wollen uns da alle zu einem Einheitsbrei aus DIN-Norm Programmiern machen. Wir dürfen nicht mal Statements wie "i++" oder "i+=2" verwenden! Entspräche nicht der DIN-Norm für C++ Programmierung, sei zu unverständlich. So ein Quark! Und dem Stil gehts weiter, z.B. dass es nur ein Befehl pro Zeile geben soll, das "i=4;j=5;" wäre nicht erlaubt!
    Oder sowas ist auch verboten:

    if(foo2=GetBlaBla(foo))
    

    stattdessen solls so sein

    foo2 = GetBlaBla(foo);
    if (foo2 != NULL) // man beachte auch die Leerzeichen
    

    In einer Klausur sollen das alles "Fehler" sein...
    An lauter so bescheuerte Regeln sollen wir uns halten.
    Davon gibts noch mehr, die merk ich mir aber alle nicht, denn programmieren ist für mich auch etwas Individuelles, wo jeder seinen Stil finden muss.



  • @junix:

    Du magst VB lieber wegen der schnelleren Fortschritte?

    Wo hab ich das denn geschrieben? Da steht:

    lieber programmiere ich aber in VisualBasic ( seit 5 Jahren und auch schon wirklich große Projekte), weil man dan nur ein Bruchteil der Entwicklungszeit hat

    und das hat z.B. damit zu tun, das ich mich nicht mit seltsamen Fehlern oder kompletten Programmabstürzen rumärgern muss, sondern oft schon vor der Kompilierung die Zeile mit dem Fehler markiert bekomme, samt einer immer voll aussagekräftigen Fehlermeldung. Wenn ich irgendwo in C eine Klammer vergesse, dann bekomme ich ne Meldung ala "unerwartetes Dateiende". Wenn ich VB einen Arrayindex hab der überläuft, dann bekomm ich das mitgeteilt und keine Accessviolation die ich erst noch suchen muss, wenn das programm nicht sogar nur fehlerhaft weiterläuft.
    Da Lob ich mir das Debugging in VB.



  • illuminator schrieb:

    An lauter so bescheuerte Regeln sollen wir uns halten!

    Die Regel wegen der separaten Prüfung ist doch gar nicht bescheuert sondern macht durchaus sinn... Es macht den Code mit einem Schlag lesbarer und das Debugging vereinfacht sich ebenfalls.

    Auch dass man nicht zwei Statements auf die selbe zeile schreiben sollte macht absolut sinn (s.o. gleiche Begründung)

    illuminator schrieb:

    [...]denn programmieren ist für mich auch etwas Individuelles, wo jeder seinen Stil finden muss.

    Aber bevor man seinen eigen stil finden kann, muss man mal einen Stil haben von dem man ausgehen kann. Vielleicht sind gewisse Regeln die dir zunächst stupide erscheinen durchaus sinnvoll. Das merkt man aber erst, nachdem man einige auch grössere projekte durchgezogen hat und dann am 1. wieder rumfummeln sollte. Aber über stile kann man (und wurde hier auch genug) streiten...

    Was ich sehe, ist, dass ihr die Schule falsch einordnet. Es ist nichtmehr wie früher wo einem alles hingetischt wird. In dieser Schulform bekommt man einen Grundstock vermittelt, den man beherrschen sollte. Das ist aber nicht alles. Zu diesem Grundstock muss man noch vieles in eigeninitiative erlernen und erfahrungen machen.

    -junix



  • Und man kann mit jeder Sprache jedes Problem Lösen.

    echt??



  • illuminator schrieb:

    Wo hab ich das denn geschrieben?

    Selbstverständlich meinte ich die Projektfortschritte... war nicht klar formuliert...

    illuminator schrieb:

    und das hat z.B. damit zu tun, das ich mich nicht mit seltsamen Fehlern oder kompletten Programmabstürzen rumärgern muss, sondern oft schon vor der Kompilierung die Zeile mit dem Fehler markiert bekomme, samt einer immer voll aussagekräftigen Fehlermeldung.

    Dafür kann aber die Sprache nix, das ist ne Frage des Compilers...

    illuminator schrieb:

    Wenn ich VB einen Arrayindex hab der überläuft, dann bekomm ich das mitgeteilt und keine Accessviolation die ich erst noch suchen muss, wenn das programm nicht sogar nur fehlerhaft weiterläuft.

    Reden wir nun von C oder C++? In C++ kommts ganz drauf an. Du hast in C++ die Möglichkeit, Containerklassen als Arrays zu verwenden. Diese werfen bei Indexüberschreitung eine Exception (keine AccessVoilation). Während du aber in VB gezwungen bist diese (langsamere) Abstraktion eines Arrays zu benutzen, hast du in Cpp die Möglichkeit auch gewöhnliche Arrays zu verwenden. Allerdings musst du dir dann bewusst sein, dass diese mit Vorsicht und vielleicht noch 1-2 Code-Reviews zu behandlen hast. Es hält dich niemand davon ab, ausschliesslich komplexe Typen zu verwenden. Geht einfach auf Kosten der Geschwindigkeit.

    Aber bevor das hier zu einem Sprach-Krieg ausbricht: Wie ich oben schon sagte: Die Sprache ist ein Werkzeug. Jede Sprache hat ihre Stärken und ihre Schwächen. Aber keine Sprache kann vor der Dumm-/Faulheit des Programmierers schützen. Die Explosion der ersten Ariane 5 die wegen einer Nachlässigkeit des Programmieres erfolgt ist beweist dies. Denn die Steuerung war in einer der sichersten Sprache codiert dies gibt. (Ada)

    illuminator schrieb:

    Da Lob ich mir das Debugging in VB.

    Das Debugging hat wiederum nix mit der Sprache zu tun. Und wie ich oben schon erwähnt habe. Alles eine Frage des verwendeten Frameworks. Ich krieg in der VCL auch nette Fehlermeldungen wenn ich Arrayindexe überschreite... und die VCL ist kein VB... Nur bin ich nicht wie in VB gezwungen dieses abstrakte Framework zu benutzen.

    -junix



  • ChrisM schrieb:

    Sollte der Azubi nicht schon programmieren können, bevor er aufgenommen wird (Informatikunterricht)? 😮
    Dann könnt ich ja jetzt theoretisch auch schon als Informatiker anfangen.
    ChrisM

    lol ? ausbildungen sind doch zum lernen .. Außerdem sind die Lehrkräfte landesweit in Gymnasien und Realschulen so bescheiden geschult .. das keiner von denen einem sinnvollen info unterricht bieten kann ..

    Welcher gute Informatiker geht scho so lowlevel Unterrichten .. wenn er in der Industrie oder Uni das doppelte mit der hälfte stress verdienen kann ..

    so long z.T. Informatikunterricht an Schulen



  • null schrieb:

    Und man kann mit jeder Sprache jedes Problem Lösen.

    echt??

    Wenn schon zitieren, dann bitte alles was zum Kontext gehört:

    man kann mit jeder Sprache jedes Problem Lösen. Es ist einfach eine Frage des Aufwands.

    Was ich hoffentlich nicht erwähnen muss ist, dass es sich bei dem Term "jedes Probelm" ausschliesslich um Softwaretechnische Probleme handelt (o;

    -junix



  • junix schrieb:

    null schrieb:

    Und man kann mit jeder Sprache jedes Problem Lösen.

    echt??

    Wenn schon zitieren, dann bitte alles was zum Kontext gehört:

    man kann mit jeder Sprache jedes Problem Lösen. Es ist einfach eine Frage des Aufwands.

    Damit er ganz zufrieden ist und keine weiteren Mißverständnisse auftreten, sollten wir vielleicht formalistisch richtig noch hinzufügen, dass Du mit jeder Sprache, jede vollständige Programmiersprache meinst. 😉

    Ciao
    shoat



  • dazu kann man nur sagen was man immer in #c++ so liest nipnagger


Anmelden zum Antworten