Michael Eriksson
A Swede in Germany
Home » IT-Beratung | About me Impressum Contact Sitemap

Übersicht meiner IT-Kenntnisse

Über diese Seite

Diese Seite dient dazu Ihnen, als Kunde, Projektvermittler, Personalberater, o.ä., einen tiefgehenden Überblick meiner IT-Kenntnisse zu geben.

Falls besondere Angaben fehlen, die Sie gerne sehen würden, falls eine Formulierung zu undeutlich ist, oder Sie andere Verbesserungsvorschlägen haben, zögern Sie nicht eine Email mit Feedback zu schicken.

Die Kenntnisse sind in logischen Gruppen eingeteilt, die wiederum aus Einzeleinträgen bestehen. Aus Platzgründen haben nicht alle Unter-Technologien separate Einträge. Wenn Sie also ein besonders Stichwort, etwa “DTD”, nicht in dem Inhaltsverzeichnis finden, kann es sich lohnen die Suchfunktion Ihres Browsers (typischerweise Kontroll-F) zu benutzen. Sie würden dann “DTD” unter XML/XSLT finden.

Der typische Einzeleintrag besteht aus:

  1. Einem Namen.

  2. Einer Zahl von 1 bis 3, die meine theoretische Kenntnisse angibt (1 am Besten).

  3. Einer entsprechenden Zahl für meine praktische Erfahrungen. (S. auch diese Diskussion, warum eine Zweiteilung notwendig ist.)

  4. Einer kurzen textuellen Erläuterung.

Hierbei ist zu beachten, dass die Angaben sich auf den historischen Höchststand beziehen—eine gewisse Auffrischung kann nötig sein.

Allgemein bin ich etwas skeptisch zu der Relevanz von solchen Zahlen (vorallem wegen der großen Subjektivität), und erwähne sie hauptsächlich weil sie gerne von Auftraggebern gesehen werden. Allerdings habe ich diese Angaben nicht durchgehend gemacht, weil sie öfters von zu zweifelhaftem Wert sind. (Eine Empfangsdame, die “1” im Bezug auf Windows-Kenntnisse behauptet, käme wahrscheinlich nicht über eine “3” aus Sicht eines Softwareentwicklers hinaus; seine “1”, wiederum, würde vielleicht als eine “3” von einem Systemadministrator oder Betriebsystementwickler angesehen werden. Welchen Wert kann man dann sinnvoll angeben?)

Beachten Sie auch, dass die richtige Denkweise und die allgemeinen Erfahrungen häufig wichtiger sind als die spezifischen Erfahrungen: IDEs, Profilers, Debuggers, z.B., sind einander meistens so ähnlich, dass ein Profi problemlos umsteigen kann. Auch spezifische Bibliotheke, Sonderwerkzeuge, usw. sind häufig schnell zu erlernen. Sollten Sie also unten nicht genau “Ihre” Technologien vorfinden, ist das nicht unbedingt ein Problem. Nachfragen zu Einarbeitungsaufwänden, u.ä., beantworte ich gerne—zumal es sein kann, dass ich einfach einen Eintrag vergessen habe.

Java/J(2)EE

Java

Theorie:1
Praxis:1
Bemerkung:Mehr als fünf Jahre von Java-Entwicklung kombiniert mit umfassenden theoretischen Studien. Außer GUI-Entwicklung bin ich in Kontakt mit fast allen Hauptbereichen gekommen, öfters tiefgehend. Insbesondere ist zu beachten, dass ich mit Themen wie Multi-Threading, Optimierung, Skalierbarkeit, und Maintainability vertraut bin—Themen, die leider bei vielen sonst kompetenten Entwicklern unter dem Tisch gefallen sind.

JDBC

Theorie:3
Praxis:3
Bemerkung:Wiederkehrendes Thema, jedoch meistens hinter Abstraktionen versteckt.

JNDI

Theorie:1
Praxis:1
Bemerkung:Insbesondere habe ich für einen navigierbaren Wissensbasis einen JNDI-Adapter geschrieben, was ein eingehendes Studium der Spezifikation verlangt hat.

JSF

Theorie:2
Praxis:2
Bemerkung:Mehrmonatige Erfahrungen.

JSP

Theorie:1
Praxis:2
Bemerkung:JSP-Programmierung ist ein ständig wiederkehrendes Thema gewesen, jedoch häufig in einem Form wo Tag-Libs, JSF, oder sonstige Erweiterungen im Fokus gestanden haben—daher nur eine 2 in Erfahrungen.

JUnit

Theorie:1
Praxis:1
Bemerkung:Unit-Tests ist (zu Recht) bei mehreren Arbeitgebern wichtig gewesen, und ich habe mich hier eingehend vertieft.

NIO

Theorie:1
Praxis:3
Bemerkung:Binnen Rahmen einer internen Schulung war ich mit einem Vortrag zu diesem Thema beauftragt, und habe mich zu diesem Zwecke eingehend mit der Theorie beschäftigt. Außer einigen Testbeispielen für den Vortrag, fehlen mir jedoch praktische Erfahrungen.

RichFaces

Theorie:2
Praxis:2
Bemerkung:Mehrmonatige Erfahrungen.

RMI

Theorie:3
Praxis:3
Bemerkung:Wiederkehrendes Thema, jedoch meistens hinter Abstraktionen versteckt.

Servlets

Theorie:1
Praxis:1
Bemerkung:Vor allem in den Zeiten bevor JSP populär wurde ein Hauptthema. Erfahrungen inkludieren, außer reinen Servlets, Kombinationen von Servlets und Software-Agenten, und Kommunikation zwischen Servlets in unterschiedlichen VMs.

Sonstige Programmiersprachen

(Inklusive Dokumentsprachen wie HTML und LaTeX, und andere Sonderfälle.)

Beachte, dass die Zahlen sich zum größten Teil auf die Sprachen in sich beziehen. Anders als bei Java, habe ich mich nicht immer in den Zusatzbibliotheken, Hilfsanwendungen, usw., vertiefen können—oder aber Entwicklungen seit meiner letzten Benutzung nicht mitbekommen. SmallTalk wäre ein Paradebeispiel hierführ. Für Sprachen mit einem sehr großen “Umfeld” müssen die Angaben also im Licht der textuellen Bemerkung gesehen werden.

Ant

Theorie:1
Praxis:1
Bemerkung:Hauptverantwortlicher für umfassende Ant-Dateien und Build/Deploy-Prozessen bei einem vorigen Arbeitgeber, inklusive Neustrukturierung von “Spaghetti”, hinbiegen von Sonderwünschen, und Schreiben von neuen Target-Klassen.

Awk

Theorie:2
Praxis:2
Bemerkung: Gelegentlich benutztes Werkzeug unter Linux/Unix, inklusive Hantierung von Textdatenbanken, Schreiben von Funktionen, ...

Bash/Ksh

Theorie:1
Praxis:1
Bemerkung:Ich bin sowohl von der Uni, einigen Arbeitgebern, und meinen privaten Rechnern mit Linux/Unix wohl vertraut—und ziehe die Kommandozeile meistens vor. Entsprechend habe ich mich hier sehr vertieft, und habe auch einige halbgroßen Aufgaben für private Zwecke gelöst—von hunderten halb-trivialen Shell-Skripten (auch beruflich) abgesehen. Als Besonderheit: Diese Website wird durch Shell-Skripte generiert. (S. Technical Notes.)

Basic

Theorie:2
Praxis:2
Bemerkung:Meine erste Programme waren, wie bei vielen anderen meiner Generation, in C64 Basic geschrieben, und ich habe in meiner Jugend einiges an Zeit hiermit verplempert. Seitdem habe ich bei einigen Gelegenheiten VisualBasic/VBScript in kleinerem Umfang beruflich einsetzen müssen.

C

Theorie:1
Praxis:2
Bemerkung:Während meines Erststudiums der Hauptsprache in Informatikkursen, wo ich sowohl als Student und (später) als Betreuer tätig war. Auch habe ich in meiner Diplomarbeit ein Programm von mehreren Tausend Kodezeilen in C geschrieben.

C++

Theorie:3
Praxis:3
Bemerkung:(Außer den Kenntnissen, die schon durch C impliziert werden.) Einige Programmieraufgaben waren während meiner Studien in C++ auszuführen.

CSS

Theorie:1
Praxis:1
Bemerkung:Von Zeit zu Zeit habe ich mich intensiv mit CSS beschäftigt, inklusive Dekorierung, Positionierung, separaten Druckansichten, ... Die Layout von dieser Website ist mit CSS gemacht.

HTML

Theorie:1
Praxis:1
Bemerkung:Seit meiner ersten Homepage in 1994 (!), damals ein kurzlebiges Späßchen, bin ich sowohl beruflich als auch privat immer wieder bei HTML gelandet.

JavaScript

Theorie:2
Praxis:2
Bemerkung:Ständig wiederkehrendes Thema, sowohl was Programmierlogik als auch DOM-Navigation/Manipulation angeht.

LaTeX

Theorie:1
Praxis:1
Bemerkung:Ausser zwei Diplomarbeiten und einigen anderen “akademischen” Dokumenten, habe ich LaTeX seit meiner Uni-Zeit für fast alles benutzt, wo andere zu MS Word greifen würden. (Leider nur privat, beruflich ist MS Word wegen Firmenregelungen meistens unausweichbar gewesen.)

Lisp

S. Scheme.

Maple

Theorie:2
Praxis:2
Bemerkung:Häufig benutztes Tool während meines Erststudiums, insbesondere für algebraische Manipulation.

Matlab

Theorie:3
Praxis:3
Bemerkung:Gelegentlich benutztes Tool während meines Erststudiums, insbesondere in einem Kursus über numerischen Methoden.

PHP

Theorie:2
Praxis:3
Bemerkung:Ich habe mich während der Arbeit bei einer PHP-zentrischen Firma recht gut in der Theorie einarbeiten können, und auch einige halbwegs fortgeschrittene Seiten geschrieben.

PL/SQL

Theorie:2
Praxis:2
Bemerkung:Teilweise Implementierung von “Business Logic” und/oder Datenkonsistenz mit Hilfe von Prozeduren und Triggers.

Prolog

Theorie:2
Praxis:3
Bemerkung:War ein wichtiges Thema in einem Kurs über AI. Der Schwerpunkt lag hier natürlich auf dem theoretischen Verständnis.

Scheme (Unterart von LISP)

Theorie:1
Praxis:2
Bemerkung:Die Hauptsprache in einem Informatikkurs, den ich auch wiederholt betreute.

Sed

Theorie:2
Praxis:2
Bemerkung: Gelegentlich benutztes Werkzeug unter Linux/Unix, insbesondere wenn ich reguljäre Ausdrücke auf der Kommandozeile brauche. Die Mehrpart der Umwandlung von eigenem Markup zu XML auf dieser Website wird mit Sed-Aufrufe in einem Shell-Skript gemacht. In einer älteren Version wurde gar HTML direkt generiert. (S. Technical Notes.)

SmallTalk

Theorie:2
Praxis:2
Bemerkung:Hauptsprache in einem Kurs über objektorientierte Programmierung. Ich habe mich hier auch ein Stück weiter vertieft bevor meinem Berufseinstieg, da SmallTalk damals als der wahrscheinlichste Einstiegspunkt aussah.

SQL

Theorie:1
Praxis:1
Bemerkung:Vorallem in Oracle sehr tiefgehende Erfahrungen, inklusive Optimierung und “Hinting”. Auch Benutzung von DDL, DCL, und PL/SQL.

XML/XSLT

Theorie:1
Praxis:1
Bemerkung: Tiefgehende Erfahrungen, inklusive Transformationen und programmatische Benutzung von SAX-Parsern. Diese Website wird zuerst von einfacher Mark-Up in XML gewandelt und von dort per XSLT in HTML. Auch Schreiben von DTD- und XSD-Dokumenten.

Betriebssysteme

Ich habe umfassende private und berufliche Erfahrung mit unterschiedlichen Varianten von Linux/Unix und Windows gesammelt, inklusive SunOS/Solaris, Suse, Debian, Windows 95/2000/NT/XP/Vista. Ich habe insbesondere vielseitige Erfahrungen mit unterschiedlichen Kommandozeilen-Tools (vgl. oben.) unter Linux/Unix gesammelt, und auch einiges an Administrationsaufgaben hinter mir.

Die Theorie von Betriebssystemen ist mir von der Uni gut bekannt.

Webservers u.ä.

Tomcat

Fast durchgendend der benutzte Servletcontainer. Erfahrungen inkludieren Konfiguration, eigene Valves (Tomcat-spezifischer Vorgänger von den allgemeingültigeren Filters), und kleinere Eingriffe in dem eigentlichen Container.

Apache

Private Installation und Konfiguration um diese Website auch auf meinem privaten Rechner testen zu können. Darüber hinaus häufige Anpassungen von den “htaccess” Dateien des Live-Systems.

JBoss

Gelegentlich benutztes Werkzeug, meine Erfahrungen sind allerdings eher oberflächlich.

Entwicklungstools

IDEs

Ausser mehrjährigen Erfahrungen mit Eclipse habe ich auch seitweise mit Kawa und unterschiedlichen Ausführungen von VisualStudio gearbeitet.

Editoren

Vorallem sehr umfassende Erfahrungen mit Vim, inklusive Anpassungen, eigene Funktionen und Macros, Integration von externen Tools ... Auch mit (vanilla) Vi, Emacs, und ed/ex liegen nicht-triviale Erfahrungen vor.

(Zu bemerken ist, für die Leser, die von Windows kommen, dass “Editor” viel weitgehendere Implikationen unter Unix hat als unter Windows. Ein Vergleich Vim–Notepad, z.B., ist in etwa so sinnvoll wie der Vergleich Computer–Abakus.)

Bugtracking

Erfahrungen mit Bugzilla, Trac, und Jira, sowie firmeninternen Bugtrackers. Ich habe mich insbesondere ein Stück mit den Möglichkeiten JIRAs beschäftigt, Workflows, Prozessen, u.ä., abzubilden und frei zu konfigurieren.

Version Control

Mehrjährigen Erfahrungen von sowohl CVS als auch SVN, inklusive Administration und Umgang mit z.B. Branching. Auch professionelle Erfahrungen mit PVCS.

SQL-Tools

Erfahrungen mit einer Mehrzahl von unterschiedlichen Tools, sowohl graphischen als auch textbasierten. Besondere Erfahrungen mit Oracle SQL*Plus und SQL Developer.

Profilers

Erfahrungen mit Profiling in mehreren Sprachen, vorallem Java (JProfile, JDK Bordmittel).

Debuggers

Ausser den in IDEs integrierten (etwa Eclipse), habe ich auch Erfahrungen mit z.B. JSwat, JDB, GDB, und unterschiedlichen Trace-Mechanismen (etwa in Scheme oder Bash).

(Selbstverständlich kenne ich auch andere Debuggingmethoden, wie gezieltes Logging.)

Frameworks

Während meines Sabbaticals habe ich mich gut in Spring, Maven, und Hibernate eingelesen, jedoch noch nicht die Gelegenheit gehabt, nicht-triviale praktische Erfahrungen zu sammeln.

Für z.B. Ant, s. den entsprechenden Eintrag unter Sprachen.

Modelling Tools

Ich habe als Business Analyst umfassende Erfahrungen mit Modellierung und Zeichnen von UML in Together gesammelt. Hierüber Erfahrungen in MDA/MDD in dem Trend-Framework. Geringfügige Erfahrungen mit einigen anderen Tools für UML und ERM.

Andere Software

TODO: Complete list and fill in details.
Ausser den hier aufgeführten Tools habe ich natürlich den Durchschnitt weit übersteigenden Erfahrungen mit Webbrowsers, Emailklienten, u.ä. “unvermeidbaren” Anwendungen.

Office-Anwendungen

Professionelle Erfahrungen mit MS Office (Word, zum Teil Excel, PowerPoint) und OpenOffice (Writer).

S. auch LaTeX und Wikis.

Wikis

Erfahrungen mit einer Mehrzahl an Wikis, besonders tiefgehend bei Confluence. Sonstige inkludieren Papaya CMS und MediaWiki (benutzt von Wikipedia).

Kommandozeilen-Tools

Umfassende Erfahrungen mit den Standard-Tools unter Linux/Unix, wie etwa Awk, Sed, find, xargs, tail, grep, ...

TODO:
Sonstiges: WebDAV, Modellierung, MDA/MDD, UML, OOD, Design Patterns, Architektur, MySQL, SOAP, Regular Expressions, make