Hoe kan ik Android-ontwikkelaars inhuren: Interviewtips en voorbeeldvragen
Android is momenteel het dominante mobiele platform, met een marktaandeel van 87,5% en ongeveer 1,4 miljard gebruikers. Geen wonder dat de vraag naar Android-ontwikkelaars enorm is, waardoor het een echte uitdaging is om het beste talent te vinden.
Android is een uitgebreid en groeiend platform, gebaseerd op Linux met gebruik van Java en XML technieken. Een Android developer moet veel vaardigheden beheersen, zoals user interface, graphics, databases, locatie-diensten, media-spelers, debugging tools en nog veel meer.
Zulke complexe functionaliteiten lijken misschien moeilijk te ontdekken tijdens één enkel interview. Dus waar moet u beginnen als u Android-ontwikkelaars wil interviewen en inhuren?
We hebben gesproken met Volodymyr Logachov, een Android-ontwikkelaar die voor één van onze klanten werkt, om een lijst samen te stellen met Android en Java vragen en taken voor zowel junior als senior ontwikkelaars. Dit helpt u de kennis van de Android kandidaat te beoordelen.
Begin met Java
Aangezien Java de basis vormt waarop Android is gebouwd, is het nuttig om uw technische interview te beginnen door de basiskennis van de kandidaat van deze programmeertaal te testen. Kijk daarna pas naar de specificaties van Android-development.
Hier zijn een aantal voorbeeldvragen en -taken die iedereen die beweert dat hij een Android-ontwikkelaar is, moet kunnen oplossen:
- Hoeveel primitive data types zijn er in Java?
- Schrijf een ‘if... else’ statement.
- Welke Java-collecties ken je?
- Wat zijn de verschillen tussen lijsten, maps en hashes?
- Welke methoden heeft de basis object class en waar worden ze voor gebruikt?
- Welke ervaring heb je met multithreading?
Als de kandidaat niet weet hoeveel primitive data types er in Java zijn of geen ‘if... else’ statement kan schrijven, dan kunt u nu al afscheid van hen nemen. Ze hebben dan niet eens genoeg kennis voor een Junior functie.
Ga verder met Android Development
Zodra u gecheckt hebt dat dat de basiskennis van Java voldoende is, is het tijd om over te stappen naar Android-specifieke onderwerpen.
Een van de meest fundamentele vragen is: "Wat is Context, en waar wordt het voor gebruikt?" Zodra dit beantwoord is, vraagt u de kandidaat om te praten over activiteiten, de levenscyclus van de activiteit, fragmenten en services.
Daarna vraagt u hen waar applicatiegegevens zijn opgeslagen en wanneer ze databases noemen als mogelijke opslagopties, gaat u verder met SQLite en de cursor.
Vergeet niet om vragen over thread types (UI en background) op te nemen. U kunt bijvoorbeeld de kandidaat vragen: 'Hoe zou u een resource-intensief proces starten?' Een goed antwoord zou als volgt luiden: 'Ik zou een aparte thread maken, deze taak op de achtergrond uitvoeren en vervolgens het resultaat toepassen op de hoofddraad. "
U kunt de Android-ontwikkelaar ook vragen of het mogelijk is een HTTP-verzoek op de hoofddraad te maken. Als ze ‘ja’ zeggen, hebben ze waarschijnlijk geen ervaring met dit onderwerp.
Android-ontwikkelaar interviewvragen voor ervaren kandidaten
Als u op zoek bent naar een Android-ontwikkelaar met meer geavanceerde vaardigheden, zorg er dan voor dat ze weten hoe ze een aangepaste weergave kunnen creëren en sla de vragen over architectuur niet over: MVP, MVC en MVVM. Niet iedereen zal ervaring hebben met de laatste, maar het is nog steeds een van de basis architectuurpatronen, dus een sterke Android-developer zou het op zijn minst moeten kennen. U kunt hen ook vragen over het Dependency Injection patroon.
Als u van plan bent om uw code te testen, is het een goed idee om uit te vinden of de kandidaat die u interviewt ervaring heeft met het schrijven van tests. Dit is geen absolute vereiste, maar het is zeker een goede vaardigheid om te hebben.
Kwaliteit van code beoordelen
Om de Android-ontwikkelvaardigheden van de kandidaat in actie te zien, kijkt u naar hun GitHub-bijdragen, geeft u ze een testtaak om te voltooien, of beide.
De meest voorkomende testtaken volgen het volgende patroon: u neemt een backend-code, waaruit u meerdere aanvragen moet verzenden, reacties wilt verwerken en verwerkte gegevens uiteindelijk moet weergeven. U neemt waarschijnlijk ook aanbevelingen op over welke database of framework moeten worden gebruikt, en dat eenvoudige schermmockups toegevoegd moeten worden.
Een ander standaard taakvoorbeeld zou zijn om de kandidaat te vragen om een lijst te downloaden, te tonen, te filteren en vervolgens de beschrijving op een apart scherm weer te geven.
Als u van plan bent om met specifieke libraries, frameworks of databases te werken, vraag dan de kandidaat om ze tijdens het interview te gebruiken. U kunt echter ook een andere benadering aannemen en het gebruik van de bibliotheken van de kandidaat beperken. In plaats daarvan vraagt u hen om alle code helemaal opnieuw te schrijven. Hiermee kunt u controleren of ze zelfstandig problemen kunnen oplossen en niet alleen afhankelijk zijn van voorgekauwde bronnen.
Onthoud: de meest effectieve testtaken zijn altijd gebaseerd op uw specifieke project, dus zorg ervoor dat u uw evaluatie daarop toegespitst is.
Afronding
We hopen dat u onze voorbeelden van Android Mobile Developer-interviewvragen nuttig hebt gevonden en dat ze u helpen, de volgende keer dat u Android app-ontwikkelaars inhuurt. Het belangrijkste om te begrijpen is echter wat voor ervaring u nodig heeft voor het project of de functie.
Als uw applicatie REST, Google Maps, Google Places of een andere API zal gebruiken, voegt u hier zeker een aantal vragen over toe. En als een kandidaat niet met een bepaalde technologie heeft gewerkt, vraag hen om in te schatten hoeveel tijd het ze zal kosten om het onder de knie te krijgen. Zo ontdekt u ook hoe ze hun leerpotentieel beoordelen.
Onze laatste aanbeveling is om kandidaten te vermijden die, in plaats van een simpel antwoord op een specifieke technische vraag te geven, u vertellen dat het niet nodig is om alles te onthouden als Google alles met één klik kan vinden.
Hoewel dit een perfecte manier is om specifieke problemen op te lossen, wordt het volledig onaanvaardbaar als het gaat om alledaagse zaken die zich voordoen in de meeste toepassingen. Een goede Android-ontwikkelaar zal zijn tekort aan kennis erkennen en hun bereidheid laten zien om hun kennis op korte termijn te vergroten.