Email to Torsten Weber
Feed Icon
.NET User Group Leipzig

Aktualisierung: ein weiterer Erfahrungsbericht steht hier
---

Am 09.01.2009 wurde zum ersten Mal ein .NET Bootcamp verbunden mit¹ dem Konzept Lernen durch Lehren von Alexander, Marcel und mir gestartet. Ein .NET Bootcamp ist so zu verstehen, dass nach der Veranstaltung Teilnehmer etwas ganz konkretes "mitgenommen" haben. Anstatt "konkretes" könnte auch "messbares" geschrieben werden. Es geht nicht um Marketing oder Vergleiche, ob das .NET Framework besser als Java ist – die Teilnehmer sind mündig genug, diese Meinung selber zu finden –, sondern um Wissenstransfer. Camps führen wir im Rahmen der .NET User Group Leipzig schon seit 2005 durch und haben dabei einige unschätzbare Erfahrung in der Organisation als auch Praktikabilität gewonnen. Das Fazit: Camps mit einer mittel bis sehr großen Teilnehmeranzahl und einer hohen Laufzeit wie 1 Woche sind eher ungeeignet, messbar Wissen zu transferieren, sondern sind für einen breiten Überblick gut. Die nächste Erkenntnis sind Fluktuationen bei den Anmeldungen. Eine Schutzgebühr von 10 bis 50 EUR hilft sie zu reduzieren, dennoch bleiben sie systembedingt vorhanden. Menschen bemessen Kostenlosem eben einen geringeren Wert zu. So melden sich genug erst einmal an, um sich den Platz zu sichern. Kostet ja nichts. Ebenso kann man während der Veranstaltung einfach eher gehen etc.; man hat ja nichts bezahlt.

Die Zeit war reif für den Systemwechsel und nicht nur eine Invariante, um für diese beiden drängendsten Fragestellungen "messbarer Wissenstransfer" (oder: Lust auf Wissen) und weniger Fluktuationen bei der Organisation sinnvolle Antworten geben zu können. Über Twitter bin ich auf Jungprofessor Christian Spannagel gestoßen, dessen Vorlesungsstil und Sichtbarkeit per Twitter etc. mir sehr zugesagt haben. "Elfenbeinturm bezeichnet einen geistigen Ort der Abgeschiedenheit und Unberührtheit von der Welt" heißt es in der Wikipedia in einem Artikel und das steht meiner Meinung nach oft doch für eine Klasse der "Schema-F-Professuren" – ohne dieses Thema breit ausrollen zu wollen. Am Institut für Mathematik und Informatik der Pädagogischen Hochschule Ludwigsburg gibt es ein "Schema F" nicht. Kein Wunder, Christian Spannagel ist an einer Pädagogischen Hochschule tätig. Das war auch der Grund für meine Mitstreiter und mich, Lernen durch Lehren oder kurz LdL einfach zu probieren. Zumal es noch genug andere .NET Bootcamps gegeben hätte, wenn LdL nicht befriedigende Antworten auf die drängenden Fragestellungen von uns gegeben hätte. Das wir im Hinterkopf den Wunsch hatten, uns von anderen Veranstaltungen abzugrenzen und erneut Neues² in Leipzig zu schaffen, war obligatorisch.

Teilnehmer des .NET Bootcamp 2009: .NET 3.5 am 09.01.2009 in Leipzig Zusammengefasst hat die Idee etwas Messbares "mitzunehmen" und davon unabhängig wiederrum das Konzept LdL gut funktioniert. Es war angenehm, nicht ständig in der Rolle "Dozent" auftreten zu müssen und die Inhalte einfach den Teilnehmern durch die Beantwortung ihrer Fragen zu überlassen; praktisch nur durch das Thema zu führen. Noch nie waren die Vorbereitungen eines .NET Camps derart entspannt, weil Teilnehmer die Inhalte vorbereiten und nicht Sprecher oder das Organisations-Team davon. Das dadruch eine detailierte Agenda ebenso entfallen ist, liegt auf der Hand. Interessant waren besonders die von Jean-Pol Martin, der treibenden Kraft hinter LdL, in Interviews mit ihm immer wieder erwähnten Unterschiede. Während der klassische Unterricht gleichschaltet, schafft LdL Unklarheiten – falsche Antworten gibt es nicht. Dabei sind Unklarheiten nicht nur vereinfachend angenommen bei den Teilnehmern entstanden, sondern auch bei Alex, Marcel und mir.

Wo genau? Bei der Formulierung der Fragen für die Teilnehmer und dann der Beantwortung dieser im Vorfeld durch uns selbst. Ein Beispiel für eine Frage war:

  • Was ist unverwalteter / verwalteter Code? Wer oder was führt ihn aus?
    Hinweis: Erklären Sie, wie aus einer Hochsprache die Intermediate Language wird (wer kompiliert, was wann) und wer diese ausführt. Gehen Sie auf Merkmale wie Typsicherheit ein. Versuchen Sie zu klären, warum beim ersten Ausführen einer .NET-Anwendung diese in der Regel "etwas Zeit" benötigt. Klären Sie dann, wo der Cache für liegt, der zukünftige Starts beschleunigt.

Können Sie diese Frage fachlich ganz exakt beantworten ohne ein "es müsste..."? Wenn nein, hier ist die Antwort für die Frage nach dem Cache. Diese Frage bezieht sich nicht auf irgendwelche Besonderheiten, sondern ist ein Teil eines tiefen Grundverständnisses für .NET, das viel zu häufig in Büchern, Webcasts und Veranstaltungen nicht angeschnitten wird. Dieser Effekt erneut in Form einer anderen Frage:

  • Ist das .NET Framework eigentlich nur ein "Wrapper" für das jeweilige Betriebssystem?
    Mit anderen Worten, ist der Common Intermediate Language-Code der Maschinencode oder ruft dieser Code nur letzten Endes Betriebssystem-Funktionen auf? Hinweis: Erklären Sie, was z. B. bei Console.WriteLine("Foo") passiert!

Sie kennen die Antwort? Dann wissen Sie auch, dass für dieses Grundverständnis meist eben nicht z. B. die TechTalks von Microsoft ausreichen. Da wird häufig nur gezeigt, wie einfach es ist, auf der Konsole mit einer einzigen Zeile Code etwas auszugeben. Was zwar im Sinn der eleganten Programmierung mit dieser Plattform prinzipiell schon stimmt, aber das Grundverständnis nicht adressiert. Damit haben Alex, Marcel und ich durch das Ausräumen einige Unklarheiten unsere Kenntnisse verfestigt, obwohl wir uns seit der ersten Betaversionen mit den .NET Frameworks beschäftigen und mit Fug und Recht behaupten können, dass wir uns "gut" auskennen, um nicht das hochnäsig wirkende "exzellent" benutzen zu wollen.

Teilnehmer des .NET Bootcamp 2009: .NET 3.5 am 09.01.2009 in Leipzig Wie LdL funktioniert steht natürlich in der Wikipedia, Lutz Berger bzw. Christian Spannagel³ haben es hier aber gut zusammengefasst. Für uns gilt, dass wir die Fragen zwei, drei Tage eher als jetzt schicken, zwei Tage zuvor war vielen zu knapp; haben aber sich dem widersprechend dennoch erstaunlich gute Ergebnisse hervorgebracht für Teilnehmer, die sich zum Teil noch nie mit dem .NET Framework beschäftigt haben. Und festzuhalten ist außerdem erneut: Falsche Antworten gibt es nicht, nur Unklarheiten! Das haben wir bei den Teilnehmern beachtet, jedoch in einem Fall aber bei uns selbst nicht. Der Effekt war dann, dass ich die Meinung von Alex und Marcel hingenommen habe, dass ein ~Foo() ein Finalizer ist, weil sich die beiden derart sicher waren. Ist es aber nicht, wie es das MSDN zeigt. Sie sind verwirrt? Ein Destruktor ist kein Finalizer bei .NET, sondern ein Konstrukt, der einen Finalizer aufrufen kann, aber dieses bedingt durch die Funktionsweise der Common Language Runtime bzw. Gargabe Collection nicht muss. Wenn Sie das verhindern wollen, um z. B. Ressourcen ordnungsgemäß freizugeben, lesen Sie diesen Artikel.

Sponsoren für Getränke, Kaffee, Imbiss und Pizza! ;-) haben wir für die nächsten .NET Bootcamps schon einige gefunden, Fluktuationen bei den Anmeldungen stabilisiert und arbeiten gerade mit Prof. Fähnrich vom Institut für Betriebliche Informationssysteme des Instituts für Informatik an der Organisation eines .NET Bootcamp für Studenten der Universität Leipzig im April 2009.

Ich glaube, wir haben etwas sehr, sehr gutes vollbracht...
Danke Alex, Danke Marcel und Danke an die Erfinder von LdL!

¹ Einige .NET Bootcamps werden wir ohne LdL durchführen, je nachdem, was didaktisch besser ist.
² nach der Etablierung des .NET Open Space
³ hier geht es zur Blogparade zu LdL

Boldness, risk‐taking and a little bit of craziness – lateral thinker Torsten Weber
Boldness, risk‐taking and a little bit of craziness – lateral thinker Torsten Weber

Torsten Weber is a MVP for Device Application Development

Calendar of the .NET User Group Leipzig

Microsoft Community Leader/Insider Program

Programmieren mit dem .NET Compact Framework. Anwendungsentwicklung für mobile Geräte.

Microsoft – change the mobile world or go home!

Categories

Calendar

<March 2010>
SunMonTueWedThuFriSat
28123456
78910111213
14151617181920
21222324252627
28293031123
45678910

Archive

My subscribed blogs

show all
show less
Blogs of good friends (as OPML)
More Blogs (as OPML)
RSS: .NET Casts .NET Casts
RSS: .NET Compact Framework Team .NET Compact Framework Team
RSS: Alan Cameron Wills Alan Cameron Wills
RSS: Alex Feinman Alex Feinman
RSS: Alex Januschewsky Alex Januschewsky
RSS: Alex Yakhnin Alex Yakhnin
RSS: Alexander Wechsler Alexander Wechsler
RSS: Alexander Zeitler Alexander Zeitler
RSS: Amit Chopra Amit Chopra
RSS: Anand Balachandran Anand Balachandran
RSS: Anthony Wong Anthony Wong
RSS: Ausgefallene Gadgets & Ideen Ausgefallene Gadgets & Ideen
RSS: Barry Bond Barry Bond
RSS: Boas Enkler Boas Enkler
RSS: Calvin Hsia Calvin Hsia
RSS: Chris Eberl Chris Eberl
RSS: Chris Lorton Chris Lorton
RSS: Chris Tacke Chris Tacke
RSS: Christian Weyer Christian Weyer
RSS: Christopher Fairbairn Christopher Fairbairn
RSS: ComputerBase News ComputerBase News
RSS: Cordula Lochmann Cordula Lochmann
RSS: Dan Elliot Dan Elliot
RSS: Daniel Chong Jyh Tar Daniel Chong Jyh Tar
RSS: Daniel Fisher Daniel Fisher
RSS: Daniel Melanchthon Daniel Melanchthon
RSS: Daniel Moth Daniel Moth
RSS: Dave Baker Dave Baker
RSS: David Kline David Kline
RSS: Dirk Primbs Dirk Primbs
RSS: DotNetGerman Bloggers DotNetGerman Bloggers
RSS: e-commerce blog e-commerce blog
RSS: Erich Holzbauer Erich Holzbauer
RSS: Florian Mätschke Florian Mätschke
RSS: Frank Fischer Frank Fischer
RSS: Gareth Jones Gareth Jones
RSS: George Mathew George Mathew
RSS: Gurbir Singh Gurbir Singh
RSS: Guy Burstein Guy Burstein
RSS: Hannes Preishuber Hannes Preishuber
RSS: Hard Tecs 4U News Hard Tecs 4U News
RSS: Heike Scholz Heike Scholz
RSS: heise online News heise online News
RSS: HoppeRx HoppeRx
RSS: IE Mobile Team Weblog IE Mobile Team Weblog
RSS: Inside Bennie Inside Bennie
RSS: Inside Microsoft Inside Microsoft
RSS: Jack Greenfield Jack Greenfield
RSS: James Pratt James Pratt
RSS: Jason Hogg Jason Hogg
RSS: Jason Langridge Jason Langridge
RSS: Jens Häupel Jens Häupel
RSS: Jezz Santos Jezz Santos
RSS: Jim Wilson Jim Wilson
RSS: Johanna Merhof  Johanna Merhof
RSS: José Gallardo Salazar José Gallardo Salazar
RSS: Josh Heitzman Josh Heitzman
RSS: Kai Gloth Kai Gloth
RSS: Kevin Daly Kevin Daly
RSS: Lao K Lao K
RSS: Loke Uei Tan Loke Uei Tan
RSS: Maarten Struys Maarten Struys
RSS: Marcus Perryman Marcus Perryman
RSS: Mark Arteaga Mark Arteaga
RSS: Mark Ihimoyan Mark Ihimoyan
RSS: Mark Prentice Mark Prentice
RSS: Markus Hage Markus Hage
RSS: Markus Zeischke Markus Zeischke
RSS: Martin Fowler Martin Fowler
RSS: Mathias Raacke Mathias Raacke
RSS: Mel Sampat Mel Sampat
RSS: Michael Korp Michael Korp
RSS: Michael Saffitz Michael Saffitz
RSS: Mike Hall Mike Hall
RSS: Mike Temporale Mike Temporale
RSS: Mike Zintel Mike Zintel
RSS: Mobile Developer Center Mobile Developer Center
RSS: Mobile Tagging Mobile Tagging
RSS: MozBackup MozBackup
RSS: MS Mobiles MS Mobiles
RSS: MSDN Forum .NET CF MSDN Forum .NET CF
RSS: MSDN Forum Device Emulator MSDN Forum Device Emulator
RSS: MSDN Forum Smart Devices C#/VB MSDN Forum Smart Devices C#/VB
RSS: MSDN Forum Smart Devices MSDN Forum Smart Devices
RSS: MVP Global Summit 2008 MVP Global Summit 2008
RSS: Nazim Lala Nazim Lala
RSS: Neil Cowburn Neil Cowburn
RSS: Neno Loje Neno Loje
RSS: Nils Müller Nils Müller
RSS: Nino Benvenuti Nino Benvenuti
RSS: Norbert Eder Norbert Eder
RSS: Oliver Block Oliver Block
RSS: Oliver Scheer Oliver Scheer
RSS: OrbLog OrbLog
RSS: Outlook Mobile Team Blog Outlook Mobile Team Blog
RSS: OVIDEO (Kino) OVIDEO (Kino)
RSS: OVIDEO (Trailer) OVIDEO (Trailer)
RSS: Pedro Silva Pedro Silva
RSS: Peter Foot Peter Foot
RSS: Peter Kirchner Peter Kirchner
RSS: Rabi Satter Rabi Satter
RSS: Ralf Westphal Ralf Westphal
RSS: Rob Tiffany Rob Tiffany
RSS: Rod Drury Rod Drury
RSS: Roman Batoukov Roman Batoukov
RSS: Scott Guthrie Scott Guthrie
RSS: Scott Holden Scott Holden
RSS: Sebastian Weber Sebastian Weber
RSS: Simon Hackfort Simon Hackfort
RSS: Smartphone-Web Smartphone-Web
RSS: Sriram Krishnan Sriram Krishnan
RSS: Stephen Fry Stephen Fry
RSS: Steve Cook Steve Cook
RSS: Steve Hegenderfer Steve Hegenderfer
RSS: Steven Kelly Steven Kelly
RSS: Steven Pratschner Steven Pratschner
RSS: Stuart Kent Stuart Kent
RSS: Sue Loh Sue Loh
RSS: Thomas Schissler Thomas Schissler
RSS: Tom Hollander Tom Hollander
RSS: Vik Thairani Vik Thairani
RSS: Visual Studio For Devices Team Visual Studio For Devices Team
RSS: We-Dig.org We-Dig.org
RSS: Windows Mobile Team Blog Windows Mobile Team Blog
RSS: Xin Yan Xin Yan