Sonntag, 12. Februar 2012 |
Craig Andera ist unabhängiger Consultant für .NET und auf die Themen Sicherheit und Skalierbarkeit spezialisiert. In seiner Firma hat er den Rang eines Jedi Master. Für das MSDN Magazin schreibt er mitunter die INSIDE MSDN-Kolumne. Was aber macht Craig, wenn er nicht gerade vor seinem PC sitzt?
Craig, was gefällt dir am Programmieren?
Craig: Was mir am programmieren besonders gefällt ist, das es
ein Akt kreativen Schaffens ist. Ich glaube, ich bin ein geborener
Ingenieur, aber ich erschaffe einfach gerne Dinge. Ich habe eine
Vorstellung, daraus entwickelt sich eine Idee, die es mittels Grips
und den eigenen Händen zu erschaffen gilt – das reizt mich.
Gibt es Aspekte, die dir nicht so viel Spaß machen?
Craig: Sicherlich kommt jeder mal an den Punkt, an dem er am
liebsten seinen PC aus dem nächstgelegen Fenster schmeißen würde.
Aber lassen wir das mal außer acht (lacht). Wie viele andere
sicherlich auch, werde ich ein wenig müde, wenn es an den letzten
Schliff geht. Solche Aufgaben wie Dokumentation oder Bugfixing
finde ich manchmal etwas nervtötend. Ich habe aber festgestellt,
je älter ich werde, desto geduldiger werde ich auch. Damit wird
es für mich einfacher, mich den wichtigen aber eben nicht gerade
glamourösen Abschnitten der Softwareentwicklung zu stellen.
Wie bist du zum Programmieren gekommen?
Craig: Mit neun Jahren habe ich ein Buch über AppleSoft-Basic-
Programmierung gelesen. Ich weiß nicht mehr, ob mir meine Eltern
das Buch gekauft haben oder ich mir es ausgeliehen hatte.
Vielleicht hat es aber auch mein Vater von
seiner Arbeit mitgebracht. Wie auch immer,
ich muss dieses Buch wirklich gemocht haben,
denn ich erinnere mich, wie ich einen Teil des
Sommer einzig damit verbracht habe, simple
Programme auf ein Blatt Papier zu schreiben.
Wir hatten damals noch keinen PC. Im darauf
folgenden Jahr kauften meine Eltern einen
Apple II, seitdem ist es um mich geschehen.
Wie stellst du dir die zukünftige Welt des
Programmierens vor?
Craig: Um ehrlich zu sein, ich spekuliere nicht
gerne. Es ist schon schwer genug, sich in seinen
spezifischen Aufgabengebieten auf dem
Laufenden zu halten. Vor rund zehn Jahren
wurden wir von der Technik eingeholt, bis
dahin konnten wir noch hoffen, mit der Entwicklung
mitzuhalten. Jetzt sind wir an einem
Punkt, an dem man nicht einmal mehr mit der
Entwicklung auf einer bestimmten Plattform,
in meinem Fall .NET, mithalten kann. Ich muss mich anstrengen,
damit ich all die Dinge mitbekomme, die um mich herum passieren
– Blogs lesen hilft sehr dabei.
Ich habe eine Theorie Moore’s Law betreffend – es läuft aus, in
zehn, zwanzig Jahren. Besonders Microsoft hat von immer besserer,
immer schnellerer Hardware profitiert, die immer abstraktere
Software erlaubt. Doch wenn die Hardwareentwicklung stockt,
wenn PCs ihre Geschwindigkeit innerhalb von 18 Monaten nicht
verdoppeln, dann lassen sich nicht mehr solch technologische Fortschritte
erzielen. Die übliche Antwort, die ich auf diese These bekomme
ist: "Oh, sie werden auf Quantum, Optical oder sonst was
switchen. Aber wer garantiert, das die Technik auch exponentiell
wächst. Es zu glauben ist einfach praktisch. Es ist nicht so, dass ich
nicht glaube, dass Computer immer schneller werden. Ich denke
nur, sie werden nicht exponentiell schneller. Und das wird deutliche
Auswirkungen darauf haben, wie Software produziert wird.
Entweder programmieren wir auf einem niedrigeren Level, um sophisticated
Software zu bekommen oder wir benötigen Compiler/
Runtimes, die aus unserer Software effizientere Versionen machen.
Programmieren auf einem niedrigeren Niveau würde ich allerdings
als Rohrkrepierer bezeichnen, ist es doch weniger effektiv.
Aber ich bin kein Experte auf diesem Gebiet – vielleicht liege
ich mit meiner Einschätzung vollkommen falsch, wie die meisten
Menschen, die versuchen die Zukunft zu erahnen.
Wenn du für einen Tag der Boss von Microsoft sein könntest,
was würdest Du tun?
Craig: Den Gehaltsscheck einstecken und zurücktreten (lacht). Nein,
ehrlich gesagt, ich war vor einiger Zeit Teamleiter
und ich habe es gehasst. Ich glaube, ich war
noch nicht einmal schlecht, aber Business- und
Mitarbeiter-Entscheidungen überlasse ich lieber
anderen. Ich bin wirklich froh, dass es da draußen
gute Manager gibt, mit denen Entwickler
im Zusammenspiel gute Software entwickeln
können. Ich für meinen Teil beschäftige mich
einfach gerne mit rein technischen Aspekten.
Wenn du kein Software-Ingenieur geworden
wärst, was wäre heute deine Berufung?
Craig: Ich würde wohl irgendein anderer Ingenieur
sein. Ich habe einen Abschluss in Elektrotechnik,
wahrscheinlich würde ich irgendetwas
in Richtung Signalverarbeitung machen.
Wenn du nicht gerade vor einem PC sitzt,
was machst du?
Craig: Ich gehe gerne joggen, ich spiele, mehr
schlecht als recht, Bassgitarre und noch schlechter Schlagzeug. Und ich mache gerne Holzarbeiten. Gerade eben befinde ich mich in
einer "Holz"-Phase – die Phasen schwanken alle paar Monate. Und ich lese sehr gern.
Außerdem verbringe ich jeden Tag Zeit mit meiner zweijährigen Tochter, sie ist der
Wahnsinn.
Was ist dein momentanes Lieblingsbuch?
Craig: Ich gehe sehr gerne in die Bücherei und nehme einfach alles mit, was mir interessant
erscheint. Gerade lese ich Red Storm Rising von Tom Clancy. Ich mag Clancy, aber
ich würde ihn nicht als meinen Lieblingsautor bezeichnen. Wenn ich einen Favoriten
nennen müsste, dann wäre das vielleicht George Martins Serie Song of Fire and Ice. Das
ist vielleicht das beste Fantasy-Abenteuer nach Herr der Ringe (natürlich auch einer meiner
Favoriten).
Hast du vielleicht einen Rat, den du kommenden Entwicklern mit auf den Weg
geben möchtest?
Craig: Da gibt es gleich mehrere Sachen, die ich loswerden möchte. Erstens, was man
in der Schule lernt, macht vielleicht ein Prozent von dem aus, was man wissen muss,
um gut zu werden. Also macht euch darauf gefasst, für den Rest eurer Karriere zu lernen.
Lest alles, was ihr in die Finger bekommt – Magazine, Bücher, Blogs etc. Und lasst
euch von eurem Arbeitgeber auf Trainings und Konferenzen schicken.
Zweitens, schreibt jede Menge Code. Die besten Programmierer schreiben so gerne
Code, dass sie sogar welchen in ihrer Freizeit schreiben. Eine Möglichkeit wäre, sich
in einem Open-Source-Projekt zu engagieren. Man bekommt Kontakt zu erfahrenen
Programmierern mit unterschiedlichstem Wissen und Erfahrungen und man lernt vor
allem, in einer Gruppe zu arbeiten.
Drittens, fragt ständig nach. Schreibt Entwicklern, deren Blog ihr mögt. Tretet Mailing-
Listen und Newsgroups bei und stellt auch dort viele Fragen, aber erst nach der
Lektüre des Guides von Eric Steven Raymonds "How To Ask Questions The Smart
Way": catb.org/~esr/faqs/smart-questions.html.
Viertens, erforscht alles. Lernt viele verschiedene Sprachen und Typen, wie XSLT
und C#. Beschränkt euch nicht auf einige Sprachen. Beschäftigt euch mit Test Driven
Development, aber bitte aus eigenem Antrieb. Nur weil smarte Entwickler sagen "Ruby
ist toll" oder "Extrem Programming ist der einzige Weg Software zu entwickeln" heißt
das noch nicht, dass dies auch der richtige Weg für euch ist. Schaut es euch an und
bildet euch eine eigene Meinung.
Fünftens, seid geduldig. Ich programmiere seit 25, professionell seit zwölf Jahren.
Und ich werde immer noch besser. Ich fühle mich, als hätte ich sieben Jahre gebraucht,
um meine erste Technologie, COM, zu meistern. Danach wird es leichter.
Craig, vielen Dank für das Gespräch!
Das Interview führte Felix Schrader, Redakteur des MSDN Magazin – Deutsche Ausgabe. Sie erreichen Felix via E-Mail.