Update on F# and Haskell, especially monads
October 8th, 2007
Since I wrote about F# in August, my progress has been rather slow.
There was a lot of work to do for Uni, almost all involving final touches to Pavel, the data-analysis tool me and a few other students have developed as a student research project. We’ll publish Pavel next week on SourceForge, I’ll write a few lines about it then.
Another thing that has held me back is my fascination for Haskell. Read the rest of this entry »
An apple a day…
July 31st, 2007
Wie heisst die Faustregel doch so schön? “Lerne jedes Jahr eine neue Programmiersprache”
Bisher schlage ich mich damit ganz gut:
2007: ein bißchen Python
2006: C#, Ruby, Javascript
2005: genug C++ um da in Zukunft einen Bogen herum zu machen, genug Haskell um ein permanentes distanziertes Interesse zu erhalten das vielleicht irgendwann durchschlägt in ernsthafte Auseinandersetzung.
2003/2004: Java
1999-2002: PHP, SQL Read the rest of this entry »
Microsoft Student Technology Conference Tag 2
June 6th, 2007

Der zweite Tag fing unerfreulich an.
Um 10h sollte es mit der Keynote losgehen, um 8 stand ich auf und schwang mich auf mein Motorrad um um kurz nach 9h in der Gebläsehalle zu sein und noch in Ruhe was vom Frühstück mitzunehmen.
Es gab nur leider kein Frühstück und ich war so ziemlich der erste der so früh da war. Selbst die Leute vom Event-Team sahen alle noch ziemlich verpennt aus. Nach 20 Minuten tauchte Sarah auf, dir wir am Abend zuvor kennengelernt hatten. Zwischen zwei Tassen Kaffe konnte ich in einer unbeobachteten Sekunde eine Banane klauen, musste danach aber bis nach der Keynote knurrenden Magens ausharren.
Keynote - Comparing UNIX to Windows NT Architecture
Dave Proberts Vortrag war hochspannend weil er über das eng umrissene Thema, das der Titel nahelegt, einige wesentlich tiefgreifendere Denkansätze mit sich brachte. Natürlich ging es zunächst um Betriebssystemarchitektur im Vergleich zwischen Windows und Unix. Probert brachte einige interessante Anekdoten mit, z.B. was den Ursprung des fork() Systemaufrufs in Unix betrifft. Dessen heute merkwürdiges Verhalten war damals zu seiner Ursprungszeit vollkommen logisch, nur so konnte im Paging-Betrieb ein neuer Prozess instanziiert werden. Diesen und andere Umstände nahm Probert zum Anlass, das Publikum anzuregen technische Lösungen zu hinterfragen, auch mal über den Tellerand zu schauen und sich nicht nur auf das zu verlassen was man kennt. Eingebettet bzw. motiviert war sein ganzer Vortrag aber von der Frage, warum Computer nach wie vor so schwer zu bedienen sind. Glaubhaft berichtete er davon, wie er bei Microsoft als Kernelarchitekt anfing um das Betriebssystem neu zu erfinden und die Welt zu verändern. Ich habe nicht mehr alle Details des Vortrags im Kopf, aber sein Argument war (ungefähr), dass die Beschränkungen von Programmiersprachen und Betriebssystemen Monokulturen in Entwicklerköpfen erzeugen und man, um die Anwendungen zu revolutionieren, erst das Betriebssystem revolutionieren muss.
Leider ging Probert am Ende die Zeit aus, sein Vortrag war für gut das doppelte der veranschlagten Zeit ausgelegt. So standen bis etwa eine dreiviertelstunde später noch eine Traube Studenten um ihn herum und diskutierten.
Klickt Ihr oben auf Daves Namen, bringt euch das zu einer Serie von Channel9 Shows in denen es nochmal genau um die Themen geht, über die er auf der Conference gesprochen hat. Wärmste Empfehlung!
Vorträge
Zu dieser Zeit wollte ich eigentlich bei Entwickeln hochqualitativer Software im Team — mit Visual Studio Team System sitzen, hab’ es dort aber keine 10 Minuten ausgehalten. Stattdessen tinglete ich zwischen Proberts Studententraube, der endlich offenen Häppchen-Bar und dem Stehtisch herum, der für den weiteren Tag unser Stammplatz werden sollte.
Die 12h Vorträge konnte ich mir nicht anhören, da ging es nämlich daran, meinen Gewinn einzulösen: **Abseilen vom Hochofen. Nachdem ich erst den *falschen Hochofen rauf- und wieder runtergeklettert bin, ging es mit den anderen 14 Gewinnern und unseren 2 Bergführern auf den richtigen Ofen. Richtig spannend zu erzählen war die Aktion wirklich nicht. Erst gab es eine kurze Einweisung, dann wurden uns die Geschirre angelegt und hoch gings. Oben nochmal letzte Anweisungen für jeden, ein wenig Starthilfe und dann gings abwärts. Anfangs war der Anblick der 35m in die Tiefe schon respekteinflößend und vor allem das Übersteigen der Brüstung kostete einige Überwindung, aber einmal im Seil hängend kann man eigentlich nichts mehr tun als langsam runterzukommen und sich nicht den Kopf am Hochofen zu stoßen.
Wieder in der Gebläsehalle war die Schlange zum Mittagessen schon 20m lang. Ganz so toll wie das Barbecue am Montag abend war’s zwar diesmal nicht, aber trotzdem noch lange kein Grund sich am Buffet zurückzuhalten ;-)
Der letzte Vortrag für mich war anschließend Viren, Rootkits und Co. — Digitales E605 von Michael Willers. Erst ging es ein bißchen um die Entstehung von Rootkits und Trojanern, wie es überhaupt zu derlei Angriffen kommen kann, anschließend schrieb Michael aus dem Kopf im Notepad ein als Gerätetreiber getarntes Rootkit. Ziemlich beeindruckend, vor allem da Michael wirklich verstand wovon er da redete — keine Selbstverständlichkeit im Rahmen der Konferenz.
Den letzten Vortragsblock haben wir uns geschenkt und stattdessen lieber das Wetter genossen.
Um 16h wurde die Veranstaltung offiziell beendet, es gab warme Worte und Präsente für die Gewinner diverser Wettbewerbe, anschließend wurden die deutschen Sieger des ImagineCup gekürt.
Fazit
Die Konferenz hat Spaß gemacht. Microsoft hat keine Mühen gescheut um das ganze Drumherum der Veranstaltung angenehm zu gestalten. Leider blieb die Qualität der Vorträge weit hinter der des Caterings zurück. Von einer Veranstaltung die *Student
- Technology
Conference* heisst erwarte ich einfach mehr Technologie und weniger Blabla.
Somit war das beste was ich von diesen zwei Tagen mit nach Hause nehmen konnte ein paar nette Erinnerungen und Steve McConnels wirklich unglaublich gutes Code Complete für läppische 30€
Weitere Eindrücke
…schildern Christopher Harms und Jonas John
Microsoft Student Technology Conference Tag 1
May 26th, 2007

Als ich heute morgen losgezogen bin Richtung Langschaftspark wusste ich bis auf die Themen der Vorträge absolut nicht was mich erwarten würde. Das Wochenende war recht schlaflos verlaufen und entsprechend kaputt hing ich auf der Rolltreppe ins zweite Untergeschoss des Hauptbahnhofs zur 903.
Am Bahnsteig sprach mich ein nicht mehr ganz frischer Kerl im Gruschel mich T-Shirt an, wo es denn zum Landschaftspark ginge. Zusammen in der 903 stellte er sich auf meine Frage ob er Vortragender sei mit Rolf vor und nein, er sei Student. Weitere Konversation mit Rolf blieb mir erspart als ich an der Haltestelle Landschaftspark auf eine stattliche Gruppe mit bekannten Gesichtern aus Dortmund traf.
Die Registrierung ging ruckzuck, der erste Weg führte zum Catering. Meine Herrschaften! Allein für die Wraps, gefüllt mit eingelegten Tomaten, Zucchini und allerhand anderem leckeren Zeug, hatte sich der Weg gelohnt. Um 10:00 ging dann die Keynote los.
Keynote
Die Begrüßung durch Ingo, dessen Nachname mir momentan leider entfallen ist, wirkte bemüht locker, im Abgang aber doch eher uncool. Im Anschluss stellte Paramesh Vaidyanathan Popfly vor, einen nagelneuen Service von Microsoft, der mit Hilfe von Silverlight das blitzschnelle Erstellen von Mashups aus Webservices auch und vor allem für technisch unbedarfte User ermöglicht.
Obwohl die Präsentation mit erheblichen technischen Schwierigkeiten zu kämpfen hatte, wurde das Potential dieser Technik deutlich. In einem FlowChart-ähnlichen Boxsystem klickt der User sich seine Anwendung ganz einfach zusammen, kann sie anderen zur Verfügung stellen oder sie in Popfly Pages einbauen.
Die Oberfläche von Popfly ist beeindruckend. Wenn Silverlight abhebt, und danach sieht es wirklich aus, kommen spannende Zeiten auf das Internet zu. Popfly verkörpert somit eine ganze Reihen von Microsofts neuen Zielen und Eigenschaften:
- Nutzbarmachung neuer Technologien für Amateure
- Offener
- User Experience
Neue Technologien für Amateure
Damit seien jetzt mal alle Nicht-Programmierer gemeint. Zum einen also Endanwender die mit Technologien wie Popfly Web-Services nutzen können um eigene MashUps zu kreieren, zum anderen Hobby Entwickler die mit Visual Studio Express ins .NET Boot geholt werden oder Gamer denen mit XNA die Möglichkeit geboten wird, vergleichsweise einfach Spiele zu entwickeln.
Offenerer Umgang mit der Entwicklergemeinde
Das beste Beispiel hierfür ist Silverlight. Von Anfang an auch für Firefox und Mac verfügbar, vereint es nicht nur Javascript und .NET Sprachen, sondern auch Python und Ruby in der DLR (Dynamic Language Runtime) die in Zukunft auch andere Sprachen beherbergen kann. Die Möglichkeit, mit den abgespeckten aber dennoch brauchbaren Express-Versionen der Entwicklertools herumzuspielen dürfte eine Menge Leute zu .NET und C# ziehen die sich andernfalls vielleicht für Java entschieden hätten.
User Experience
Offensichtlichster Kern dieses neuen Aspekts sind die neuen Oberflächen von Vista und Office 2007. Über den Geschmack der Designer kann man sich durchaus streiten, nicht leugnen lässt sich jedoch, dass Microsoft sowohl mit diesen Maßnahmen ihre CI strafft als auch mit WPF und XAML darum bemüht ist, dass das Interface-Design, bei Windows-Entwicklern bisher generell eher vernachlässigt, ansprechender und einfacher zu gestalten.
Weitere Vorträge
Die weiteren Vorträge der Conference waren leider größtenteils enttäuschend.
In Kleines 1×1 der Spielentwicklung — wichtige Begriffe, Prozesse und Überblick plauderte Dirk Primbs über das geschäftliche Umfeld in dem Spielentwicklung stattfindet. Für mich enthielt der Vortrag keinerlei neue Information.
Design Patterns wurde von Wolfram Burgard, Professor an der Uni Freiburg, gehalten. Dass der gute Mann gleich zu Beginn seiner Präsentation darauf hinwies, von dem Thema eigentlich keine Ahnung zu haben, um daraufhin einen extrem allgemeinen und oberflächlichen Abriss des über 10 Jahre alten Klassikers der Gang of Four vorzutragen ließ mich den Software Development Saal nach 15 Minuten verlassen um mir AntMe! — Teil 1 anzuhören. Bei AntMe! handelt es sich um einen Ameisensimulator der Spieler die KI von Ameisenvölkern in C# beeinflussen lässt. Ganz nett, etwas ähnliches haben wir in der zwölften Klasse in Pascal geschrieben. Für Informatiker im achten Semester eher uninteressant.
Nach der Mittagspause führte mein Weg mich zum Web Development im Nebengebäude, wo Lori Grosling etwas über Design & User Experience @ Microsoft erzählen wollte. Eine halbe Stunde gehaltloses Anklicken von Web-Demos wurde von einer Viertelstunde “That’s cool, isn’t it?” und oberflächliches Klagen über die Schwierigkeit der GUI-Programmierung eingerahmt.
WPF und Silverlight
Der nächste Vortrag ging nur ein wenig mehr in die Tiefe. Oliver Scheer stellte XAML vor, eine XML-basierte Sprache um GUIs für Silverlight oder WPF zu beschreiben. Oliver kannte sich mit der Technik offensichlich kaum besser aus als Lori, so stellte er uns WPF Features als XAML Features vor und beschrieb die Sprache als tollen Weg für Designer, ohne Programmierung GUIs zu gestalten. Das es sich bei XAML eigentlich bloß um ein leicht beschreibbares Austausch- und Beschreibungsformat für den gleichen Kram, den man auch mit .NET-Code erreichen kann, handelt war ihm entweder nicht bekannt oder es wurde uns verschwiegen. Dabei zuzusehen, wie er sich im Expression Studio Blend austobte ohne auf konkrete technologische Vorzüge von WPF einzugehen machte die Sache nicht besser.
Nach der Kaffeepause war Oliver nochmal dran, nun mit UX out-of-the-box: ASP.NET AJAX, WPF and Silverlight. Das gesamte Publikum war da um etwas über Silverlight zu erfahren, wurde aber zunächste eine halbe Stunde mit der komplett unspannenden Ajax Implementierung in ASP.NET gelangweilt. Die Silverlight Vorführung beschränkte sich dann wieder darauf, dass Oliver geistesabwesend im Expression Studio herumbastelte. Ganz toll.
Ziemlich gefrustet verließen am Ende alle den Raum, meine nächste Station war Engineering Excellence - some things a new Microsoft Developer learns von Frank Fischer. Die anfängliche Skepsis war schnell verflogen, Franks Vortrag war der erste der mich wirklich begeistert hat. Es ging um das Trainingsprogramm bei Microsoft, darum wie dort Software entwickelt wird, welche Werte hinter den Entwicklungsprozessen stehen und welcher Aufwand betrieben wird um Fehler zu vermeiden. Am interessantesten war dabei die Beschreibung des Nightly Build Prozesses und wie mit dort auftauchenden Fehlern umgegangen wird.
Das Team, dessen Teil die Tests stört oder gar keine korrekte Compilierung verhindert, muss diesen Fehler bis zum nächsten Tag behoben haben. Wer viermal in Folge den Nightly Build verpatzt kriegt ein Gummihuhn an die Tür genagelt, muss fortan in Schande leben und den anderen Teams für niedere Tätigkeiten zu Diensten sein.
Frank Vortrag enthielt genau die richtigen Stichworte um mich die ganze Zeit die Ohren spitzen zu lassen. Auch wenn es nach aussen manchmal anders aussieht, so scheint man bei Microsoft doch eine Menge Erfahrung damit zu haben, enorme Softwareprojekte einigermaßen erfolgreich über die Bühne zu bringen. Besonders gefiel mir der absolut vernünftige Ansatz, nicht dogmatisch an Vorgehensmodellen oder Prinzipien zu hängen, sondern stets das richtige Tool für den Job zu verwenden. Für kleine Anwendungen kommen aufgrund ihrer Vorteile bei diesen Größenordnungen durchaus Agile Methoden zum Einsatz, während man sich nicht der Illusion hingibt dass diese Vorgehensweise für alle Arten von Projekten angemessen ist.
Abendprogramm
Das Vortragsprogramm für den ersten Tag war damit zuende und die abendliche Unterhaltung ging los, angefangen mit einem opulenten Barbecue. Wer wollte konnte danach kickern, sich das Duell der beiden Fischertechnik Roboter-Teams ansehen, am AntMe! Programmierwettbewerb teilnehmen, bei PGR3 auf der Xbox ein paar Runden drehen oder mit ferngesteuerten Monstertrucks ein bißchen Staub aufwirbeln. Die Fischertechnik Roboter wurden beide von Teams der Universität Dortmund programmiert, die Zelte dafür waren heiß und stickig, also habe ich mich zu den Monstertrucks gesellt und mit ruhigem Finger als erster meiner Runde das Ziel passiert. Bei PGR habe ich gegen Kollegen Boris zwar gewonnen, für eine Platzierung in der Gesamtliste hat es dann aber doch nicht gereicht.
Gegen 22h hab ich mich auf nach Hause gemacht, wer noch dablieb konnte bei einer GPS-Rallye und den sehr empfehlenswerten Nachtlichtführungen durch den Landschaftspark teilnehmen. Wieder in meiner Wohnung habe ich mich sofort an diesen Beitrag hier gesetzt, war allerdings ziemlich erledigt, so hat sich seine Fertigstellung dann bis heute hingezogen.
Ich lag schon im Bett, da bimmelt mein Handy:
Hallo Jan. Du hast beim Autorennen das Abseilen vom Hochofen gewonnen. Bitte Dein Ticket bis morgen 11h00 an der Information abholen.
Yay.
Mehr dazu im Bericht von Tag 2.
Herr Decker vom Dekanat informierte uns heute, dass am 21. und 22. Mai in Duisburg die Microsoft Student Technology Conference stattfindet.
Von Software Architektur, User Interface über Robotik bis hin zu Spielprogrammierung mit XNA werden aktuelle Technologien der IT Industrie von Sprechern auf höchstem Niveau vorgestellt und vermittelt. Die Microsoft Student Technology Conference ist die ideale Gelegenheit, Ihre Einstiegschancen bei namhaften Unternehmen zu erhöhen und sich in Theorie und Praxis über Microsoft .NET zu informieren. Zusätzlich wird im Rahmen der Konferenz das deutsche Finale des Technologiewettbewerbs Imagine Cup 2007 im Software Design ausgetragen!
Da es von der Uni Freikarten gibt werde ich mir das nicht entgehen lassen. So langsam muss man sich ohnehin mal überlegen wie’s nach dem Diplom weitergehen soll.
UPDATE: Ich schreibe gerade an einem Bericht. Ein bißchen dauerts aber noch, in 2 Tagen ist viel passiert.
Comedy Gold
January 24th, 2007
Folgende Mail erreicht mich heute über die Fachschafts-Mailingliste:
Wir sind ein kleines Unternehmen im Bereich Videoüberwachung und nutzen Serversysteme um von mehreren IP-Kameras aufzuzeichnen, wiederzugeben und zu analysieren.
Bisher nutzen wir Fremdsoftware um dies zu Realisieren, würden aber gerne bis 2008 eine Eigene Software dazu entwickeln.
Wir suchen also einen Studenten, der Fachlich in der Programmiersprache C# dazu in der Lage ist einen unserer Mitarbeiter privat in C# zu unterrichten.
Unser Mitarbeiter ist momentan kundig im Bereich Visual Basic. ( ist also keine absoluter Anfänger in Programmierungen ) bei Interesse würde ich mich gerne mit jemandem Unterhalten um konkret auf die anforderungen einzugehen.
Viel Erfolg Jungs! :)
Sowas gibt mir immer wieder Hoffnung. Wenn man sich in der Welt der Business Software umsieht, scheinen solche Einstellungen die Regel und nicht die Ausnahme zu sein.
How to globalize a .NET Property Grid
December 10th, 2006
It’s pretty simple once you’ve seen the Solution:
public class GlobalizedDescriptionAttribute :
System.ComponentModel.DescriptionAttribute
{
String n;
public GlobalizedDescriptionAttribute(string s) { n = s; }
public override string Description {
get {
return Project.Properties.Resources.
ResourceManager.GetString(n);
}
}
}
public class GlobalizedDisplayNameAttribute :
System.ComponentModel.DisplayNameAttribute
{
String n;
public GlobalizedDisplayNameAttribute(string s) { n = s; }
public override string DisplayName {
get {
return Project.Properties.Resources.
ResourceManager.GetString(n);
}
}
}
You can then use those attributes with your objects properties:
…
[GlobalizedDisplayName("whatever")]
[GlobalizedDescription("whateverthisdoes")]
public int FooBar {
get { … }
set { … }
}
…
Globalizing the Category follows the same Pattern, extending CategoryAttribute.
There are some traps to avoid though:
- Fetching the String in the Constructor does not seem to work.
- If you use the Globalized…Attribute with an Identifier not in your Resources, the Program might throw OutOfMemoryExceptions at startup.
C# vs. The World
November 13th, 2006
Meine erste Einstellung gegenüber C# war ablehnend. Wozu ein neue Sprache die kaum wesentliche Vorteile gegenüber Java bietet? Nach näherer Beschäftigung mit .NET 2.0 sah die Sache besser aus. Properties? Nice! Anonyme Funktionen? Praktisch!, Closures und Iteratoren? Yay! Langsam schien die Entscheidung doch nicht die verkehrteste zu sein.
Bei der konkreten Arbeit offenbaren sich jedoch allmählich die Unterschiede zwischen Theorie und Praxis:
- Die ganzen coolen Funktionen und Konstrukte verstecken sich hinter einem Wust redundanter Syntax, die nur duch viele automatische Funktionen in VisualStudio 8 erträglicher wird.
- VisualStudio kommt zwar mit einem Debugger, ein Speicherprofiler muss aber extern installiert werden, ein Laufzeit-Profiler kostet extra.
- Wenn ich den erwische der die Idee hatte, XML als Markup für die DocComments zu benutzen…
- Viele der netten Features sind in ihrer tatsächlichen Verwendung nur noch halb so nett. Das Programmieren in streng getypten Sprachen ist eine Qual wenn man einmal mit Ruby gearbeitet hat.
- Die Doku im MSDN ist zwar umfangreich, aber verwirrend und schlecht organisiert. Die Methoden, Properties und Member der Klassen stehen alle auf jeweils einer einzelnen Seite mit unzähligen Links, die irgendwohin führen. Soviel Redundanz führt auch dazu, dass Suchergebnisse selten akkurat sind und die gewünschte Information erst nach ein paar weiteren Klicks gefunden wird.
C# ist im Ansatz eine gute Idee, mein ungutes Gefühl wird aber vor allem duch die Implementierung durch Microsoft verursacht. Man merkt schnell dass man hier mit proprietärer Technik arbeitet wenn viele wichtige Tools entweder nicht verfügbar sind oder Geld kosten (oder kennt jemand einen brauchbaren freien Profiler?).
Bessere Jobs dank C# ?
November 3rd, 2006
Dritte Woche PG, so langsam geht es los. Müssen die ersten Entscheidungen getroffen werden, gibt es auseinandergehende Meinungen.
Die Frage: Mit welcher Sprache wollen wir das Projekt implementieren? Zur Auswahl stehen C# und Java. C++ schied glücklicherweise schon in der Vorrunde aus.
Unsere Ausgangssituation sieht so aus, dass alle “so ein bißchen” Java Erfahrung aus dem Sopra haben, zwei Leute über etwas weniger Erfahrung mit C# verfügen. Kriterien die die Entscheidungsfindung erleichern sollten waren
- Verfügbarkeit und Qualität von Bibliotheken
- Performance
- 3D-Grafik Wiedergabe
und zu guter Letzt
- Vertrautheit mit der Sprache
Über die ersten drei Punkte bestand im wesentlichen Einigkeit, am letzten schieden sich jedoch die Geister, zwei Argumente stehen sich jetzt gegenüber:
Gegen C# spricht, dass so gut wie keiner von uns damit Erfahrung hat und dadurch neben den eigentlichen Anwendungsproblemen noch das Einarbeiten in eine völlig neue Sprachumgebung als Aufgabe hinzukommt. Der damit verbundene Aufwand ist nicht zu unterschätzen.
Zur Verteidigung der Verwendung von C# wird angeführt, dass man die PG dazu nutzen wolle, sich neben Java noch eine weitere, auf dem Arbeitsmarkt augenscheinlich momentan beliebte Sprache anzueignen.
Dieses Argument steht allerdings auf keiner guten Grundlage.
Vor allem ist der Wunsch eine neue Sprache zu lernen eine reine Privatangelegenheit und hat eigentlich keinen Bezug zu den Zielen des Projektes. Vorausgesetzt dass Java und C# unter allen erwähnten Kriterien äquivalent oder zumindest ähnlich sind, wird durch die Verwendung von C# nichts gewonnen, im Gegenteil, die Entwicklung wird durch den beschriebenen Lernaufwand noch behindert.
Darüberhinaus gibt es noch eine falsche, zumindest aber zweifelhafte Annahme die dem Argument zugrundeliegt. Leider konnte ich den Hintergrund dieses Gedankens in der Sitzung auf die Schnelle nicht überzeugend formulieren und habe ihn erstmal für mich behalten. Jetzt habe ich mich ein bißchen hingesetzt, nachgedacht und festgehalten was ich genau meine.
Die Idee, mit dem Lernen von C# jetzt seine Berufschancen zu erhöhen ist Unsinn
Aus –im wesentlichen– zwei Gründen:
Wem wirklich etwas daran liegt Sprachen zu lernen, der wartet nicht darauf dass die Uni auf ihn zukommt. Eigeninitiative und die Fähigkeit sich für eine Sache so zu interessieren dass man seine Freizeit darin investiert sind wesentlich mehr wert als C#. Paul Graham erläutert das Phänomen in Python Paradox:
It’s a lot of work to learn a new programming language. And people don’t learn Python because it will get them a job; they learn it because they genuinely like to program and aren’t satisfied with the languages they already know.
Which makes them exactly the kind of programmers companies should want to hire. Hence what, for lack of a better name, I’ll call the Python paradox: if a company chooses to write its software in a comparatively esoteric language, they’ll be able to hire better programmers, because they’ll attract only those who cared enough to learn it. And for programmers the paradox is even more pronounced: the language to learn, if you want to get a good job, is a language that people don’t learn merely to get a job.
Only a few companies have been smart enough to realize this so far. But there is a kind of selection going on here too: they’re exactly the companies programmers would most like to work for. Google, for example. When they advertise Java programming jobs, they also want Python experience.
Nun bin ich nicht so naiv zu glauben, alle deutschen Personalchefs würden Paul Graham lesen (sehr schade eigentlich), aber wenn man auf sein Engagement und seine Bandbreite an Programmiersprachen hinweist, dürfte es kein Problem sein, jemanden davon zu überzeugen, dass man sich innerhalb kürzester Zeit in jede beliebige neue Sprache einarbeiten kann.
Umgekehrt aber einem der Personalchefs, die Graham kennen, von der eigenen Flexibilität und Begeisterung für Softwareentwicklung zu erzählen, wenn alle Spracherfahrung die man vorzuweisen hat ein bißchen Java und C# im Rahmen halbfreiwilliger Uni-Veranstaltungen sind, dürfte schwierig werden.
PG500: Intuitive Visualisierung und interaktive Auswertung von Paretomengen
October 16th, 2006
Das klingt beeindruckend und ist die offizielle Bezeichnung der Projektgruppe die mich dieses und nächstes Semester beschäftigen wird.
Bei dem Projekt geht es darum, Methoden und Implementierungen zu entwickeln, die es Ingenieuren aus dem Maschinenbau erleichtern, Lösungsmengen heuristischer Algorithmen interaktiv zu untersuchen. Der Witz dabei ist, dass der Lösungsraum wesentlich mehr als 3 Dimensionen haben kann. Aufgabe der Projektgruppe ist es, sich zu überlegen, wie man einen solchen hochdimensionalen Lösungsraum vernünftig navigieren und betrachten kann und eine Implementierung dafür zu entwickeln.
Letzte Woche hatten wir unsere erste Zusammenkunft, eine zweitägige Seminarfahrt in der wir 11 uns gegenseitig über unsere jeweiligen Spezialgebiete informiert haben. Darüberhinaus war die gemeinsame Fahrt natürlich auch “teambildende Maßnahme”, allerdings hätte es einer solchen kaum bedurft: Ich denke dass wir da eine sehr gute Truppe zusammenbekommen haben.
Ich bin gespannt was die nächsten 2 Semester bringen werden.