IT-Recruiting IT-Experten – äußerst begehrt und stark umworben. Unternehmen suchen immer häufiger nach guten ITlern. Auf dem Arbeitsmarkt sind die Spezialisten jedoch sehr begehrt, denn dank Digitalisierung, Remote Work und immer agileren Arbeitsweisen, die technische Weiterentwicklung bedarf, ist die Nachfrage größer denn je. Trotz dessen blieben in den letzten Jahren immer mehr Tech-Stellen unbesetzt – Tendenz steigend. Wie man auch unter starker Konkurrenz die begehrten IT-Experten rekrutieren kann, erfährst Du in unserem umfangreichen Einsteigerguide zum Thema IT-Recruiting. Inhaltsverzeichnis 1. IT-Recruiting Definition2. Grundbegriffe und IT-Berufe3. IT-Berufe im Überblick4. Programmiersprachen im Überblick5. IT-Recruiting erfolgreich umsetzen6. Checkliste: Was ITler wollen7. IT-Recruiting als HR-ChangeSo geht IT-Recruiting – Experten rekrutieren Unternehmen suchen mit Verzweiflung und ITler haben die Auswahl. Bei so vielen Möglichkeiten können Computerspezialisten schon wählerisch sein. Als Recruiter muss man sich an dieser Stelle Gedanken machen, wie man die gefragten IT-Experten rekrutieren kann. Viele haben jedoch bislang noch nicht verstanden, wie man diese technik-affine Berufsgruppe für sich gewinnt und an seine Bildschirme holen kann. IT-Recruiting in der Definition IT-Recruiting ist ein zielgruppenspezifisches Teilgebiet des Recruitings, welches sich auf die Besetzung von Stellen mit IT-Fachkräften konzentriert. Die jeweilige Strategie und Umsetzung muss dabei an die Zielgruppe angepasst werden, was im Falle von ITlern durch die enorme Nachfrage und den starken War for Talents eine besonders hohe Priorität hat. Eine geeignete Strategie sollte beim IT-Recruiting daher folgende Aspekte individuell beachten: Stellenanzeige Kommunikation Candidate Experience Benefits Employer Branding IT-Basics: Grundbegriffe und IT-Berufe Beim IT-Recruiting geht es vor allem um eines – geeignete Such- und Sourcingstrategien für Fachbereiche der IT umzusetzen. Um zunächst in diesem sehr dynamischen Bewerbermarkt zurecht zu kommen, muss man die Zielgruppe genau kennen, um sie zu verstehen. Das IT-Umfeld ist sehr komplex und setzt sich dabei mit vielen Fachbegriffen auseinander. Daher zeigen wir Dir jetzt, welche Begriffe und IT-Berufe man definitiv kennen sollte. Frontend und Backend Frontend und Backend bedeuten wortwörtlich übernommen Vor- und Unterbau. Beides sind unterschiedliche Schichten in einem IT-System, wobei Frontend näher am Benutzer ist (Eingabenähe) und das Backend näher am System (Verarbeitungsnähe). Das Frontend wird dabei im Client dargestellt – der Client ist ein Medium, welches beispielsweise eine Website darstellen kann. Das Backend hingegen hat die Funktion das Frontend erst zu ermöglichen – hier liegen alle Daten, die das Frontend durch eine API abfragt. Frontend – Der Teil des Programms, der sich um die Schnittstelle zum Anwender kümmert. Backend – Der Teil des Programms, der dafür sorgt, dass systemseitig alles funktioniert. Was ist Framework? Ein Framework ist das Programmiergerüst für den Entwickler. Dabei sind Frameworks keine eigenständigen Programme, sondern dienen als automatisierte Unterstützung, um bestimmte Schritte zu vereinfachen. Man kann ein Framework nicht nur für Programme, sondern auch für bestimmte Web-Anwendungen nutzen. Framework im Überblick: Für Programme und Web-Anwendungen Genormte Schnittstellen für weitere Anwendungen Umfassender als ein Protokoll Normativer als eine Struktur Wird nicht immer benötigt Framework Art richtet sich nach Aufgabe und Problem Framework Arten: PHP: Zend Framework, Seagull, .. CMS: Typo3, WordPress, … Python: Django, … Java: Play, Spring, … IT-Berufe und deren Unterschiede Fullstack-Entwickler Der Fullstack-Entwickler beherrscht alle technischen Skills, um eine voll funktionsfähige Web-Anwendung zu entwickeln. Kennt sich mit Server-/Netzwerk-/Hosting-Umgebungen aus Datenmodellierung und Datenbanken Geschäftslogik API-Schicht/Aktionsschicht/MVC CSS, JavaScript und HTML Hinweis: Das Spektrum an Wissen ist oft groß, reicht aber nicht immer in die Tiefe. Frontend-EntwicklerEin Frontend-Entwickler beschäftigt sich mit der Entwicklung und Darstellung einer Webseite hinsichtlich visueller Aspekte, dazu gehört zum Beispiel die Layout-Ästhetik. Benutzeroberflächen-Knowhow (englisch UI für User Interface) Fachkenntnisse in CSS, JavaScript, HTML Programmierung von UI-spezifischem Code Backend-Entwickler Der Backend-Entwickler nimmt die serverseitige Programmierung der Webseite vor. Er kümmert sich um die Funktionen, die Kernlogik und die Ausführung einer Software oder eines Informationssystems und pflegt diese langfristig. Beherrscht höhere Programmiersprachen Sorgt dafür, dass die vom Frontend-System angefragten Daten oder Services bereitgestellt werden Datenbanken und SQL Desktop-EntwicklerDer Desktop-Entwickler pflegt Softwareanwendungen, die auf Desktop-Betriebssystemen, wie OS X, Windows und Linux ausgeführt werden. GUI-Toolkits (Graphic User Interface) WinForms, XAML, Gtk+ und Cocoa Mobil-EntwicklerDer Mobil-Entwickler schreibt Codes für native Anwendungen, die auf Smartphones und Tablets ausgeführt werden. Kennt sich mit mobilen Betriebssystemen aus iOS, Android und Windows Phone Hinweis: In Deutschland gibt es mehr Android-Entwickler, als iOS-EntwicklerDatenbankadministratorDatenbankadministratoren kümmern sich um die Leistung, Integrität und Sicherheit einer Datenbank. Planung und Entwicklung von Datenbanken Behandlung von Problemen Statistiker/Mathematiker - Data Scientist Statistiker/Mathematiker beschäftigen sich mit Analysen von Daten aller Art. Sie kennen sich mit KI, statistischer Analyse und Vorhersagemodellierungen aus. Heute nennt man diesen Beruf auch oft Data Scientist. Analyse von Daten Kenntnisse im Bereich KI und Vorhersagemodellierung Programmier- und Statistikaufgaben Datenbanken R und Python Entwickler für CRM (Client-Relationship-Management) Ein Entwickler für CRM befasst sich mit Systemen, die Nutzerdaten erfassen und ergreift Maßnahmen um die Kundenbetreuung zu optimieren. Sie kümmern sich so um die Kundenzufriedenheit und steigern so auch den Verkauf. Nutzerdaten erfassen und analysieren Kundenzufriedenheit optimieren Salesforce, SAP, Sharepoint und Enterprise Resource Planning (ERP) Entwickler im Bereich DevOps Entwickler im Bereich DevOps kümmern sich um die Bereitstellung und die Administration von Infrastrukturen für Deployment-, Monitoring- und Testautomatisierungen. Sie kennen sich zudem mit Software-Entwicklungs-Lebenszyklen aus. DevOps Entwickler erstellen und warten Skripte, sowie Entwicklungstools und bindet automatisierte Tests in die agile Softwareentwicklung ein. Im Kern besetzt der DevOps Entwickler eine Schnittstellenposition, welche die Verbesserung von operativen Prozessen durch agile Methoden der Softwareentwicklung im Unternehmen einführt und weiterentwickelt. Hohe Programmierkenntnisse Grundverständnis von IT-Security-Konzepten Entwerfen und Erstellen von Skripten und Entwickungstools Ausführung von Administrationstätigkeiten Monitoring Testautomatisierungen Kenntnisse mit Software-Entwicklungs-Lebenszyklen allgemein Embedded-Entwickler Embedded-Entwickler arbeiten vor allem mit Endgeräten und Hardware, die nicht immer zur Kategorie der Computer zählen. Dazu zählen z.B. Mikrocontroller-Chips/DSP Firmware Programmierung, elektronische Schnittstellen, Echtzeitsysteme, Hardware Driver und serielle Datenübertragung. Sie kümmern sich um die Funktionalität elektronischer Geräte und deren Benutzerfreundlichkeit. Hardware-nahes Programmieren Hohe Kenntniss im Bereich Programmiersprachen Kenntnisse Compiler-Funktionen Know-how rund um Betriebssysteme und deren Strukturen Hinweis: Durch die Digitalisierung und dem “Internet of Things” werden diese Entwickler vermehrt gesucht.Entwickler in der Qualitätssicherung Wie der Name verrät, beschäftigen sich diese Entwickler mit der Qualitätssicherung. Entwickler in der Qualitätssicherung testen Produkte und Prozesse mit Hilfe von Tests, Tools und Methoden. Aufrühren automatisierter und manueller Tests Kunden Support Programmiersprachen und deren Anwendung Eine Programmiersprache ist eine künstliche Sprache zur Verständigung zwischen Mensch-Computer und zur Erstellung von Programmen. Dabei werden Algorithmen und Datenstrukturen in der Programmiersprache als Quellcode (Programmcode/-text) erfasst. Dieser Quellcode wird durch spezielle Computeranwendungen (Interpreter/Compiler) aufbereitet, so dass der Prozessor eines Computer das Programm ausführen kann. Compiler Ein Compiler ist ein Programm, das den GANZEN Quellcode eines Programms in eine Maschinen-/Computersprache übersetzt und erst dann das Programm ausführen lässt, wenn eine fehlerfreie, komplette Übersetzung durchgeführt wurde. Interpreter Ein Interpreter übersetzt einzelne Quellcodes und führt diesen sofort aus. Der Vorteil ist, dass eine Fehlersuche per Debugging schneller ist, leider ist dadurch die Ausführung im Vergleich zum Compiler wesentlich langsamer. Editor Der Editor wird zur Erfassung von Quellcodes einer Programmiersprache genutzt. Git Git ist ein Verwaltungsprogramm bzw. ein Versionskontrollsystem. Dieses Programm enthält Behälter/Pakete von Codes (engl. Repositories/Repos), die für bestimmte Projekte genutzt werden. Für eine Gruppe von Software Entwicklern, die an einem Projekt arbeiten, ist Git sehr hilfreich, da alle gleichzeitig an einem Code arbeiten können. Bei Änderungen des Programmcodes sorgt jeder Entwickler der Gruppe dafür, dass der Quelltext den Haupt-Quellcode überschreibt, damit jeder in der Gruppe die aktuellen Datensätze erhält und die Gruppe somit gleichzeitig up to date ist. JavaScript JavaScript ist eine Scriptsprache, die dynamische Webseitengestaltung ermöglicht. Dabei haben JavaScripte Zugriff auf das Browserfenster und das darin angezeigte HTML. Die wichtigste Aufgabe von JavaScript besteht darin, auf die Benutzereingaben innerhalb des HTML-Dokuments zu reagieren. So können Änderungen im HTML vorgenommen werden. Diese Änderungen finden nur im Browser und nicht auf dem Web-Server statt. Durch JavaScripte kann man interaktiv und »dynamisch« gestalten. TypeScript TypeScript (TS) ist eine Erweiterung mit zusätzlichen Features für JavaScript. Die Skriptsprache basiert auf dem Vorschläger ECMAScript-6 und nutzt dabei Vererbung, Klassen, Module sowie anonyme Funktionen. Ein JavaScript-Code funktioniert somit auch in einem TypeScript-Code und umgekehrt. HTML Hyper Text Markup Language ist eine bekannte und einfache textbasierte Auszeichnungssprache, die der Strukturierung digitaler Dokumente, wie Texte mit Hyperlinks, Bildern und anderen Inhalten dient. HTML ist die Grundlage jeder Website des World Wide Web, die Darstellung erfolgt über den Browser. CSS Um Gliederungen und Aufbau einer Website visuell zu verdeutlichen, wird das Werkzeug CSS (Cascading Style Sheets,dt.“Hintereinandergeschaltete Stilvorlage“) genutzt. Das CSS verleiht der HTML-Seite Leben durch Farben und somit ist der gewünschte Aufbau zu erkennen. Effekte werden mit einer zusätzlichen Sprache, wie JavaScript, gestaltet. PHP PHP ist eine Webprogrammierung, die optimal in HTML eingebettet werden kann. Dadurch ist die Open Source-Skriptsprache für den allgemeinen Gebrauch sehr weit verbreitet und oft genutzt. Bei PHP wird der Code auf dem Server ausgeführt, der dort eine direkte HTML-Ausgabe generiert, welche anschließend an den Client gesendet wird. Python Python gehört mittlerweile zu den gängigsten höheren Programmiersprachen und hat dabei den universellen Anspruch, einen übersichtlichen, gut lesbaren und kompakten Programmierstil aktiv zu fördern. Die dynamische Typisierung ist dabei objektorientiert, aspektorientiert und funktional. Darüber hinaus ermöglicht Python ein offenes, gemeinschaftsbasiertes Entwicklungsmodell. C Die Programmiersprache C ist eine imperative Programmiersprache. Das bedeutet, dass man in dieser Sprache Befehle schreibt und diese werden dann von oben nach unten ausgeführt. Man hat auch die Möglichkeit eigene Befehle, sogenannte Funktionen, zu definieren. C wird bei eingebetteten Systemen verwendet (z.B. Schaltkreise, die einen Mikroprozessor besitzen). Sowie bei der Programmierung von Betriebssystemen. C++ C++ ist die Weiterentwicklung von C. Wenn man z.B. in C den Wert einer Variable um eins erhöhen möchte, schreibt man den Namen der Variablen und hängt dann ++ daran. Wie bei C wird das in C++ geschriebene Programm erst kompiliert, um es dann auszuführen. Die Verwendung von C++ liegt in der Spieleentwicklung und eignet sich auch für die Erstellung von Programmen. C# C# (gesprochen „C Sharp“) dient als objektorientierte und typsichere Programmiersprache, die es Entwicklern ermöglicht, robuste und sichere Anwendungen zu erstellen. Programmierer, die bereits mit der C-Skriptfamilie oder JavaScript vertraut sind, finden sich mit C# direkt zurecht. Java Java ist eine objektorientierte Programmiersprache. Sie dient im Rahmen der Java-Technologie zum Formulieren von Programmen. Ein verständlicher Quellcode wird erst durch den Java-Compiler in einen maschinenverständlichen Java-Bytecode übersetzt. Bei Java muss der Code also kompiliert werden, um ausgeführt zu werden. Der Code wird nicht für die Maschine direkt umgewandelt, sondern für ein Programm. Java wird vor allem für Server, Business und Android Applikationen verwendet und hat nichts mit der Programmiersprache JavaScript zu tun. Kotlin Kotlin wird mit Vorliebe für Android-Appentwicklung genutzt. Es kann darüber hinaus aber auch plattformübergreifend und statisch typisiert für andere Programmierungen verwendet werden. Die Programmiersprache ist dabei an Java angelehnt. Swift Swift ist ebenfalls eine Open-Source-Programmiersprache. Sie wurde von Apple entwickelt mit dem Ziel, Apps für Mac, Apple TV, iOS und Apple WatchApps zu erstellen. Es handelt sich um eine objektorientierte Sprache, die Ideen von anderen Programmiersprachen, wie Objective-C, Rust, Haskell, Ruby oder Python aufgreift. Swift bietet dabei Mechanismen, wie Klassen, Closures, Vererbung, Typinferenz und Namensräume, sowie multiple Rückgabewerte und -typen. PL/SQL Procedural Language/Structured Query Language ist eine Programmiersprache der Firma Oracle und für das Arbeiten mit Oracle-Datenbanken ausgerichtet. Mit PL/SQL lassen sich interaktive, benutzerfreundliche Programme schreiben, bei denen Werte an Variablen übergeben werden können, zudem kann PL/SQL auch Laufzeitfehler behandeln. Mit seinen Möglichkeiten gehört PL/SQL mit seiner Leistungsfähigkeit von Programmiersprachen der dritten Generation an. Ruby Ruby ist eine dynamische und freie Programmiersprache mit einfacher Anwendung und produktiver Umsetzung. Die Open-Source-Programmiersprache mit einfachen Syntax kann man einfach lesen und schreiben. Ruby wird meist in Webanwendungen genutzt. In Ruby kann jedes Stück Information eine eigene Eigenschaften und Aktionen besitzen. In der objektorientierten Programmierung werden diese Eigenschaften Instanzvariablen genannt und die Aktionen Methoden. R R ist ein GNU-Projekt und wird von Data Scientists und ähnlichen Programmierern für statistische Berechnungen genutzt. Die Syntax von R orientiert sich dabei an der weitgehend kompatiblen Programmiersprache S. Die Programmiersprache R ist auf vielen Plattformen verfügbar. Go Go (oder auch “Golang”) wurde aus Unzufriedenheit über die bestehenden Sprachen (C++ oder Java im Kontext heutiger Computersysteme) zur Softwareentwicklung entwickelt. Dabei ging es besonders um die Optimierung auf skalierbare Netzwerkdienste, Cluster- und Cloud Computing. Go wurde dabei von Google-Inc-Mitarbeitern geschaffen und ist besonders beliebt im Bereich der Webentwicklung. Es wird aber auch für API/RPC-Services, Web-Services, Bibliotheken, Frameworks, Agents und Daemons verwendet. MATLAB MATLAB wird zur grafischen Aufbereitung und Lösung mathematischer Probleme von Ingenieuren und Wissenschaftlern gern genutzt. MATLAB ist ein ASCII-File und kann mit einem Texteditor einfach erstellt werden. Das Programm eignet sich in der technischen Anwendung, um z.B. Funktionen sichtbar darzustellen. IT-Recruiting erfolgreich umsetzen IT-Recruiting bedeutet oft “Recruiting über den Tellerrand hinaus“, wer sich also im ersten Schritt mit der Arbeitswelt von ITlern beschäftigt hat, ist auf dem besten Weg, seine Zielgruppe auch zu verstehen. Dieses Verständnis wird am Ende entscheidend sein, um IT-Talenten das zu bieten, was sie wirklich wollen. Schon frühzeitig im Recruitingprozess sollte man dabei individuell auf die Bedürfnisse der entsprechenden Berufsgruppe eingehen. Employer Branding im IT-Segment Stellenausschreibungen – Beim ITler bewerben, ohne die Firma zu bewerben Fakten, Mehrwerte und Chancen – diese Punkte sind in einer Stellenausschreibung für IT-Experten besonders wichtig. ITler haben oft die freie Wahl, da sollten die Fakten und Benefits schnell als übersichtliche Aufzählung erscheinen. Eine lange Liste von Aufgaben oder die Selbstdarstellung des Unternehmens kommen an dieser Stelle weniger gut an. Für viele heißt es hier umdenken, wenn man einen IT-Experten rekrutieren möchte. Firmen präsentieren sich oft als Marke, für ITler ist jedoch das Arbeitsklima vor Ort relevanter. Das bedeutet – klare Fakten in kurzer Form bieten und sich beim IT-Spezialisten bewerben. Bewerbungsgespräche – Von Experte zu Experte Für ITler ist es nicht leicht im Bewerbungsprozess und speziell beim ersten Interview nur auf einen Recruiter zu treffen. Im Kern wollen sie sich mit dem IT-Spezialisten vor Ort über die Inhalte der Arbeit, die Technologien und die Projekte austauschen, um die Aufgaben mit ihren Vorstellungen und Fertigkeiten zu vergleichen. Es ist also immer von Vorteil einen speziellen Tech Recruiter oder einen ITler aus dem Team in den Recruitingprozess einzubinden. Empfehlungen und Probetag – Arbeitsklima und Team sind entscheidend Viele ITler legen besonders viel Wert auf eine angenehme Arbeitsatmosphäre und die Menschen im Team. Ein Probetag ist hier immer gut, um sich den Arbeitsalltag im Unternehmen genauer anzusehen. Ideal sind hier Aufgaben, die im Team gelöst werden können und Gespräche mit möglichst vielen Mitarbeitern. IT-Experten entscheiden sich oft auch über Empfehlungen oder Bewertungen in Netzwerken für ein Jobangebot. Hat man bereits einen ITler im Team, kann dieser das Unternehmen an sein Netzwerk aus Kontakten empfehlen oder seine Freunde mit ins Boot holen. Wer IT-Experten rekrutieren möchte, sollte also das Arbeitsklima und die Vorstellung der Teammitglieder in den Fokus setzen. Weiterbildung – Flexibilität und mehr Fachwissen für ITler Neben dem richtigen Arbeitsklima ist die Weiterbildung für IT-Experten von besonderer Bedeutung. Flexible Arbeitsmodelle und der Freiraum für eigene Projekte stellen für ITler attraktive Vorteile dar. Die Möglichkeit, an Seminaren oder Konferenzen teilzunehmen, ist ebenfalls ein Pluspunkt für das Unternehmen. Darüber hinaus müssen aber auch Entwicklungspfade aufgezeigt werden, um diese mit den potenziellen Mitarbeitern aktiv zu gestalten – und das bereits im optimalsten Fall ab dem Recruitingprozess. Checkliste: Was wollen ITler wirklich? Übersichtliche Stellenausschreibungen mit relevanten Inhalten und Benefits Digitaler und schneller Recruitingprozess sowie leicht zu bedienende Recruiting Tools Kompetente Ansprechpartner mit Fachkenntnissen Interviews mit potenziellen Kollegen aus der IT-Abteilung / speziellen Tech-Recruitern gestalten Informationen über die Tools und Projekte bieten Entwicklungspfade aktiv aufgezeigt bekommen – von Beginn an Gutes Arbeitsklima und ein passendes TeamCrossfunktionale Teams, um voneinander zu lernen Flexibilität, um eigene Projekte umzusetzen Raum für Weiterbildung in Form von Seminaren oder KonferenzenIT-Recruiting als HR-Change Das passende Recruiting lässt sich effektiv umsetzen, wenn man an den richtigen Stellschrauben dreht. Unternehmen müssen den Wert ihrer Kandidat:innen kennen und ihre Arbeitswelt verstehen. Der Recruitingprozess sollte dann an die Bedürfnisse der Techies angepasst werden – digital, kompetent und attraktiv. Für gutes IT-Recruiting muss ein Change im eigenen Recruiting stattfinden und vor allem auch Zeit investiert werden, damit HR eine gewisse Nähe zum Fachbereich gewinnt. Nur so können Potenziale von Kandidat:innen erkannt und Entwicklungspfade aufgezeigt werden – von Anfang an. ITler mit Potenzial erkennen < zum Inhaltsverzeichnis < zum HR-Lexikon