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 jeweiligen historischen Höchststand beziehen. Aus offentsichtlichen Gründen kann in vielen Fällen eine gewisse Auffrischung 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.

Letzte Aktualisierung

Januar 2013

Kurzübersicht

Seit 1999 als Softwareentwickler, -designer, -architekt, IT-Berater, und Business Analyst tätig. Die meisten Projekte haben den Schwerpunkt auf Java/JEE. Oracle- und PL/SQL-Projekte kommen aber auch vor. Agile Entwicklung und Scrum von zunehmender Bedeutung.

Java/J(2)EE

Java (Sprache)

Theorie:1
Praxis:1
Bemerkung:Mehr als sieben Jahre von Java-Entwicklung kombiniert mit umfassenden theoretischen Studien. Mit Ausnahme von 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, und Kodequalität vertraut bin—Themen, die leider bei vielen sonst kompetenten Entwicklern unter dem Tisch gefallen sind.

EJB3

Theorie:2
Praxis:2
Bemerkung:Zuletzt etwa ein Jahr Erfahrung mit Schwerpunkt auf MDBs.

JDBC

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

JMS

Theorie:2
Praxis:2
Bemerkung:Mehrjährige Erfahrungen, allerdings meistens auf auslesen von Daten für Behandlung in MDBs beschränkt.

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.

JPA/Hibernate

Theorie:1
Praxis:1
Bemerkung:Mehrjährige Erfahrungen, inklusive Modellierung.

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 sind (zu Recht) bei mehreren Arbeitgebern wichtig gewesen, und ich habe mich hier eingehend vertieft. Auch Mockito, FEST, usw. sind häufig benutzt worden.

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.

Webservices/SOA

Theorie:2
Praxis:2
Bemerkung:Vorallem Erfahrungen mit Datenimporte/-exporte über Webservices basierend auf WDSL-Vorgaben.

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 Seiten geschrieben.

PL/SQL

Theorie:1
Praxis:1
Bemerkung:Außer gelegentlichen Benutzung bei Java-Projekten habe ich ein halbes Jahr als reiner Oracle- und PL/SQL-Entwickler gearbeitet. Da es hierbei um eine ungewöhnlich herausfordernde Aufgabenstellung ging, war es notwendig an die Grenzen von PL/SQL zu gehen und vielzählige Features theoretisch und experimentell zu untersuchen.

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 regulä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 Features, die den meisten unbekannt sind, bis hin zu analytischen Funktionen, connect by, und model. 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

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

JBoss

Mit der Verbreitung von Enterprise-Servern der in den letzten Jahren wichtigste Server für meine Arbeit. Konfiguration, Fehlersuche, einbinden von neuen Komponenten, ...

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.

Entwicklungstools (interaktive)

Für Tools die nicht stark auf die interaktive Ausführung ausgelegt sind, z.B. Ant, s. den entsprechenden Eintrag unter Sprachen.

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, Remedy, Redmine, 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 Subversion, inklusive Administration und Umgang mit z.B. Branching. Auch professionelle Erfahrungen mit PVCS, Perforce, und ClearCase.

SQL-Tools

Erfahrungen mit einer Mehrzahl von unterschiedlichen Werkzeugen, sowohl graphischen als auch textbasierten. Besondere Erfahrungen mit Oracle SQL*Plus, Toad, SQL Developer, und PL/SQL Developer (trotz Namensgleichheit völlig verschiedene Applikationen).

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 oder Variationen von Binärsuche.)

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. Auch Erfahrungen mit Visio, allerdings nicht im Modelling-Umfeld.

Sonstiges

Ausser den hier aufgeführten Tools habe ich den Durchschnitt weit übersteigende Erfahrungen mit Browsers, Emailklienten, u.ä. “unvermeidbaren” Anwendungen.

Office-Anwendungen

Professionelle Erfahrungen mit MS Office (Word, zum Teil Excel, PowerPoint, Visio) 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, ...

Regular expressions

Sind mir vorallem von Vim sehr gut bekannt, aber auch von einer Reihe mit anderen Unix-Tools und von Java Regexps.