Bildschirm iOS Entwickler Fähigkeiten

7. Februar 2019
iOS: Software-Ingenieur Interview Fragen

Entwickler für mobile Apps sind schwer zu finden, besonders wenn Sie versuchen, eine App für iOS zu erstellen. Es liegt an Ihnen, sich auf die Suche nach den besten iOS-Entwicklern zu machen, um Ihre mobile App zu erstellen. Aber das kann eine entmutigende Aufgabe sein. Die iOS-Entwickler-Fähigkeiten, die ein mobiler Entwickler benötigt, sind nicht dieselben, die Sie von Ihrem gewöhnlichen Java-Entwickler kennen.

Dies verursacht ein Problem für die meisten technischen Personalvermittler. Die meisten von ihnen haben einfach nicht die Erfahrung, um wirklich sagen zu können, ob der iOS-Entwickler, den sie rekrutieren, die richtigen iOS-Entwickler-Fähigkeiten hat oder nicht. Ich meine, Sie wollen nicht mit einer großen Gruppe von Kandidaten enden, die Sie interviewen müssen. Das würde zu stundenlangen technischen Interviews führen, für die Ihr IT-Team im Moment einfach keine Zeit hat.

Was muss ich wissen, um die Fähigkeiten von iOS-Entwicklern zu überprüfen?

Zum Glück haben wir für Sie alle Informationen vorbereitet, die Sie benötigen, um die Fähigkeiten von iOS-Entwicklern effektiv zu prüfen. Am Ende des Leitfadens sollten Sie in der Lage sein, die richtigen Schritte zu gehen und zu sprechen, wenn es um Vorstellungsgespräche und das Screening von iOS-Entwicklern geht. Sie werden in der Lage sein, die richtigen Fragen zu stellen, den Fachjargon zu verstehen und den Lebenslauf eines guten iOS-Entwicklers zu entschlüsseln. Vor allem aber erfahren Sie, welche Tests Sie verwenden können, um Ihre iOS-Kandidaten zu prüfen, damit Sie nur die Besten zu Vorstellungsgesprächen einladen. Aber vor all dem ist es wichtig, die Grundlagen zu lernen.

1. Was ist iOS?

iOS ist das Betriebssystem, das Apple entwickelt hat, um sein allgegenwärtiges iPhone zu betreiben. Apple hat sich nicht damit begnügt, nur den Telefonmarkt zu dominieren, sondern hat sein Betriebssystem auch für eine Reihe anderer Geräte wie das iPad, die Apple Watch und das Apple TV verwendet. Wenn Sie also einen iOS-Entwickler einstellen, wird dieser in iOS programmieren? Nun, nicht genau.

Wenn Sie über eine iOS-Entwickler, sprechen Sie eigentlich über einen Entwickler, der eine oder beide der Sprachen verwendet, die für iOS proprietär sind. Ab 2008 veröffentlichte Apple seine eigene proprietäre Programmiersprache, Objective-C, die für das iOS verwendet wird. Dazu kam vor vier Jahren Swift. Während dies die einzigen beiden Sprachen sind, die für iOS verfügbar sind, können Sie diese Sprachen auch verwenden, um Software für macOS zu entwickeln. Aber auch wenn sie für beide Betriebssysteme verwendet werden können, unterscheiden sie sich in einigen wichtigen Punkten.

  • Objective-C ist reflektiv, klassenbasiert und objektorientiert
  • Swift ist multiparadigmatisch, protokollorientiert, objektorientiert, funktional, imperativ und blockstrukturiert

Swift hat seine allgemeinen Sprachideen stark von Objective-C sowie von JavaScript, Ruby und Python übernommen. Es ist auch viel bequemer als Objective-C, vor allem weil es typsicher ist. Dies hat dazu geführt, dass es einfacher geworden ist, mit dem Erlernen der iOS-Programmierung zu beginnen und die Sicherheit und Stabilität von Anwendungen zu verbessern.

Sie werden feststellen, dass es zwar eine Reihe von Legacy-Systemen gibt, die Objective-C verwenden, aber Swift hat sich als Programmiersprache der Wahl für iOS durchgesetzt. Die Lernkurve für das Schreiben von sicherem, fehlerfreiem Code ist mit Swift ein bisschen steiler als bei Objective-C. Das heißt, sobald Entwickler Swift beherrschen, ist das Schreiben von sicherem, fehlerfreiem Code tatsächlich einfacher als bei Objective-C. Swift verwendet die gleiche Laufzeitumgebung und das gleiche SDK wie Objective-C. Das bedeutet, dass es vollständig abwärtskompatibel mit dem gesamten iOS-Tech-Stack sowie mit neuen, nur in Swift verfügbaren Tools ist.

2. Was ist für einen Recruiter wichtig, um über iOS zu wissen

Sie werden feststellen, dass sich die iOS-Umgebung in regelmäßigen Abständen ändert. In der Regel gibt es einmal im Jahr ein größeres Update, das sowohl die verwendeten Sprachen als auch die Richtung der Entwicklung vorgibt. Sie werden normalerweise auf der WWDC oder der World Wide Developers Conference angekündigt. Dies ist die größte Veranstaltung der Welt für iOS-Entwickler, auf der alle neuen iOS-Technologien in der Keynote angekündigt werden. Jeder Personalverantwortliche, der nach iOS-Entwicklern sucht, sollte darauf achten, was hier angekündigt wird, um auf dem neuesten Stand der iOS-Technologien zu bleiben.

Die zwei wichtigsten Bibliotheken, die alle iOS-Entwickler kennen müssen, sind UIKit und Foundation. Ein iOS-Entwickler kann ohne diese einfach keine Apps bauen, daher ist es zwingend erforderlich, dass der Entwickler diese Tools verwenden kann. Zusätzlich zu den von Apple unterstützten Tools gibt es eine große Anzahl von Open-Source-Bibliotheken und -Frameworks, auf die iOS-Entwickler bei der Erstellung ihrer Software zurückgreifen können.

3. Wie man die Fähigkeiten von iOS-Entwicklern in der Screening-Phase verifiziert

3.1. Technisches Screening der iOS-Entwicklerfähigkeiten auf Basis eines Lebenslaufs

Das wahrscheinlich Wertvollste, was Ihnen der Lebenslauf eines iOS-Entwicklers verraten kann, sind die Arten von Projekten, mit denen sich der Kandidat beschäftigt. Dazu können wesentliche Funktionen wie Bluetooth, lokale Datenbanken und die Arbeit mit Standortdiensten gehören. Natürlich wäre es ein großes Plus, wenn sie eine App entwickelt haben. Jede App kann überprüft werden, indem man in den iOS-App-Store geht.

Das Erstellen von Apps ist nicht die einzige nützliche Erfahrung, nach der Sie im Lebenslauf Ihres Kandidaten suchen sollten. Erfahrung mit anderen Sprachen, insbesondere C++, ist toll zu sehen. Es ist auch gut zu sehen, dass der Kandidat mit einer bestimmten Plattform wie der Apple Watch oder dem Apple TV gearbeitet hat. Aufgrund der Art der Plattform möchten Sie Kenntnisse über Unit-Tests und den App Store-Einreichungsprozess sehen. Schließlich möchten Sie Erfahrung mit der Einrichtung der kontinuierlichen Integration sehen.

Während es ziemlich einfach ist, einen Lebenslauf zu prüfen, kann das Vokabular, das ein Recruiter benötigt, um zu verstehen, was im Lebenslauf eines iOS-Entwicklers steht, manchmal verwirrend sein. Um Ihnen zu helfen, haben wir ein Glossar erstellt, das Sie verwenden können, um die wichtigsten iOS-Entwicklerfähigkeiten zu verstehen.

3.2 Glossar der iOS-Entwickler-Fähigkeiten für technische Recruiter

Sprachen Schnell, zielstrebig-C
Allgemein GCD, Operational Queue, Push-Benachrichtigungen, Awareness in Code Signing,
Datenbank Sqlite, CoreData, Realm
UI UIKit, Kernanimation, Autolayout, Größenklassen, SnapKit
Spezifische Frameworks (alle arbeiten sowohl in Objective-C als auch in Swift) Core Location, MapKit, AVFoundation, StoreKit, Erweiterungen, AddressBook, EventKit, CAllKit, SiriKit, Core Bluetooth

3.3 Weitere Informationen über iOS, die für einen Recruiter nützlich wären

Zu jeder neuen Version von iOS wurden neue Funktionen hinzugefügt. Und mit dem Hinzufügen von Funktionen werden auch neue Frameworks entwickelt, die mit ihnen interagieren (SiriKit, CallKit, WatchKit und MapKit).

Darüber hinaus sind die verschiedenen Versionen des Betriebssystems im Grunde genommen gleich, es kommen lediglich neue Erweiterungen hinzu.

Die häufigsten iOS-Technologienamen, die austauschbar verwendet werden

CoreData und SQLite können austauschbar verwendet werden

Wie nah die jeweiligen Versionen der iOS-Technologien beieinander liegen:

Alle verfügbaren Versionen von Swift sind einander ähnlich. Natürlich hat die Sprache mehrere Iterationen von 1.0 bis 4.2 durchlaufen. Und jede dieser Versionen hat ihre eigenen spezifischen Änderungen eingeführt. Wenn jemand jedoch Erfahrung mit drei hat, sollte er keine Probleme mit der neuesten Version haben.

4. iOS-Entwickler-Fähigkeiten: Interview-Fragen

Das Vorstellungsgespräch ist ein wichtiger Zeitpunkt, um die Art der Probleme, mit denen Ihr Kandidat konfrontiert war, und seine Herangehensweise an die Problemlösung kennenzulernen. Es kann ein technisches Screening nicht ersetzen, aber es kann Ihre Entscheidung beeinflussen.

4.1 Fragen zur Plattformerfahrung für einen iOS-Entwickler

Q1: Wählen Sie einige Technologien aus dem Lebenslauf des Kandidaten aus und bitten Sie den Kandidaten zu erklären, was sie sind und wie sie verwendet werden.

Warum Sie Q1 fragen sollten: Nur um zu überprüfen, ob sie die genannten Technologien kennen.

Q2: Bitten Sie den Kandidaten, das interessanteste Projekt zu beschreiben, an dem er teilgenommen hat, und welche Rolle er in diesem Projekt gespielt hat.

Warum Sie Q2 fragen sollten: Überprüfen, wie komplex und vielfältig die Projekte waren, die der Entwickler erlebt hat und welche Rolle er hatte (Entwickler, leitender Entwickler, Architekt).

4.2 Die Fähigkeiten eines iOS-Entwicklers: Wissen und Meinungen

Q3: Bitten Sie den Kandidaten, Swift und Objective-C zu vergleichen.

Warum Sie Q3 fragen sollten: Es gibt ein Verständnis dafür, wie erfahren der Entwickler ist und ob er mit Objective-C gearbeitet hat oder nicht. In den meisten Fällen ist es nicht genug, Swift zu kennen. Selbst auf der Junior-Ebene muss ein iOS-Kandidat in der Lage sein, sowohl Objective-C als auch Swift zu verstehen und zu verwenden.

Q4: Welche iOS-Technologien sind heute weit verbreitet, und welche könnten in der Zukunft populär werden?

Warum Sie Q4 fragen sollten: Es sagt Ihnen, ob der Kandidat die Fähigkeit hat, Trends des IT-Marktes und der Branche zu analysieren und vorherzusagen, basierend auf den Fähigkeiten eines iOS-Entwicklers.

Q5: Wie können Sie Memory Leaks vermeiden?

Warum Sie Q5 fragen sollten: Sie werden sehen, ob sich der Kandidat möglicher Probleme bei der Verwendung starker/schwacher Referenzen bewusst ist. Denken Sie daran, dass Blöcke und Closures eine starke Verbindung zu einem Objekt aufrechterhalten können.

4.3 Verhaltensfragen für einen iOS-Entwickler

Q6: Haben Sie Erfahrungen mit der Betreuung und Beratung von Swift-Mitarbeitern gemacht?

Warum Sie Q6 fragen sollten: Prüfen Sie, ob der Entwickler in der Lage ist, ein guter Mentor für Neueinsteiger zu sein.

Q7: Fragen Sie, auf welche Lösungen und Projekte der Kandidat besonders stolz ist?

Warum Sie Q7 fragen sollten: So können Sie den Komplexitätsgrad von Aufgaben in früheren Projekten überprüfen

5. Technisches Screening von iOS-Fähigkeiten mit einer Online-Codierungstest

Lebenslauf-Screens und Interviews können hilfreich sein, um iOS-Entwickler einzustellen, aber sie können Ihnen nicht wirklich sagen, ob Ihr Kandidat die richtigen iOS-Fähigkeiten hat. Was Sie wirklich brauchen, ist etwas tatsächliche Softwareentwicklung. Dies kann ein Problem sein, wenn es falsch gemacht wird, weil Kandidaten nur eine begrenzte Menge an Zeit und Geduld haben, um ein Coding-Projekt zu machen. Ein Online-Codierungstest kann eine gute Lösung sein. Aber woher wissen Sie, welchen Sie wählen sollen? Der richtige sollte ein paar Schlüsselfunktionen haben.

  1. Es geht um die Arten von Aufgaben, die der Kandidat tatsächlich ausführen wird, sobald er eingestellt ist (und um echte iOS-Entwicklerfähigkeiten, die er dafür benötigt)
  2. Es sollte sowohl die Technologie als auch den Tech-Stack abdecken, in dem sie arbeiten werden
  3. Es sollte so nah wie möglich am natürlichen Entwicklungsprozess wie möglich - Das bedeutet:
    1. Der Kandidat sollte Zugang zu seinem eigenen IDE haben
    2. Sie sollten in der Lage sein, alle Ressourcen zu nutzen, die sie normalerweise bei der Arbeit verwenden würden, einschließlich Bibliotheken, Frameworks, Stack Overflow und sogar Google
  4. Es sollte Programmierkenntnisse, aber auch Geschäftslogik testen
  5. Es sollte die Art der Codierungsentscheidungen beleuchten, die der Kandidat trifft
  6. Es sollte leicht von überall mitgenommen werden können, um den Kandidaten nicht unnötig zu belästigen

Leider werden die meisten Online-Codierungstests diesen Anforderungen nicht gerecht. Algorithmustests können Ihnen sagen, ob der Kandidat programmieren kann, aber sie können Ihnen nicht sagen, wie gut der Kandidat die Umgebung kennt, die Entscheidungen, die er trifft, und die Geschäftslogik, die er verwendet. Im Grunde genommen werden sie den Fähigkeiten eines iOS-Entwicklers nicht gerecht. Sie sind auch eine ziemlich unnatürliche Art, Code zu schreiben. Das Ergebnis ist, dass sie viele Entwickler abschrecken, die das Gefühl haben, dass sie ihre Fähigkeiten auf diese Weise nicht richtig darstellen können. Diese Entwickler riskieren, aus Ihrer Rekrutierungspipeline herauszufallen.

Die Arbeitsproben-Tests auf DevSkiller lösen diese Probleme. Auf DevSkiller werden Ihre iOS-Entwickler aufgefordert, eine echte Funktion oder eine kleine Anwendung für iOS zu erstellen. Die Tests können von überall auf der Welt durchgeführt werden und stellen eine natürliche Programmierumgebung dar. Sie können sich die verschiedenen iOS-Tests sowohl in Objective-C als auch in Swift von unserem Kodierungstest-Katalog.

6. DevSkiller gebrauchsfertige Online-Beurteilung der iOS-Entwicklerfähigkeiten

Schnell
MIDDLE
Geprüfte Fähigkeiten
Dauer
38 Minuten max.
Auswertung
Automatisch
Test-Übersicht

Auswahlfragen

Beurteilung des Wissens über Schnell, iOS

Programmieraufgabe - Stufe: Medium:

iOS | Swift | Notepad App - Komplette einfache Notizen-Applikation mit bereitgestelltem NotesService zum Speichern und Lesen von Notizen.

Schnell
SENIOR
Geprüfte Fähigkeiten
Dauer
77 Minuten max.
Auswertung
Automatisch
Test-Übersicht

Auswahlfragen

Beurteilung des Wissens über Schnell, iOS

Programmieraufgabe - Stufe: Hart

iOS | Swift | NSA Cipher Tool - Lösen Sie die 3 kryptografischen Rätsel, um die Traumposition als Programmierer bei der NSA einzunehmen.

Schnell
MIDDLE
Geprüfte Fähigkeiten
Dauer
48 Minuten max.
Auswertung
Handbuch
Test-Übersicht

Auswahlfragen

Beurteilung des Wissens über Schnell, iOS

Code-Lücken

Beurteilung des Wissens über Schnell, Unicode, iOS

Code-Review-Aufgabe - Stufe: Medium:

iOS | Swift | BookDataAnalyst - Bitte führen Sie eine Codeüberprüfung dieses Codes durch. Achten Sie dabei auf die Qualität und die Einhaltung der Best Practices.

Schnell
MIDDLE
Geprüfte Fähigkeiten
Dauer
126 Minuten max.
Auswertung
Automatisch
Test-Übersicht

Auswahlfragen

Beurteilung des Wissens über iOS, Schnell

Programmieraufgabe - Stufe: Medium:

iOS | Swift | Book Keeper App - Initialisieren Sie den Kerndatenstapel, einschließlich Speichern und Abrufen generischer Elemente, und implementieren Sie zusätzliche Funktionalität, indem Sie die fehlenden Methoden ausfüllen und die UI-Funktionalität reparieren.

Schnell
SENIOR
Geprüfte Fähigkeiten
Dauer
165 Minuten max.
Auswertung
Automatisch
Test-Übersicht

Auswahlfragen

Beurteilung des Wissens über Schnell, iOS

Programmieraufgabe - Stufe: Hart

iOS | Swift | Book Keeper App - Initialisieren Sie den Kerndatenstapel so, dass er gleichzeitig arbeitet, einschließlich des Speicherns in einem Hintergrund-Thread und des Abrufs allgemeiner Artikel im Hauptthread; implementieren Sie zusätzliche Funktionalität, indem Sie die fehlenden Methoden ergänzen und die UI-Funktionalität korrigieren, so dass ein Benutzer in der Lage wäre, Firmenartikel und Rechnungen hinzuzufügen oder zu bearbeiten; implementieren Sie die Suchfunktionalität in beiden Ansichten. Schließlich muss er die Eingabe im Textfeld entsprechend einschränken, um die Tests zu bestehen.

Schnell
JUNIOR
Geprüfte Fähigkeiten
Dauer
55 Minuten max.
Auswertung
Automatisch
Test-Übersicht

Auswahlfragen

Beurteilung des Wissens über iOS, Schnell

Programmieraufgabe - Stufe: Einfach

IOS | Swift | Weather App - Erstellen Sie eine App, die von einem Wetterdienst-Backend empfangene Wetterdaten analysiert. Der Kandidat muss die bereitgestellte JSON-Datei lesen, ein Datenmodell erstellen, es parsen und die fehlenden Funktionen ausfüllen, um die erforderlichen Wetterbedingungen aus dem Modell abzurufen.

Schnell
MIDDLE
Geprüfte Fähigkeiten
Dauer
80 Minuten max.
Auswertung
Automatisch
Test-Übersicht

Auswahlfragen

Beurteilung des Wissens über iOS, Schnell

Programmieraufgabe - Stufe: Medium:

iOS | Swift | CoffeHouse Analyst App - Implementieren Sie die Funktionalität der Analyse der gegebenen Daten für das Management, indem Sie die fehlenden Funktionen ausfüllen.

Beitrag teilen

Es ist mehr als nur ein Newsletter

Erhalten Sie nützliche Einblicke direkt in Ihren Posteingang und erfahren Sie mehr über die Einstellung von Technikern.

Kodierfähigkeiten nahtlos verifizieren & entwickeln.

Sehen Sie DevSkiller-Produkte in Aktion.

Sicherheitszertifizierungen & Konformität. Wir sorgen dafür, dass Ihre Daten sicher und geschützt sind.