Kuidas palgata käivitamiseks esimene Androidi arendaja - AirCTO ekspert Gaurav Navgire

Mobiilitööstus muutub väga kiiresti. Kasutajad veedavad suurema osa ajast mobiiltelefonidel ja kuna Androidi väitel on 65% suurune turuosa, on hädavajalik, et ettevõtetel / alustavatel ettevõtetel oleks oma Androidi rakendused, mis on loetletud Play poes, kasvatades nii hiiglasi kui ka hiiglasi.

Suurimate väljakutsetega, millega asutajad / juhtivtöötajad palkavad, Androidi ametikohtade palkamisel tuleb otsustada, mida järgmiselt Androidi arendajalt oodata ja kuidas hinnata, kas ta sobib selle töö jaoks nii tehnilises kui ka käitumuslikus mõttes. Ootused võivad varieeruda ka sõltuvalt ettevõtte suurusest, tehnilistest virnadest jne ja sellist lahendust ei saa olla nagu "üks reegel sobib kõigile".

Niisiis, kuidas valida?

AirCTO-s oleme läbi viinud sadu Androidi-intervjuusid ja oleme näinud, et tagasi lükatakse sadu kandidaate, kes oma CV põhjal näisid olevat korralikud väljavaated, kui mitte suurepärased. Küsimuse lahendamiseks: keda palgata? Kuidas palgata? otsustasime intervjueerida oma staareksperdi Gaurav Navgire'i, kes on meiega juba rohkem kui 1,5 aastat konsulteerinud ja teinud palju intervjuusid erinevatele ettevõtetele, millest enamik on andnud suuri palka.

Gaurav räägib oma intervjuus, kuidas peaks välja nägema ideaalse Androidi arendaja profiil, kuidas teda intervjueerida ja tema projekte valideerida ning punaseid lippe täielikult vältida.

Alustasite oma tarkvarainsenerina ja siis läksite üle Androidi. Mis teid selle tehnoloogia vastu kõige rohkem huvitas?

Liikuvus oli mul meeles juba sellest ajast, kui isa kinkis mulle Nokia seadme, millel oli Symbian OS. Mind huvitas see, et seadmes töötavaid rakendusi toitis JAVA. Ja kuna ma õppisin Java juba inseneriteaduste erialal, oli aasta 2007–2008, sain ma sellega kiiresti haakida.

Pärast projekteerimist otsustasin hüpata sügavamale JAVA-sse ja mobiilsusesse, mis oli võimalik ainult siis, kui ma õppisin J2ME-d. Nii et hakkasin sellel kursusel käima, aga kuna õnn oleks, määras Infosys mulle ühinemiskuupäeva (mind pandi ülikoolilinnaku). Kursuse lõpetasin kiirustades oma tolleaegse unistuste seltskonnaga liitumiseks. Aasta oli 2008. See oli sama aasta, kui Androidi maailmale tutvustati.

Infosys värskemana ei olnud mul muud valikut kui jätkata SAP BI-s järgmised 2 ja pool aastat tarkvarainsenerina. Selle aja jooksul hakkas Android Indias uudiseid tegema. Kui ma sellest teada sain, võtsin vabaduse seda ise õppida ja koolitasin end kõvasti, et olla liikuvuse valdkonnas valmis ja tööle rakendatav.

Mis mulle Androidi juures meeldis, oli see, et saate CORE JAVA abil luua mobiilirakendusi. Pole vaja õppida J2ME jne. Samuti oli see AVALIK ALLIKAS. Saate luua lihtsa mängu keerukate ettevõtterakenduste jaoks kohandatud ROM-i loomiseks. Õnneks olen töötanud kõigi Androidi ökosüsteemi paradigmade kallal. Minu jaoks oli see teadmiste ja võimaluste kullakaevandus. Ma pole sellest ajast tagasi vaadanud.

Kuidas peaks välja nägema ideaalse Android-seadme portfoolio?

Ideaalne Android-seadme portfell on töötanud mõne põhielemendi (nt tegevused, killud, teenused jne) kallal keerukate funktsioonide, näiteks AIDL-i kasutavate protsessidevahelise suhtluse jaoks.

Tahaksin näha portfelli, kus arendaja on loonud rakendused, mis kasutavad puhtaid Androidi API-sid, mitte aga kasutanud kolmandate osapoolte teeke lihtsalt programmeerimisülesande kiire lahendamise huvides. Kui ta kasutab selliseid raamatukogusid nagu näiteks Picasso, peavad nad oskama selgitada, kuidas tegelikku ülesannet programmiliselt käsitsetakse.

Olete teinud AirCTO jaoks arvukalt intervjuusid. Milline on teie protsess kandidaadi kontrollimiseks?

Keskendun peamiselt põhitõdedele. Ja põhitõdede testimiseks on olemas sammud. Esiteks on objektorienteeritud programmeerimise kontseptsioonid. Teiseks on Core Java. Ja viimaseks on Androidi arhitektuur ja selle ehitusplokid. Kui kandidaat on põhitõdedega läbi saanud, on mõttekas ainult edasijõudnutele küsimustele.

Minu jaoks hõlmavad need mitmekordseid niite, kujundusskeeme jne. Hinnangu vahel kipun esitama vähe pseudokoodeerimisega seotud küsimusi, kui see on telefonikõne. Või täielikud programmilised küsimused, kui tegemist on näost näkku vestlusega. Minu arvates on okei, kui kood pole ettenähtud aja jooksul 100% täielik. Oluline on see, et kui kandidaat suudab koodi põhjalikult selgitada.

Kujundusmustrite ja niidikäsitluse olulisus Androidi arengus?

Programmeerija ei saa endale helistada, kui ta ei tea, mis on kujundusmustrid, andmestruktuurid ja mitmekeermestamine. JAVA on mõeldud mitme keermestamise jaoks ja Android haldab sünkroonset ja asünkroonset tööd ilusti.

Ilmselt tuleb seda rakendada nii, et see töötab ilusti, st ilma mälulekkete, ajakulu jmsta. Kandidaat peab teadma, kuidas andmebaasi eksemplari käsitseda, kasutades mõnda klassikalist kujundusmustrit. Ta peab teadma, kuidas käsitleda lõimede kaudu asünkroonseid sõnumeid. Miski ei pane mind maha, kui kandidaat ütleb, et androidi rakendus töötab vaikimisi kahes lõimes.

Projektide olulisus? Kuidas neid valideerida?

Jätkamise skannimisel keskendutakse kõige uuemale projektile, millega kandidaat on töötanud / töötab. Alustan vestlust kandidaadi selgitustega tema praeguse / viimase projekti ja tema rolli kohta selle väljatöötamisel.

Kui meeskond on suur, siis milliste komponentide eest ta vastutas, kas ta tunneb rakendust lisaks nende enda komponentidele? Kui nad arendasid selle välja ühe käega, annab see mulle palju ruumi minimeeritavate detailide valideerimiseks, näiteks andmebaasi tabeli muudatused, Play poe alfa- ja beetaversioonid jne. See annab mulle selge ettekujutuse, kuidas intervjuud edasi viia.

Olete teinud palju intervjuusid nii alustavatele ettevõtetele kui ka suurematele ettevõtetele. Kuidas lähenemisviis erineb?

Suuremates ettevõtetes on töö roll väga selge. See on selle konkreetse rolli hästi kaardistatud ootus. Tähendab, kui ma pean palgama suurettevõtte jaoks vanema Android-inseneri, siis eeldatakse, et ta kuulub meeskonda, et pakkuda rakenduse osa / väheseid komponente.

Käivitamisel see pole nii. Siin on kontrollitud, kas kandidaat suudab meeskonnaliikmena esineda, koos eakaaslaste parimate tavade seadistamise, koodide ülevaatuse, allika repohalduse ja isegi mõne DevOps-i ülesandega.

Ehkki rollimärk võib olla sama, on ootused startimisel teistsugused. Pealegi peab sama arendaja osalema veebi API kujundamisel ja isegi arendamisel. Nii palju vanema rolli eest. Kuid isegi värskendajad seisavad alustamisel silmitsi raske ajaga kui suured ettevõtted.

Teie lemmik probleemilahendusküsimus kandidaadi kognitiivsete oskuste kontrollimiseks?

Üks minu lemmikküsimusi on seotud andmete püsivusega. On mitmeid viise, kuidas arendaja saab mängida seadmes andmebaasi salvestatud andmetega, jagatud eelistustega, failidega sisemisel / välimisel salvestusruumil. Ma kipun neilt küsima püsivuse käsitlemise traditsioonilisi viise.
Lisaks esitan neile küsimusi tänapäevase Androidi arhitektuuri (nt tuba jne) ümber. See annab mulle õiglase idee, kas kandidaadil on õige suhtumine pidevalt muutuvasse mobiiltehnoloogia maastikku.

Teie soovitus alustavatele asutajatele, kuidas palgata oma esimene Androidi arendaja?

Asutajana on teil palju ideid. Tahad kedagi, kes suudaks need ideed ellu viia. Tahad lahendust oma probleemidele ja ideedele siis ja seal ise või vähemalt suudad optimaalse lahenduse kiiresti leida.

Ja selle tegemine ei sõltu arvamistest. Seega soovite, et teie esimene Androidi arendaja oleks see, kes suudaks teie jaoks välja töötada tagasihoidliku tehnilise lahenduse ja esitada teile enesekindlalt. Siis peab kõik arendajad tegema lahenduse järk-järgult ja pidevalt.

Üks trikk asutajatele on teada mõne standardse probleemi jaoks tehnilisi lahendusi. Näiteks push-teavitusarhitektuur või peaksite arendama hübriidrakenduse või pärisrakenduse, reaalajas rakendused või võrguühenduseta esimesed rakendused? Nende lahenduste ise teadmine aitab teil mõõta esimest Androidi arendajat.

Niisiis, kas otsite palgata vingeid Androidi arendajaid, kes saavad teie meeskonnale tõelist väärtust lisada? Parandage ajakava, et rääkida meie värbamiseksperdiga kohe.