Zum Inhalt springen

Programmierprojekte


flashpixx

Empfohlene Beiträge

Hallo,

ich bräuchte einfach mal ein paar Anregungen zu folgender Problematik:

Ich habe häufiger mit Studenten der Informatik im Bachelor zu tun, die zwar die Vorlesungen besucht haben, aber völlig überfordert sind die Kenntnisse auf reale Projekte zu übertragen.

Es geht letztendlich z.B. um Fragen:

Wie fange ich mit der Programmierung an?

Wie strukturiert man einen Algorithmus einmal theoretisch und dann praktisch in einer Sprache?

In der Praxis verstehen die Leute oft die Programmierung, aber wenn sie selbst ein Problem umsetzen müssen, sind sie hilflos überfordert. Zusätzlich kommen Probleme dazu, dass sie noch nicht einmal wissen, nach welchen Schlagwörtern sie im Netz suchen sollen, um sich dem Problem anzunähern. Wenn z.B. die Aufgabe heißt "entwickle eine Klasse zum auslesen von Webseiten", dann wären ja Schlagwörter wir HTTP, Socket, HTML, Parser usw. Möglichkeiten grundlegende Informationen zu sammeln.

Hat jemand Ideen, wie man da helfen kann? Ich denke eigentlich, dass man selber diesen Sprung schaffen sollte, natürlich wird man mit der Zeit besser und auch schneller, aber manchmal weiß ich nicht, ob ich mit einem (fast) abgeschlossenen Bachelorstudium nicht "zu viel" erwarte, obwohl ich eigentlich selbst weiß, dass solche Dinge in der Ausbildung vermittelt werden, somit ein Student analog können muss.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Das unterscheidet eben die Theorie von der Praxis. Müssen sie halt lernen, wie ein Azubi im ersten Lehrjahr das auch muss. Am besten wird da ein Betreuer sein, der sie anfangs an die Hand nimmt, bis sie es selber können - quasi wie in der Ausbildung der Ausbilder. Wenn sie aber nach der Probezeit immer noch nicht selbstständig arbeiten könne, dann würde ich mich nach was neuem umsehen.

Edit: 127.0.0.1 hat Recht, ich bin jetzt von einer "Frisch-von-der-Uni"-Situation ausgegangen. Aber nach nochmaligem durchlesen deiner Einleitung hört sich das mehr nach einem Praktikum an?! Letztlich bleibt das Vorgehen wohl das selbe => Betreuung.

Bearbeitet von bigvic
Link zu diesem Kommentar
Auf anderen Seiten teilen

Das unterscheidet eben die Theorie von der Praxis. Müssen sie halt lernen, wie ein Azubi im ersten Lehrjahr das auch muss. Am besten wird da ein Betreuer sein, der sie anfangs an die Hand nimmt, bis sie es selber können - quasi wie in der Ausbildung der Ausbilder.

Mache ich auch. Mein Ansatz ist erst mal recht einfach, dass sie sich die Umgebung selbst installieren, gerade beim selbst kompilieren diverser Bibliotheken, muss man eben schon mal etwas nachdenken. Im Grunde haben sie alle eine Programmiervorlesung besucht, d.h. Klassen, Variablen etc sollten in meinen Augen bekannt sein. Was ich natürlich mache so etwas noch mal dann anhand des Codes erklären, weil ja die Strukturen je nach Sprache unterschiedlich aussehen.

Meine Standardbsps sind z.B. einen kleinen Taschenrechner schreiben, der von der Konsole gestartet wird wie z.B. "rechner 4 + 5", aber schon dort sind massive Schwierigkeiten z.B. viele prüfen z.B. die Eingaben nicht, einige Wissen überhaupt nicht wie bzw wo sie anfangen z.B. in Java wäre ja eben die Entwicklung einer main-Klasse mit entsprechender Funktion (in C++ ist es ähnlich) [da ich beide Sprachen benutze, mache ich so Bsps immer in beiden Sprachen]. Ich meine es ist ja nicht wie bei einem Azubi, bei dem man keine Grundkenntnisse voraussetzt, sondern der Bachelor ist ein Abschluss, d.h. Theorie sollte da sein, auch macht man während dem Studium einige praktische Umsetzungen, so dass man wenigstens "kleine" Aufgaben erledigen kann. Oft scheitert es aber schon an dem Aufbau eines Algorithmus, also das klassische Fluss- oder Nassi-Schneider-Diagramm, von UML Klassendiagramm, State-Chart o.ä. brauche ich gar nicht anfangen. Da eben die Codes sich nicht nur mit "Anwendungsprogrammierung" beschäftigen, sondern eben viele numerische / heuristische Verfahren implementieren, sind sie natürlich nicht unbedingt einfach, aber kein Anfänger wird z.B. direkt an die LAPack dran gelassen, sondern es geht um Sachen wie z.B. Klassenentwicklung um z.B. einen Webservice abzufragen o.ä. und ich denke das sollte mit Hilfe machbar sein. Ich stehe halt sowohl für Syntax-, wie auch inhaltliche Frage immer zur Verfügung, nur oft fehlen so grundlegende Dinge, wie z.B. Consolen Bedienung unter Linux, das korrekte Aufrufen des Compilers etc. Ich denke eigentlich, dass man das erwarten kann bzw. jemand in der Lage ist dafür auch mal eine Suchmaschine zu verwenden. Die Codes in denen sie dann nach der Einarbeitung arbeiten sind vollständig dokumentiert, d.h. man findet zu jeder Klasse / Namespace / Methode / Property immer eine Information, genauso wie Callergraphen existieren, wo man sich ggf anschauen kann, wie Methoden aufgerufen werden

Edit: 127.0.0.1 hat Recht, ich bin jetzt von einer "Frisch-von-der-Uni"-Situation ausgegangen. Aber nach nochmaligem durchlesen deiner Einleitung hört sich das mehr nach einem Praktikum an?!

Beides ist der Fall.

Bearbeitet von flashpixx
Link zu diesem Kommentar
Auf anderen Seiten teilen

Meine Erfahrung ist: Learning by doing geht am besten. Also das erste Projekt nehmen, vorstellen, Aufgaben verteilen... und dann in der Gruppe (sind es mehrere) gemeinsam weitermachen... "wie würdet Ihr jetzt anfangen?" ... gemeinsames Brainstorming. Wenn die nicht wissen, wonach sie suchen önnen/müssen/sollten, dann fehlt ihnen die Fähigkeit zur Abstraktion des Problems. Ich würde mich dazu setzen und das erste Projekt Schritt für Schritt gemeinsam machen... die Fragen, die sich an den einzelnen Stationen ergeben, stellen, alle einmal nach Lösungen grübeln lassen und dann weitermachen... und auch jeweils begründen, wann Du was wie und warum gemacht hast. Wie beim Führerschein: erst mit Fahrlehrer und irgendwann alleine.

Link zu diesem Kommentar
Auf anderen Seiten teilen

lso das klassische Fluss- oder Nassi-Schneider-Diagramm

hatte ich im studium nie, dafür uml noch und nöcher, aber entweder kriegt du die leute, die mit 4.0 durchgekommen sind oder einfach nur stinkend faule absolventen, denn das von dir geforderte sollte jeder viertsemester auf die reihe kriegen

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hmm hört sich ziemlich krass an. Bei Praktikanten die noch nicht lange studieren kann ich das nachvollziehen das da der Anfang schwerfällt. Aber bei einem abgeschlossenem Studium frage ich mich ernsthaft was der jenige die ganze Zeit gemacht hat und vorallem wie er das Studium geschafft hat wenn da solche Lücken (klaffende riesige schwarze Löcher triffts wohl eher) vorhanden sind.

In ersterem Fall würde ich vorsichtig mit kleineren Projekten starten wie du es ja auch machst aber nicht mit nem Taschenrechner oder so sondern irgendwas suchen was auch einen realen Anwendungsfall bei euch hat damit die Motivation größer ist. Ich denke irgendwann ergibt sich das dann vorallem wenn dann ein paar mehr Vorlsungen besucht wurden.

Im letzterem Fall würde ich mal prüfen ob die Probezeit noch besteht ;)

Link zu diesem Kommentar
Auf anderen Seiten teilen

Bei Praktikanten die noch nicht lange studieren kann ich das nachvollziehen das da der Anfang schwerfällt.

Das stimmt wohl, aber sagen wir mal so, dass nach ab dem 3/4 Semester da durchaus klar sein sollte wie man kleinere Algorithmen konzipiert

Aber bei einem abgeschlossenem Studium frage ich mich ernsthaft was der jenige die ganze Zeit gemacht hat und vorallem wie er das Studium geschafft hat wenn da solche Lücken (klaffende riesige schwarze Löcher triffts wohl eher) vorhanden sind.

Ich habe dahin gehend den Eindruck, dass zwar der Stoff gelernt wurde, aber das Wissen nicht vernetzt wird, d.h. man kennt die Definitionen, weil man das mal auswendig gelernt hat, aber das man z.B. Inhalte aus der Mathematik dann real in einem Algorithmus braucht, das ist Neuland.

In ersterem Fall würde ich vorsichtig mit kleineren Projekten starten wie du es ja auch machst aber nicht mit nem Taschenrechner oder so sondern irgendwas suchen was auch einen realen Anwendungsfall bei euch hat damit die Motivation größer ist.

Wäre eigentlich auch mein Gedanke, aber hier entsteht das Problem, dass ich nicht jede Lücke füllen kann. Würde ich gerne machen, aber wo fängt man da an. Ich meine ich hatte schon mal einige Klassen aus dem Echtsystem genommen, Methodencode entfernt und einfach diesen "neu schreiben" lassen. Aber viele können Compiler- und Linkerfehler überhaupt nicht interpretieren bzw. daraus den Rückschluss ziehen, wo der Fehler im Code liegt.

hatte ich im studium nie, dafür uml noch und nöcher, aber entweder kriegt du die leute, die mit 4.0 durchgekommen sind oder einfach nur stinkend faule absolventen, denn das von dir geforderte sollte jeder viertsemester auf die reihe kriegen

Genau das war mein Gedanke auch, aber mein Eindruck scheint dahin zu gehen, dass es inzwischen viele sind. Wenn ich nur die Noten sehe, dann liegt es nicht daran.

Was für viele ein "Schock" ist, dass sie auf einmal eine Konsole benutzen müssen und Klassen eben nicht per Drag-and-Drop erstellen und zusammen klicken und Methodencode auf einmal implementieren sollen. So wie ich viele verstanden habe, lernen sie häufig OOP Modelle mit irgendwelchen GUI Tools zu erstellen, implementieren aber nie wirklich Inhalte. Dann ist ein Linux, indem man händisch bzw mit Makefiles arbeitet doch schon etwas anderes. Auch Begriffe wie call-by-reference / call-by-value kennen viele gar nicht, da im Studium z.B. rein Java gemacht wurde. Auch Begriffe wie Mutex, Deadlock, Transaktionssicherheit wird damit wegargumentiert "das macht doch die Programmiersprache".

Es gibt halt zwischendrin Mal ein paar, die wirklich richtig super sind, bei denen man nach zwei Wochen sagen kann, sie können alleine arbeiten, aber bei den meisten muss ich wirklich von vorne beginnen. Für mich ist die Frage eigentlich diese, ab wann man die Grenze ziehen soll, also was würde man erwarten können und was ist auf jeden Fall nicht mehr zu akzeptieren.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Ich bin zwar schon ein paar Jahre aus meiner alten FH raus, kann das ganze Problem aber sehr gut nachvollziehen. Ich hab vor vier Wochen meinen Job gewechselt und arbeite jetzt fuer eine Firma die die gesamte Toolchain selbst entwickelt. Das bedeutet dass wir z.B. nicht XML benutzen sondern was komplett eigenes und wir haben auch nicht Subversion oder Git sondern ein selbstgebautes Versionskontrollsystem welches auf unsere speziellen Anforderungen zugeschnitten ist.

Das Resultat ist, dass ich auf dem gleichen Stand bin wie deine Studenten. Ich weiss quasi nichts. Es gibt fuer mich zwei Probleme. Zum einen haben wir so viele Zeilen Code, dass ich nicht weiss wo ich anfangen soll zu suchen. Zum anderen ist es mir nicht moeglich zu erkennen, ob auftretende Fehler normal sind und von mir selbst innerhalb von einer Minute zu beheben sind oder ob die Fehler dramatisch sind und ich das irgendwo hin eskalieren muss. Da ich nicht dauernd wie ein Idiot dastehen will, versuch ich immer erst mal den Fehler selbst zu beheben. Wenn das nichts wird frag ich halt nach einer Stunde oder so. Da geht aber dann halt immer eine Stunde verloren.

Intern versuchen wir das so zu loesen, dass jeder Anfaenger einen Mentor zugewiesen bekommt. Diesen Mentor kann man zu jeder Zeit alles fragen, ohne Einschraenkung. Das scheint mir der richtige Weg zu sein. Ein Betriebsklima welches offen und freundlich ist, das klar stellt dass Fragen die beste Loesung ist, scheint zumindest fuer uns gut zu funktionieren. Ich halte es fuer ungemein wertvoll wenn man sich nicht dumm fuehlen muss, nur weil man nicht weiss was ein Mutex ist.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Es gibt halt zwischendrin Mal ein paar, die wirklich richtig super sind, bei denen man nach zwei Wochen sagen kann, sie können alleine arbeiten, aber bei den meisten muss ich wirklich von vorne beginnen. Für mich ist die Frage eigentlich diese, ab wann man die Grenze ziehen soll, also was würde man erwarten können und was ist auf jeden Fall nicht mehr zu akzeptieren.

Für mich wäre diese Grenze erreicht, wenn derjenige nach einer angemessenen Zeit keinerlei Eigeninitiative und Fortschritte bei der Problemlösung entwickeln kann, gerade wenn Du sagst, dass Du bei Fragen jederzeit zur Verfügung stehst.

"Fachwissen" was im Studium vermittelt wird, ist eh nur von kurzer Dauer, das von Dir angesprochene Thema mit Mutexen, Traps etc. haben wir z.B. auch nie implementiert, es wurde mal am Rande in der Betriebssystemvorlesung behandelt und weshalb das wichtig ist.

Sollte Dir aber jemand kommen mit "das macht die Programmiersprache" und diese Meinung nicht in kürzester Zeit ändern, dann ist er einfach bei euch falsch, ihr schreibt offenbar den Code ja nicht in der passende Programmiersprache (das sind dann die Leute, die zwar Java soweit können, dass es für die Prüfung reicht, die meisten sehr simpel ist, aber Programmieren an sich und als Konzept nicht im Ansatz verstanden haben).

@Codekneter: Studenten mit Abschluss haben mindestens eine Seminar- und eine Bachelor/Diplomarbeit geschrieben, da baut quasi zumindest bei der Seminararbeit fast das gesamte fachliche auf Drittquellen auf, sprich ein Student sollte wohl in der Lage sein Literatur oder einschlägige Suchmaschinen zu bedienen...

Bearbeitet von Wuwu
Link zu diesem Kommentar
Auf anderen Seiten teilen

Intern versuchen wir das so zu loesen, dass jeder Anfaenger einen Mentor zugewiesen bekommt.

So ist es hier auch gelöst. Wir diskutieren im Moment, was wir noch als "akzeptabel" betrachten sollten. Wir wissen vorher, ob eben Programmierkenntnisse vorhanden sind und wenn ja, in welcher Sprache (primär haben wir Java). In der Entwicklung wird hier Java, C++ und C verwendet, wobei Java eigentlich nur als "Wrapper" dient.

Ich halte es fuer ungemein wertvoll wenn man sich nicht dumm fuehlen muss, nur weil man nicht weiss was ein Mutex ist.

Natürlich, das verlangen wir auch nicht. Jeder darf sich auch die Zeit nehmen Sachen zu wiederholen bzw sich anzueignen, so dass er sich eine Arbeitsgrundlage schafft. Und es wird auch nicht jeder an MPI oder Multithreadding von Anfang an gesetzt. Wir fangen im Grunde mit "einem-Klassen-Problem" an, so dass man eben einmal das Framework sich anschauen kann, was es dort alles schon gibt.

Wir möchten jedem die Möglichkeit bieten zu lernen, wobei bei mir häufig einfach der Eindruck entsteht, dass man letztendlich eine Schritt-für-Schritt-Anleitung bei vielen durchführen muss, d.h. Algorithmusentwurf (und hierbei schon helfen muss) auf einem Zettel ggf UML Diagramm, Framework nach passenden Codestrukturen durchsuchen ggf auch mal im Netz nach passenden Bibliotheken schauen und dann codieren.

Wir haben es schon probiert, dass wir die gleiche Aufgabe mehrfach verteilt haben und dann nach einer gewissen Zeit uns alle zusammen gesetzt haben und jede Lösung hinsichtlich pro und contra zusammen diskutiert haben. Ja nach Problemstellung konnte man dann durchaus aus zwei Lösungen eine zufriedenstellende erzeugen.

Das Resultat ist, dass ich auf dem gleichen Stand bin wie deine Studenten. Ich weiss quasi nichts. Es gibt fuer mich zwei Probleme. Zum einen haben wir so viele Zeilen Code, dass ich nicht weiss wo ich anfangen soll zu suchen. Zum anderen ist es mir nicht moeglich zu erkennen, ob auftretende Fehler normal sind und von mir selbst innerhalb von einer Minute zu beheben sind oder ob die Fehler dramatisch sind und ich das irgendwo hin eskalieren muss. Da ich nicht dauernd wie ein Idiot dastehen will, versuch ich immer erst mal den Fehler selbst zu beheben. Wenn das nichts wird frag ich halt nach einer Stunde oder so. Da geht aber dann halt immer eine Stunde verloren.

Das trifft die Problematik eigentlich ganz genau

Link zu diesem Kommentar
Auf anderen Seiten teilen

als student (zwar inzwischen master, aber seitdem hat sich nicht soo viel geaendert), bin ich doch etwas verwirrt von den negativen berichten. ich denke mal, dass es sich vorrangig um werkstudenten handelt, die die leistung nicht bringen, oder? kann es sein, dass nahezu saemtliche personen von der selben uni/fh kommen? nicht jede hochschule setzt die schwerpunkte auf softwareentwicklung und man kann (leider) nicht von jedem 5.-Semester grossartige eigeninitiative erwarten. die rueckmeldung von meinen kommilitonen ueber die zufriedenheit der unternehmen sieht deutlich anders aus. nur frage ich mich natuerlich auch, wieso man gewisse dinge nicht im vorstellungsgespraech klaert? man kann doch ein (komplett branchenunabhaengiges) problem schildern und sich die vorgehensweise erklaeren ... wenn der nicht weiter weiss, dann fragen wie er vorgehen wuerde ... wenn er auf google verweist, dann nach den stichwoertern fragen usw usf. es ist klar, dass man trotzdem nochmal mit einer mitarbeiterwahl ins klo greifen kann, jedoch sollte es nicht die regel sein.

Link zu diesem Kommentar
Auf anderen Seiten teilen

kann es sein, dass nahezu saemtliche personen von der selben uni/fh kommen?

nein leider nicht.

nicht jede hochschule setzt die schwerpunkte auf softwareentwicklung und man kann (leider) nicht von jedem 5.-Semester grossartige eigeninitiative erwarten.

Wieso kann ich das nicht im 5. Semester erwarten? Im 6. wäre man fertig und hätte ggf Verantwortung oder müsste auch Azubis anleiten.

man kann doch ein (komplett branchenunabhaengiges) problem schildern und sich die vorgehensweise erklaeren

Genau das ist das Problem, in einem solchen Gespräch kann man im Grunde eine Lösung erklären, muss man sie dann aber real umsetzen, sieht das schon ganz anders aus. Nur weil man in einem Gespräch sich eben on-fly eine Problemlösung ausdenkt, muss das in der Realität noch lange nicht so funktionieren und das kann man leider erst später feststellen.

Mein Eindruck ist eben eigentlich "nur" der, dass eben oft ein Schein- / Prüfungsmarathon gemacht wurde, aber das Wissen nicht vernetzt wird.

Bearbeitet von flashpixx
Link zu diesem Kommentar
Auf anderen Seiten teilen

Genau das ist das Problem, in einem solchen Gespräch kann man im Grunde eine Lösung erklären, muss man sie dann aber real umsetzen, sieht das schon ganz anders aus. Nur weil man in einem Gespräch sich eben on-fly eine Problemlösung ausdenkt, muss das in der Realität noch lange nicht so funktionieren und das kann man leider erst später feststellen.

Trotzdem kann ich doch erkennen, ob derjenige strukturiert an ein Problem herangeht oder einfach mal wahllos auf gut Glück.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Wieso kann ich das nicht im 5. Semester erwarten? Im 6. wäre man fertig und hätte ggf Verantwortung oder müsste auch Azubis anleiten.

ohne eine grundsatzdiskussion uni vs. fh vs. xyz starten zu wollen, glaube, ich, dass das problem insbesondere daran liegt, dass es vielen zu leicht gemacht wird, zu studieren - gerade an sehr kleinen, unbekannten fhs - am besten noch einen studiengang wie medieninformatik oder aehnliches. gerade wenn der studiumsgang sehr "persoenlich" ist, sinkt oft die eigeninitiative. ich habe dies (in einer komplett anderen branche) bei meiner freundin gesehen.

Genau das ist das Problem, in einem solchen Gespräch kann man im Grunde eine Lösung erklären, muss man sie dann aber real umsetzen, sieht das schon ganz anders aus. Nur weil man in einem Gespräch sich eben on-fly eine Problemlösung ausdenkt, muss das in der Realität noch lange nicht so funktionieren und das kann man leider erst später feststellen.

achso, ich habe das darauf bezogen, dass viele nicht einmal die schlagwoerter wissen. ob sie diese kennen, laesst sich in einem vorstellungsgespraech schon mal rausfinden. ich wuerde den leuten ein diagramm zur loesung eines problems beim vorstellungsgespraech zeichnen lassen. ob das jetzt komplett valides uml ist, ist im prinzip egal, aber ich denke, da sieht man schon ein wenig ob er ahnung hat. die technische umsetzung natuerlich noch nicht - aber ich bin der ueberzeugung, dass dieses mit einem ordentlichen abstraktionsvermoegen nicht der stolperstein sein sollte.

Mein Eindruck ist eben eigentlich "nur" der, dass eben oft ein Schein- / Prüfungsmarathon gemacht wurde, aber das Wissen nicht vernetzt wird.

natuerlich ist gerade beim bachelor/master einiges anders geworden und wir muessen eben auch mal einen schein machen, der uns nicht so interessiert, weil wir die credits benoetigen. ich bin mir allerdings nicht sicher, ob die leute das wissen nicht vernetzen koennen. Im Prinzip glaube ich das naemlich schon - ich denke eher, dass die praxis noch fehlt. Als unternehmen wuerde ich eher darauf setzen, jemanden aus dem 1./2. semester zu rekrutieren, der noch nicht vorbelastet ist und mir dann im normalfall auch 3/4 jahre bleibt.

mal so generell: kann es sein, dass ihr vor allem deshalb, die nicht allzu faehigen studenten bekommt, weil ihr schlecht bezahlt? unternehmen sind bei der werkstudentenbezahlung oftmals sehr sparsam und so etwas raecht sich im normalfall.

Bearbeitet von falke_
Link zu diesem Kommentar
Auf anderen Seiten teilen

ob sie diese kennen, laesst sich in einem vorstellungsgespraech schon mal rausfinden.

Das ist richtig, obwohl ich hier auch schon die Erfahrung gemacht habe, dass jemand extrem nervös war und im Grunde ein Blackout hatte und fachlich oberflächlich große Lücken gezeigt hat. Als er dann real in der Entwicklung saß, kann ich nur sagen, hervorragende Arbeit. Es lag eben an der Situation des Gespräches

die technische umsetzung natuerlich noch nicht - aber ich bin der ueberzeugung, dass dieses mit einem ordentlichen abstraktionsvermoegen nicht der stolperstein sein sollte.

Da ist eben genau das Problem. Viele können "hübsche Diagramme" malen, aber wenn es darum geht, das ganze mit Leben zu füllen, dann hakt es eben oft. Ich möchte halt auch nicht sagen, dass ich einfach einen Schwellwert setze, wie "wer das nicht schafft fliegt raus", sondern eher dass jemanden Hilfestellung leistet um zu prüfen, ob es für ihn das richtige ist.

Wir haben häufig die Stolpersteine: Wie kommt man von der sprachlichen Problemformulierung z.B. zu einem Algorithmusentwurf oder Klassendiagramm

und im nächsten Schritt wie kommt man von so etwas auf real funktionierenden Code. Ich kann mir natürlich für jeden Anfänger nun Beispiele ausdenken und sie durchgehen, das halte ich aber für seltsam, denn eigentlich ist das doch das Wissen aus dem Studium !?

ich bin mir allerdings nicht sicher, ob die leute das wissen nicht vernetzen koennen. Im Prinzip glaube ich das naemlich schon - ich denke eher, dass die praxis noch fehlt.

Wäre sicherlich eine gute Idee, leider haben wir da wohl das Problem, da wie ich ja schon geschrieben habe, heuristische und numerische Verfahren umsetzen, fehlt eben einem 1. oder 2. Semester einfach die mathematische Grundlage bzw. das Wissen ist noch nicht so fest im Kopf, wie man es braucht. Wir müssen eh mit jedem die mathematischen Verfahren anhand des Codes und eben Erklärungen durchgehen.

Mir sind leider so etwas die Ideen ausgegangen, wie man "gut" das notwendige Wissen vermitteln kann, so dass man durchaus Freude daran hat und nicht irgendwann demotiviert in der Ecke sitzt, aber eben auch, dass man nicht ständig daneben sitzen muss, damit überhaupt etwas funktionsfähiges heraus kommt.

Mir hat immer so ein Ansatz geholfen: "Das Verfahren XYZ kennt man aus der Vorlesung Algebra, wird aber als Optimierungsprinzip für Problem Z angewendet, weil man mit Hilfe von A, B und C es so lösen kann". Wenn man dabei aber XYZ und A, B, C nicht kennt bzw damit nichts anfangen kann, dann hilft das nun mal nicht weiter

Schon einmal vielen Dank an alle

Bearbeitet von flashpixx
Link zu diesem Kommentar
Auf anderen Seiten teilen

flashpixx: hast Du studiert? Wenn ja, dann solltest Du grob einschätzen können, was der Absolvent (?) können muss. Das Problem beim Studium ist die fehlende Praxis, was in der FH durch das Praktikum im letzten Semester ausgeglichen wird. Oder werden soll. Die Stoffmenge ist im BSc-Studium ziemlich verdichtet, was zu Bulimie-Lernen führt. Dadurch hat man dann Spaß, wenn man nach zich Semestern das Wissen wieder abrufen muss. Man muss sich also wieder kurz einlesen.

Auch solltest Du einen fertigen Studenten zunächst wie jemanden behandeln, der noch keinerlei Berufserfahrung hat. Also in etwa wie einen Azubi, der gerade anfängt. Hier kannst Du - im Gegensatz zum Azubi (auch wenn das häufig der Fall ist) - aber voraussetzen, dass der Student spätestens nach der Probezeit produktiv sein sollte. Davor braucht er aber durchaus Einarbeitungszeit. Denn er hat alles, was Du nun foderst nur in der Theorie gelernt und vielleicht auch nur 1-2x praktisch (wenn überhaupt) angewandt.

Mein Rat daher: einmal die Mühe machen und ein kleines Projekt mit allen Projektfacetten (von Anforderungsdefinition bis zum Abnahmetest und Projektdoku) und technischen Möglichkeiten (Client/Server, Threading) entwerfen. Das wird dann von dem neuen Mitarbeiter alleine oder in Zusammenarbeit implementiert, dokumentiert und von Dir abgenommen. Die Fehler werden besprochen und ausgebessert.

Link zu diesem Kommentar
Auf anderen Seiten teilen

flashpixx: hast Du studiert? Wenn ja, dann solltest Du grob einschätzen können, was der Absolvent (?) können muss.

Ja, es scheint mir aber genau, dass ich evtl zu viel erwarte

Dadurch hat man dann Spaß, wenn man nach zich Semestern das Wissen wieder abrufen muss. Man muss sich also wieder kurz einlesen.

wieder an lesen ist in meinen Augen überhaupt kein Problem.

Mein Rat daher: einmal die Mühe machen und ein kleines Projekt mit allen Projektfacetten (von Anforderungsdefinition bis zum Abnahmetest und Projektdoku) und technischen Möglichkeiten (Client/Server, Threading) entwerfen. Das wird dann von dem neuen Mitarbeiter alleine oder in Zusammenarbeit implementiert, dokumentiert und von Dir abgenommen. Die Fehler werden besprochen und ausgebessert.

Das war auch mein Gedanke und in manchen Fällen klappt das auch sehr gut. Ich habe die Erfahrung gemacht dass manche sprichwörtlich irgendwo verloren im Wald stehen, d.h. wenn ich das Problem sehr allgemein formuliere, dann fehlt einigen der Ansatz, wo man überhaupt beginnt. Als Bsp hatte ich einen kleinen Twitter Client gedacht. Twitter stellt eine API zur Verfügung an die man ein Get Request Schickt und dann JSON Daten zurück erhält. Ich hatte jetzt erwartet, dass man sich eben in die API einliest, sich eine JSON Bibliothek (vielleicht auch 2 oder 3 zum ausprobieren) besorgt und diese für das Parsen verwendet und dann einfach via Socket einen HTTP Request absetzt und die Daten in Empfang nimmt. Selbst wenn man das noch nie gemacht hat, dann kann man sich die RTF für HTTP und eine Menge von Beispielen im Web zu diesem Problem anschauen.

Ich war leider mit dem Ergebnis enttäuscht z.B.: dass man einen Namen für die Socketverbindung via DNS erst einmal auflösen muss, wie man dann einen fehlerfreien HTTP Request sendet. Bei den meisten war die Frage "ich habe hier die API Dokumentation und wie setzt man das nun real um" und ich weiß leider nicht, was man da machen kann, denn selbst bei Beispielen muss man sich ja überlegen wie man von einem Problem zur Lösung kommt und welche technischen Mittel man dafür einsetzt und letzteres lernt man durch Recherchieren

Link zu diesem Kommentar
Auf anderen Seiten teilen

Twitter hätte ich persönlich nun nicht als Beispiel gewählt. Ich würde ganz unten bei einer Technik einsetzen, die jeder schon kennt aber selber oft noch nicht implementiert hat. Z.B. folgende Vorgabe:

1. TCP Server zu dem man sich per Telnet verbinden kann und der Dateien aus einem bestimmten Ordner an den Client schickt

2. Er wird durch eine INI Konfiguriert (Syntax ist im Pflichtenheft festzulegen). Konfigurationsargumente sind: Port, Anzahl der Verbdindungen, Welcome- und Abweisungsnachricht, sowie Ordner wo die Dateien liegen

3. Der Server hat folgende Befehle: help (zeigt die verfügbaren Befehle an), list (zeigt die Dateien in dem Ordner an), read [filename] (liest die Datei), write [string] [filename] (legt eine neue Datei an oder fügt die neuen Daten zu einer bestehenden Datei hinzu)

4. Server kann nur eine maximale Anzahl an gleichzeitigen Verbindungen annehmen (in der INI festgelegt, siehe oben)

5. Server muss über umfangreiche Fehlerprüfung (Benutzereingaben, existiert eine Datei, etc.) verfügen

Zu erstellende Dokumentationen: Pflichtenheft, Produkt- und Projektdoku. Damit hättest Du Read, Write, Sockets, Threading, Fehlerbehandlung, Pflichtenheft, Test, Projekt- und Produktdoku abgehakt.

Für Leute mit Talent kannst Du das Ding auch problemlos aufblasen: Authentifizierung, Output-Formatierung, mehrere Server auf untersch. Ports, Zugriff nur von bestimmten IP/MAC Adressen, Kommunikation anhand eines bestimmten und spezifizierten Protokolls in Anlehnung an einfachstes SMTP (HELO, ...).

Wie gesagt: Bei Ports und Sockets haben die meisten wenigstens eine grobe Vorstellung und können starten. Bei Twitter sieht das anders aus. Dir geht es doch sicherlich nicht darum, dass jemand mit der Twitter-API gut kann, sondern um das Beherrschen der Methoden und Basics im Entwicklungsprozess. Da ist es immer gut auf etwas aufzusetzen, was die meisten Leute kennen.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Pixie: Putty und Telnet sollte man kennen, ja. Welcher fertige FI*, Student, Azubi hat denn noch nie Linux oder Telnet geseghen? Das Zeug steht doch überall im Rahmenplan. Und nicht jeder Bezug zu einem aktuellen Thema ist hilfreich. Das sind Hersteller-APIs, die sich nur auf die Hersteller übertragen lassen. Ich würde meine Praktikanten/Azubis lieber in die Grundlagen einführen, die sie mitnehmen und mit etwas Transferleistung überall hin übertragen können.

Ein anderes Beispiel wäre ein Webparser, der zu einer bestimmten Seite eine Verbindung aufbaut, sich mittels korrektem HTTP Request die Seite zieht und bestimmte Informationen (Anzahl Zeichen, Links, Grafiken, ...) darüber ausgibt. Mit den einfachsten Mitteln die Grundzüge der Entwicklung prüfen/festigen. Darum geht es doch. Und nicht um möglichst aktuelle Themen direkt am Anfang seiner Laufbahn abzuhandeln. Aktuelle Themen sind nicht lange aktuell. Sie kommen und gehen. Vielleicht gibt es irgendwann weder eine Facebook- noch eine Twitter-API. Aber einen Server/Client auf TCP und Multithreading wird es noch eine zeitlang geben ;)

Bearbeitet von Kwaiken
Link zu diesem Kommentar
Auf anderen Seiten teilen

Das sind Hersteller-APIs, die sich nur auf die Hersteller übertragen lassen.

Stimmt. kommt aber auch häufig vor, dass man sich in eine bestimmte Hersteller-API einarbeiten muss. Man nimmt dann nicht das Wissen zu der speziellen API mit aber den allgemeinen Umgang damit. Bei mir gerade wieder aktuell... und das, was ich vor etwa 8 Jahren beim Auslesen serieller Schnittstellen gelernt habe, paßt noch 1:1 wieder...

1. traue keiner Hersteller-Doku, die hat ein Azubi aus der Buchhaltung getippt und

2. Timing ist alles.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...