Laden...

Wie bringe ich jemandem Softwareentwicklung bei?

Erstellt von dragi vor 14 Jahren Letzter Beitrag vor 14 Jahren 2.172 Views
D
dragi Themenstarter:in
368 Beiträge seit 2005
vor 14 Jahren
Wie bringe ich jemandem Softwareentwicklung bei?

Hallo zusammen,

blöde Frage, aber wie bringe ich jemandem am besten Softwareentwicklung bei? 😃
Der jenige ist Webdesigner mit ein wenig grundlagen Kenntniss in PHP und SQL. Aber er weiß nichts über OOP, UML, Entwicklungsmethoden, Patterns, C# oder Java. Nun denke ich, es macht keinen Sinn ihm einfach C# zu eklären und denke ich würde erstmal allgemein über OOP reden. Dann das gelernet in C# umsetzen und wenn die Sprache und die Konzpte sitzen über Patterns und zum Schluss über Entwicklungsmethoden reden. Denkt ihr, die Reiehenfolge amcht Sinn? Hat schon jemand erfahrung im Schulen eines solchen Themas? Nur eine Sprache vermitteln finde ich einfacher...aber gleich das Gesamtpaket Softwaeentwicklung muss man ja schon in einer guten Reihenfolge abarbeiten, denke ich.

Würde mich über ein paar Tips von erfahrenen "Lehrmeistern" freuen.

Gruß

Dragi

795 Beiträge seit 2006
vor 14 Jahren

Hi, dragi.

Der jenige ist Webdesigner mit ein wenig grundlagen Kenntniss in PHP und SQL.

Da würde ich ansetzen und ihm OOP anhand von PHP beibringen. Dann kann man immernoch auf C#/Java umsteigen, wie du schon gesagt hast und ihm dann Patterns usw. zeigen.

Gruß, Christian.

`There are 10 types of people in the world: Those, who think they understand the binary system Those who don't even have heard about it And those who understand "Every base is base 10"`
F
240 Beiträge seit 2006
vor 14 Jahren

Ich halte PHP nicht füe eine Sprache, worüber man OOP lernen sollte... Das programmieren von Klassen ist, gelinde gesagt, grausam. Okay, vieleicht ist das ganze jetzt auch subjektiv, da ich Klassendesign mit C# gelernt (selbst beigebracht) habe, und von den Features einfach nur verwöhnt bin. (In php musst du overloads selbst kennzeichnen, hast keine Typensicherheit und damit auch keine bestimmten Signaturen... Wahrscheinlich bin ich tatsächlich einfach nur beeinflusst 😃)

4.207 Beiträge seit 2003
vor 14 Jahren

Ich halte es für schwierig, mit dem ganz theoretischen Zeugs wie OOP zu beginnen, und erst danach eine Sprache einzuführen - zumal die korrekte Anwendung von OOP viel, viel Übung bedeutet, und man das nicht einfach mal eben so lernt.

Dann kennt man zwar die Regeln, denkt aber nicht in der OOP.

Ich würde mit C# anfangen, damit er die Syntax kennenlernt, und ihn dann Schritt für Schritt an Klassen, Interfaces, Vererbung und das ganze Zeugs bringen. Dabei lernt er auch gleich schon VS kennen.

Danach dann die für ihn relevanten APIs, wie zB ASP.NET, LINQ, EF, ... Dann kann er nämlich überhaupt schon mal produktiv arbeiten auf Basis von .NET - vielleicht schreibt er nicht den schönsten Code, aber er hat zumindest etwas greifbares in der Hand.

Danach dann Patterns, Codingrichtlinien, ... das ganze Zeug.

Und schließlich die Vorgehensweise mit Tests, Code Reviews, ...

Zu allererst würde ich aber die Frage stellen: Will er das, oder willst Du das?

Wissensvermittler und Technologieberater
für .NET, Codequalität und agile Methoden

www.goloroden.de
www.des-eisbaeren-blog.de

5.941 Beiträge seit 2005
vor 14 Jahren

Hallo dragi

Ich stimme Golo voll zu. Vorallem der letzte Satz ist auch entscheidend.
Du darfst auf jeden Fall nicht zuviel erwarten.

Gruss Peter

--
Microsoft MVP - Visual Developer ASP / ASP.NET, Switzerland 2007 - 2011

D
dragi Themenstarter:in
368 Beiträge seit 2005
vor 14 Jahren

Vielen Dank für eure großartigen Antworten!

Ja, er will das...er möchte weg vom Webdeign zum Webdeveloper und das ganze professionell....das ist nicht auf meinen Mist gewachsen 😃

Gruß

dragi

5.657 Beiträge seit 2006
vor 14 Jahren

Ich finde das ein sehr schwieriges Thema. Ich persönlich kenne keinen, der Programmierung bzw. Software-Entwicklung gelernt hat, ohne es selbst immer wieder auszuprobieren. Weder die Informatiklehrer in der Schule noch die Professoren an der Hochschule waren in der Lage, das so rüberzubringen, daß jemand es verstehen konnte, der vorher keine Ahnung davon hatte.

Es ist genauso wie jemanden beizubringen, ein Instrument zu spielen oder zu Malen. Man kann ihm zwar die Theorie und das Handwerkliche mitgeben, aber lernen kann man es nur durch viel Übung.

Christian

Weeks of programming can save you hours of planning

1.433 Beiträge seit 2006
vor 14 Jahren

@Golo:
danke Golo, werde dass von Dir geschriebene als meinen persönlichen Lehrplan aufnehmen 👍

Grüsse
Daniel
Space Profile
Wer nicht fragt, der nicht gewinnt

4.207 Beiträge seit 2003
vor 14 Jahren

Danke für die Blumen 😃

Ergänzend dazu vielleicht noch: http://www.des-eisbaeren-blog.de/post/2008/11/27/Architektur-lernen.aspx

Wissensvermittler und Technologieberater
für .NET, Codequalität und agile Methoden

www.goloroden.de
www.des-eisbaeren-blog.de

S
443 Beiträge seit 2008
vor 14 Jahren

ich hab mal an einem Tag einem Werksarbeiter das programmieren "beigebracht"
also er hat an diesem Tag 2 Forms mit Datenbankanbindung und die Datenbank geschrieben. Ich habe mich damals für eine Adressenverwaltung entschieden da dieser jeder kennt und man dann nicht mehr lange das Programm selbst erklären muss. Begonnenhabe ich mich mit der MessageBox, dann habe ich ihm ein Spielchen gegeben, wenn er mit der Maus auf einen Button fährt, soll dieser woanders hin. (von links oben nach rechts oben dann rechts unten dann links unten dann wieder links oben) nur um ihm mal ein Gefühl zu geben (auswirkung des geschriebenen)
Und dann habe ich schon mit der Datenbank angefangen, bis am Abend wusste er wie man eine Verbindung aufbaut und wie man ein SQL-Statement absetzt.
Ich habe mich kaum mit dem Theorie Zeugs aufgehalten es ihm zu erklären, ich habs einfach angewendet um ihm nachher erklärt warum.
So vielleicht eine Hilfestellung für die ersten 3 Stunden. danach sieht mans eh wie es weiter geht

mbg
Rossegger Robert
mehr fragen mehr wissen

Montag morgen ist die beste Zeit um eine erfolgreiche Woche zu beginnen

42 Beiträge seit 2009
vor 14 Jahren

Ich bin selbst Azubi Fachinformatiker Anwendungsentwicklung und derzeit im Praktikum.

Meine Meinung dazu ist: Früh programmieren und wie spike schon sagte erst einmal machen lassen und hinterher erklären warum das so ist. Die Theorie darf aber nicht fehlen! Sonst lassen sich Fehler hinterher die man in seinem Code macht nicht erkennen, da man ja bei manchen Sachen vllt. nicht weiß was passiert da eigentlich. Beispielsweise, dass die Variablen Referenztypen und keine Werttypen sind in C#. (Sorry wenn ich mich da programmiertechnisch nicht ganz korrekt ausgedrückt hab, ihr wisst aber denke ich was gemeint ist.)

Gruß,

frankhammer

4.207 Beiträge seit 2003
vor 14 Jahren

Jo, und wie sauber der Code dann ist, steht auf einem anderen Blatt ...

Warum soll ich jemandem, der von sich aus Lernwillen zeigt, es erst mal falsch beibrigen, nur weil's schnell geht, um dann mühsam nachher die Fehler wieder rauszubügeln?

Auch Schreiben lernt man von Anfang an richtig, und nicht erst mal schnell, schnell irgendwie dahingerotzt, und dann richtig ...

Wissensvermittler und Technologieberater
für .NET, Codequalität und agile Methoden

www.goloroden.de
www.des-eisbaeren-blog.de

2.760 Beiträge seit 2006
vor 14 Jahren

Warum soll ich jemandem, der von sich aus Lernwillen zeigt, es erst mal falsch beibrigen, nur weil's schnell geht, um dann mühsam nachher die Fehler wieder rauszubügeln?

Wenn die Person lernwillig ist dann sollte das kein Problem sein es gleich richtig zu machen. Wenn dieser jemand aber schnell den Kopf in den Sand steckt dann kann es IMHO durchaus Sinn machen das man erstmal (sichtbare) Ergebnisse bekommt.

Wenn z.B. jemand daher kommen würde der vorher noch nie programmiert hat und derjenige vorher schon das Gefühl bekommt das er gleich überfordert werden wird dann kann man beispielsweise mit WinForms anfangen um zu zeigen das er damit schnell zu Ergebnissen kommen kann. Einfach so als Motivation. Dann wieder theorie und Praxis da ja noch leben in die Form gebracht werden muss.

Simple Sachen wie Instanzen erzeugen, variablen und Bedingungen reichen dann erstmal. Dann zeigt man ihm/ihr den Code den der Designer erzeugt hat und baut da vielleicht ein bisschen drin rum und evtl. kommt der Aha-Effekt dann ganz schnell.

5.742 Beiträge seit 2007
vor 14 Jahren

Hallo zusammen,

Jo, und wie sauber der Code dann ist, steht auf einem anderen Blatt ...

Das würde ich nicht ganz so streng sehen.

Zwar teile ich die Ansicht von spike24, alles "von oben herab" zu erklären, auch eher nicht, weil einfach viele Grundlagen später dann doch nicht erlernt werden und fehlen.
Vieles Unbekannte - und da stimme ich Golo Roden zu - setzt sich falsch fest.

Aber gerade wenn es um Codingstyle geht, muss man eines beachten (so war es zumindest bei mir):
Solange man nicht die Nachteile eines "unsauberen" Programmierstiles erlebt hat bzw. nie den Vergleich mit "aufgeräumten" Code hatte, wird man keinen Spaß an "sauberer" Programmierung empfinden und es folglich auch anders machen.

Erst wenn man wirklich verstanden hat, wozu die Programmiersprache fähig ist, kann man die Fähigkeiten auch nutzen. Dabei stellt man dann sehr schnell fest, dass Dinge, die man anfangs als wichtig eingestuft hat, doch eher unwichtig sind und andere, denen man wenig Beachtung geschenkt hat, unverzichtbar sind.

Dann zeigt man ihm/ihr den Code den der Designer erzeugt hat und baut da vielleicht ein bisschen drin rum und evtl. kommt der Aha-Effekt dann ganz schnell.

Ich würde sogar noch einen Schritt weiter gehen:
Erst so hat man überhaupt etwas, was man verstehen will.
Besteht wirklich Interesse seitens des "Schülers" wird dieser sicherlich schnell anfangen, auch begreifen zu wollen, warum manche Dinge so funktionieren, wie sie es tun.

S
443 Beiträge seit 2008
vor 14 Jahren

Nein, nicht machen lassen, natürlich führen und erklären, aber mein erstes Wort ist eben nicht Pattern, sondern MessageBox
CodingStyles sind natürlich wichtig und werden auch nicht ausgelassen.
Natürlich sind erklärungen dabei (Datentypen, welche gibt es, int na dann schreiben wir ein Beispiel, string und noch eines)
Aber ich fange nicht damit an das ValueTypes am Stack und refernces am Heap liegen. Ich schneide die Grundlagen an, dass alles erklärt ist was benötigt wird.
int, double, string, DateTime. Mehr brauche ich für eine Adressverwaltung nicht.

Das für jede .Net Anwendung eine AppDomain angelegt wird braucht er in der ersten Stunde noch nicht wissen.
Wenn er am 2. Tag in der Früh auch noch auf der Matte steht, kann ichs ihm ja erzählen.

mbg
Rossegger Robert
mehr fragen mehr wissen

Montag morgen ist die beste Zeit um eine erfolgreiche Woche zu beginnen