Qualifikationen eines Software Entwicklers
Was sind die Qualifikationen eines Software Entwicklers? Welche Eigenschaften braucht man heute als Programmierer und wie sieht es mit den Anforderungen der Arbeitgeber aus? Ich habe mir dazu einige Gedanken gemacht.
Qualifikationen eines Software Entwicklers
Vor einiger Zeit habe ich bereits einen ausführlichen Artikel zum Thema Fachkräftemangel in der IT geschrieben. Das Thema taucht alle paar Monate in den Medien auf und ist für immer mehr Firmen ein Problem. Die Digitalisierung schreitet ungnädig voran, an qualifiziertem Personal scheint es massiv zu mangeln. Man kommt gar nicht zurecht alle geplanten Projekte fristgerecht umzusetzen. Der Software Entwickler gehört zu den Top Jobs der Zukunft. Die Entwicklungen rund um die künstliche Intelligenz der letzten Jahre tun ihr übriges – wo findet man schon einen KI Experten mit 5 Jahren Berufserfahrung?
Zeugnis != Erfahrung != Qualifikation
In einem Kommentar äußerte sich ein Leser, dass heute Zeugnisse mehr zählen als Erfahrung. Im schlimmsten Fall sitzt dann ein von der Uni kommender Software Experte in einer langen Einschulung um Praxiserfahrung zu sammeln wo jemand mit jahrelanger Erfahrung aber keine Zeugnissen sofort durchstarten hätte können. Ich habe in meiner Laufbahn beim Recruiting beides gesehen, hatte also auch schon mal Kollegen ohne Titel. In jedem Fall hat es jemand ohne fachliche Ausbildung im Bewerbungsverfahren wesentlich schwerer und wird meist nur als „Notlösung“ genommen, das heißt er oder sie muss sich dann im Job erst recht beweisen.
Aus Sicht der Entscheider in so mancher Firma ist IT nur ein notwendiges Übel um weiter produzieren zu können und wird nur selten als Chance gesehen. Im Zeitalter der Digitalisierung ist das umso schlimmer, muss man dort noch mehr Geld investieren. Eine Firma kann fachlich die besten Produkte produzieren sieht sich aber trotzdem plötzlich durch diesen Wandel massiv unter Druck gesetzt. Man muss in einem unbekannten Feld plötzlich ebenfalls mithalten. Es fehlt zu oft die Erfahrung, es werden Fehler gemacht. Dieses Gefühl entlädt sich dann gerne mal bei Bewerbungsgesprächen, wenn der Bewerber plötzlich mit angeblich überzogenen Gehaltsvorstellungen daherkommt. Angebot und Nachfrage setzen die Personalabteilungen noch mehr unter Druck. Fehlende Investitionen in Technologie und Ausbildung der letzten 20 – 30 Jahre von politischer Seite zeugen sich nun.
Hypetrain fahren
Seit den letzten 10 Jahren beobachte ich eine meiner Meinung nach gefährliche Entwicklung. Ich nenne es Hypetrain fahren. Alle Jahre wird der IT Markt durch eine Vielzahl von Buzzwords geflutet. Einige Beispiele gefällig?
- Cloud, Virtualisierung, Container, Microservices
- Internet of Things, Microdevices, Peer-to-Peer Netzwerke
- Bitcoins, Blockchain, Cryptoservices
- Machine Learning, künstliche Intelligenz, neuronale Netze
In Wellen sind diese Gruppen von Themen die letzten Jahre daher gekommen. Jedesmal wird das von den Medien massiv thematisiert und in einer Firma kommt man schnell auf die Idee, man muss im aktuellen Hypetrain mitfahren. Insbesondere dann, wenn die Entscheider fachlich wenig Ahnung haben und externe Berater darauf drängen. Mitarbeiter müssen umgeschult, neue eingestellt und ganze Projekte müssen über den Haufen geworfen und neu implementiert werden. Meist werden die nicht mal in der Konzeption fertig bis wieder die nächste Welle anrollt.
Ich überlasse euch die Bewertung ob diese Entwicklung langfristig eine gute Idee ist.
Beispiele aus eigener Erfahrung
Im ersten Jahr programmieren wurde uns in C gelehrt: GOTO gibt es, darf aber nicht eingesetzt werden. Mehr muss man dazu nicht wissen. Die nächsten Jahre kamen Sprachen wie Java, C#, PHP, Python usw. in der Ausbildung vor und Schleifen waren im Prinzip immer gleich. Jetzt arbeite ich an 30 Jahre alten C++ Code und dort stoße ich doch tatsächlich auf dieses böse Schlüsselwort. Was nun? Darauf wurde ich in 10 Jahren Ausbildung nicht vorbereitet. Ich komme damit gut zurecht, da ich mich in meiner Freizeit mit vintage computing beschäftige und Sprunganweisungen aus der Assembler Programmierung kenne. Wie würde es aber einem jungen Entwickler gehen? Wäre in diesem Fall ein 50 jähriger mit Programmiererfahrung aus den 90er Jahren ohne universitäre Ausbildung die bessere Fachkraft?
Zum Zeitpunkt an dem man mit der Ausbildung fertig ist, ist dieses gelernte Know How schon wieder veraltet. Dieses Phänomen ist in der IT besonders ausgeprägt. Die Ausbildung ist dann gut, wenn Konzepte gelehrt werden und keine Technologien. Konzepte bleiben über viele Jahre bestehen. So sind beispielsweise Design Pattern seit Mitte der 90er Jahre bekannt und seither gültig. Ebenso fußt der ganze KI Hype auf wissenschaftlichen Arbeiten der 60er Jahre. Hat man es damals verstanden, dann kann man auch heute in dem Feld arbeiten. Man muss nur die aktuell gängige Programmiersprache und Umgebung lernen, mit Erfahrung eine Arbeit von ein paar Wochen.
Fazit
Die Qualifikation eines Software Entwicklers ist gar nicht so einfach zu bestimmen und ist bestimmt nicht nur durch Zeugnisse bestimmbar. Die besten Entwickler beschäftigen sich auch privat mit eigenen Themen und bilden sich laufend weiter. Nur wer am Ball bleibt, interessiert ist und versucht sich ständig zu verbessern wird in der IT wirklich gut leben können. Dieses Engagement hängt dabei nicht von einer bestimmten Ausbildung ab, wobei eine universitäre Ausbildung aber gut ist um seinen Horizont zu erweitern. Wenn man interessiert ist, findet man aber die Themen von Lehrveranstaltungen in sehr gut gemachten Videos beispielsweise auf Youtube wieder. Bildung war nie einfacher als heute, man muss nur damit leben können, dass man dafür kein Zeugnis bekommt und das im nächsten Bewerbungsgespräch nicht schriftlich belegen kann.
Was sind eure Erfahrungen oder Meinungen? Was ist für euch die wichtigste Qualifikation oder Eigenschaft eines Software Entwicklers den ihr sofort einstellen würdet?