Überfordert mit Projekt?
-
Ich würd als Anfänger auch erstmal mit was kleinerem anfangen.
Bei allem anderen verhaspelt man sich, hat keine Lust mehr weiterzumachen und wenn man mehr Erfahrung hat schmeisst man den damaligen Quelltext eh in die Tonne weil er so mies ist.
Ich hab als erstes in Basic ein Textadventure gemacht, dann ein Space Invaders, dann binich auf C++ umgestiegen und hab da allerlei kleine Progrämmchen und Spielchen gemacht wie Tetris, Sparfachverwaltung, Slotmachine usw.
Und jetz bin, nachdem ich mich dafür in der Lage fühle seit nem Jahr dabei ein Rollenspiel zu programmieren.
Und es war gut so weil es wesentlich motivierender ist abundzu auch mal was zum laufen zu bekommen.
-
Jeder sollte mit den Projekten anfangen der Komplexität er überblicken und lösen kann.
Da ich auch ständig Praktikanten, Diplomanden, und BA-Stundenten ausbilde, fange ich bei jedem mit einem einfachen Projekt aus dem Tooling Bereich an. Daran kann ich ihren Wissenstand und ihre Problemlösungsverfahren feststellen.
Interessanterweise haben die meisten Probleme mit der Problemanalyse, d.h sie haben Schwierigkeiten das Problem in bearbeitbare Teilprobleme zu zerlegen. Probleme mit der Umsetzung in eine Computersprache fangen erst danach an.Danach bekommen sie weitere Aufgaben die ihre derzeitigen Fähigkeiten ausreizen und sie so dazu bringen sich weiter zu entwickeln.
Mit dem Ansatz scheinen wir Erfolg zu haben, denn etliche kommen für weitere Praktika/Diplomarbeiten wieder. Und wir haben ettliche gute von diesen nach ihrem Abschluß auch eingestellt.
-
ich denke, wenn man einen Praktikanten/Azubi hat, dann ist das ein Unterschied zu einem Tutorial, weil man direkt einen Ansprechpartner hat und du kaust den Azubis sicher nicht alles vor und die tippen das nur ab.
Irgend wann fängt jeder Anfänger mit einem Projekt an, dass ihn meistens übersteigt. Trotzdem lernt man enorm viel dadurch IMHO.
btw. fänd ich es gerade für Fortgeschrittene Leute interessant, wenn es Tutorials gäb, wo genau die Implementierung einer Anwendung beschrieben wird, damit man mal eine praktische Anwendung der ganzen Dinge sieht, die man immer in so Büchern wir "Modern C++ Design" liest sieht. Außerdem würde einem das sicher noch viel zum Thema Planung etc. beibringen. Für Anfänger ist das aber IMHO daneben!
-
kingruedi schrieb:
btw. fänd ich es gerade für Fortgeschrittene Leute interessant, wenn es Tutorials gäb, wo genau die Implementierung einer Anwendung beschrieben wird, damit man mal eine praktische Anwendung der ganzen Dinge sieht, die man immer in so Büchern wir "Modern C++ Design" liest sieht.
<flame>
Du wirst kaum ein Buch zu etwas finden, das nicht eingesetzt wird.Sachen aus Modern C++ Design wirst Du in echten Industrieanwendungen vielleicht 2005/2006 finden.
Ich meine, es stellt für viele Leute immer noch einen echten Sprung nach Vorne dar, wenn sie virtual statt switch verwenden.
</flame>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. Viele Anwendungen entstehen nach wie vor über die beliebte "Copy, Paste & Modify-Policy".
Gerade viele freie Entwickler arbeiten so. Wie soll der gute Mann auch sonst ein Projekt halbwegs wirtschaftlich abschliessen, wenn er für eine Meß- und Visualisierungsanwendung inkl. Doku in UML ein Angebot über 10000 EUR abgibt? Da sind bahnbrechende Neuansätze nicht drin.
Meine Meinung nach wird hier die Befruchtung eher durch die Hobby- und Freizeitprogrammierung voran getrieben, wo Zeit keine Rolle spielt, aber die Ideen bekannt werden.
-
Also ich denke es kommt auch auf die Person an, denn ich hab stets viele Idee, darunter auch Große... und selbst wenn ich diese in Angriff nehme, mache ich viele kleine "Zwischenschritte", so daß sich nicht zuviele Fehler einschleichen... und dabei stelle ich immer wieder fest, daß gerade die Erfolge dieser vielen Zwischenschritte der Motor für die Großen sind, ergo... große Ziele stecken und kleine Schritte gehen
So Long Winn
-
@Marc++us
dass die meisten Techniken nicht in der Industrie eingesetzt werden, ist mir klar (vielleicht liegt das zum Teil auch daran, dass die Techniken zum Teil zu abstrakt beschrieben werden).Ich fänd es interessant, wenn man einige Projekte detailiert vorstellt. Also die Techniken zeigt, dadurch, könnte man IMHO eine Menge lernen.
-
kingruedi schrieb:
Ich fänd es interessant, wenn man einige Projekte detailiert vorstellt. Also die Techniken zeigt, dadurch, könnte man IMHO eine Menge lernen.
na dann schau dir bloss kein projekt von der firma an bei der ich arbeite :p
-
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 ProgrammiersprachenDas 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.
-
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.