Başlanğıc üçün ilk Android geliştiricisini necə işə götürmək olar - AirCTO mütəxəssisi Gaurav Navgire

Mobil rabitə sənayesi sürətlə dəyişir. İstifadəçilər vaxtlarının böyük bir hissəsini telefonları ilə keçirirlər. Android-in% 65 bazar payına çatması ilə şirkətlərin / startupların Play Store-da öz Android tətbiqetmələrini təklif etmələri və həm nəhənglərin, həm də nəhənglərin böyüməsi vacibdir.

Android vəzifələrini işə salmaqda təsisçilər / İK menecerləri üçün ən böyük problem, növbəti Android inkişaf etdiricisindən nə gözləməyinizə və texniki və keçirici işə uyğun olub olmadığını necə qiymətləndirəcəyinizə qərar verməkdir. Gözləntilər şirkətin ölçüsünə, texniki avadanlıqlarına və s. Asılı olaraq dəyişə bilər və “Bir qayda hamıya uyğundur” həllindən daha yaxşı bir şey yoxdur.

Bəs necə seçirsən

AirCTO-da yüzlərlə Android müsahibəsi apardıq və öz rəylərinə əsasən layiqli, heç olmasa böyük bir perspektiv kimi görünən yüzlərlə namizəddən imtina etdik. Sualı həll etmək üçün kimləri işə götürmək lazımdır? Necə işə götürə bilərsiniz? 1.5 ildən çoxdur ki, bizə məsləhət verən və əksəriyyəti böyük muzdla nəticələnən müxtəlif şirkətlər üçün çoxsaylı reportajlar aparan ulduz mütəxəssisimiz Gaurav Navgire ilə müsahibə aparmaq qərarına gəldik.

Müsahibəsində Gaurav, ideal bir Android inkişaf etdiricisinin profilinin necə olması, ondan necə reportaj almaq və layihələrini təsdiqləmək və qırmızı bayraqlardan tamamilə qaçmaq barədə danışır.

Karyeranıza bir proqram geliştiricisi olaraq başlamısınız və sonra Android-ə keçdiniz. Bu texnologiya ilə sizi ən çox nə maraqlandırırdı?

Hərəkətlilik, atam mənə Symbian əməliyyat sisteminə sahib bir Nokia cihaz hədiyyə etdikdən bəri düşünürdü. Məni maraqlandıran şey cihazda işləyən tətbiqetmələrin JAVA tərəfindən idarə olunması idi. Artıq Java mühəndisliyi ixtisasında oxuduğum üçün 2007-2008-ci il idi və qısa müddətdə alışdım.

Mühəndislikdən sonra JAVA və hərəkətliliyi daha dərindən araşdırmağa qərar verdim, bu yalnız J2ME öyrəndiyim zaman mümkün oldu. Beləliklə bir kurs keçirməyə başladım, amma qismət olduğu kimi Infosys mənə qoşulmaq üçün bir tarix verdi (məni şəhərcikdə yerləşdirdilər). O vaxt xəyal qurduğum şirkətə qoşulmaq üçün tələsik kursumu bitirdim. İl 2008 idi. Elə Androidin dünyaya tanıdılması ilə eyni il idi.

Infosys-ə yeni gələn kimi növbəti iki il yarımda SAP BI-də proqram mühəndisi kimi qalmaqdan başqa çarəm yox idi. Bu müddət ərzində Android Hindistanda xəbər verməyə başladı. Bunu öyrəndikdə azadlığı özüm öyrənmək üçün götürdüm və mobillik sənayesində məqsədim üçün hazır və uyğun olmaq üçün özümü çox öyrətdim.

Android haqqında xoşuma gələn şey mobil tətbiqetmələr yaratmaq üçün CORE JAVA-dan istifadə etməyinizdir. J2ME və s. Öyrənməyə ehtiyac yoxdur. Həm də AÇIQ MƏNBƏ idi. Xüsusi bir ROM hazırlamaq üçün kompleks müəssisə tətbiqetmələri üçün sadə bir oyun yarada bilərsiniz. Xoşbəxtlikdən, Android ekosisteminin bütün paradiqmaları üzərində işləmişəm. Mənim üçün bu bir məlumat və fürsət qızıl mədəni idi. O vaxtdan bəri geri baxmadım.

İdeal bir Android geliştiricisinin portfeli necə olmalıdır?

Bir Android geliştiricisi üçün ideal portfel, AIDL istifadə edərək proseslərarası rabitə kimi kompleks funksiyaları təmin etmək üçün Fəaliyyətlər, Parçalar, Xidmətlər və s. Kimi bəzi əsas bloklar üzərində işləməkdir.

Geliştiricinin təmiz Android API ilə tətbiqetmələr yaratdığı və kodlaşdırma problemini tez bir zamanda həll etmək üçün üçüncü tərəf kitabxanalarından istifadə etmədiyi bir portfel görmək istərdim. Picasso kimi kitabxanalardan istifadə edirsə, həqiqi tapşırıqların proqramla necə həll edildiyini izah edə bilməlidirlər.

AirCTO üçün çoxsaylı reportajlar aparmısınız. Namizədin yoxlanışını necə aparırsınız?

Əsasən əsaslara diqqət yetirirəm. Və əsasları yoxlamaq üçün addımlar var. Əvvəlcə obyekt yönümlü proqramlaşdırma konsepsiyalarıdır. İkincisi, əsas Java. Və nəhayət Android arxitekturası və onun blokları. Namizəd əsaslarla başa çatdıqda, yalnız qabaqcıl sualların mənası var.

Mənim üçün bu çox işləmə, dizayn nümunələri və s. Və ya üz-üzə görüşməkdirsə, tam proqramlaşdırma sualları. Kod ayrılan vaxtda 100% tamam olmasa, düşünürəm. Əhəmiyyətli olan namizədin kodunu hərtərəfli izah edə bilməsidir.

Android inkişafında dizayn nümunələrinin və mövzu işlənməsinin əhəmiyyəti?

Bir proqramçı, dizayn nümunələrinin, məlumat strukturlarının və çox işlənmənin nə olduğunu bilmirsə, özünə zəng edə bilməz. JAVA çox işləmə üçün nəzərdə tutulmuşdur və Android sinxron və asinxron işdə çox gözəl bir iş görür.

Aydındır ki, düzgün işləyəcək şəkildə həyata keçirilməlidir, yəni. H. Yaddaş sızması olmadan, vaxt itirilmiş və s. Namizəd bəzi klassik dizayn nümunələrindən istifadə edərək verilənlər bazası nümunəsini necə idarə edəcəyini bilməlidir. Asenkron mesajların mövzuları arasında necə idarə olunacağını bilməlidir. Namizəd bir Android tətbiqetməsinin standart olaraq 2 mövzuda işlədiyini söyləyəndə məni heç nə narahat etmir.

Layihələrin əhəmiyyəti? Bunu necə təsdiqləyirəm?

Bir tərcümeyi-halını taradığımda diqqət mərkəzimdəki namizədin üzərində işlədiyi ən son layihədir. Müsahibəyə ərizəçinin hazırkı / son layihəsini və onun inkişafındakı rolunu izah etməsi ilə başlayıram.

Komanda böyükdürsə, hansı komponentlərdən məsul idi, tətbiqini öz komponentlərindən başqa bilirmi? Bunu özləri inkişaf etdirsələr, verilənlər bazası cədvəllərindəki dəyişikliklər, oyun mağazasının alfa və beta versiyaları və s. Kimi ən kiçik detalları təsdiqləmək üçün çox yerim var. Bu mənə müsahibəni necə irəli aparacağım barədə dəqiq bir fikir verir.

Yeni başlayanlar və daha böyük şirkətlər üçün çoxsaylı reportajlar aparmısınız. Hər bir halda yanaşma necə fərqlənir?

Daha böyük şirkətlərdə işin rolu çox aydındır. Bu, xüsusi rolun yaxşı müəyyən edilmiş bir gözləntisidir. Yəni böyük bir şirkət üçün Baş Android Mühəndisini işə götürməyim lazım olsa, tətbiqetmənin bəzi / bəzi komponentlərini təmin edəcək bir qrupun üzvü olacağı gözlənilir.

Bir başlanğıcda belə deyil. Burada namizədin bir komanda üzvü olaraq təqdim edə biləcəyini və həmyaşıdları üçün ən yaxşı təcrübələri, kod icmallarını, mənbə repo rəhbərliyini və hətta bəzi DevOps tapşırıqlarını qura biləcəyini yoxlayırıq.

Rol adları eyni ola bilsə də, başlanğıcda gözləntilər fərqlidir. Əlavə olaraq, eyni geliştiricinin veb API dizaynının və hətta inkişafın bir hissəsi olması lazımdır. Aparıcı rol üçün çox. Ancaq yeni gələnlər üçün də startuplarla böyük şirkətlərdən daha çətindir.

Namizədin idrak bacarıqlarını yoxlamaq üçün ən çox problem həll edən sualınız?

Ən çox sevdiyim suallardan biri də məlumatların davamlılığıdır. Bir geliştiricinin verilənlər bazasında cihazda saxlanılan daxili / xarici yaddaşdakı məlumatlar, paylaşılan parametrlər və fayllarla oynaya biləcəyi bir neçə yol var. Mən onlardan əzmkarlıqla davranmağın ənənəvi metodları barədə soruşmağa meyilliyəm. Onlara otaq və s. Kimi müasir Android arxitekturası ilə bağlı suallar verirəm. Bu, namizədin daim dəyişən mobil texnologiya mənzərələrinə düzgün münasibət bəsləməsi barədə yaxşı bir fikir verir.

İlk qurucularını ilk Android inkişaf etdiricilərini necə işə götürə biləcəyinə dair təklifiniz?

Bir qurucu olaraq bir çox fikir var. Bu fikirləri gerçəyə çevirə bilən birini istəyirsən. Sonra orada problemlərinizə və fikirlərinizə özünüz bir həll istəyirsiniz və ya ən azından ən qısa müddətdə optimal bir həll yolu tapmaq imkanına sahibsiniz.

Və bu, təxminlərdən asılı deyil. Beləliklə, sizin üçün təvazökar bir texniki həll təklif edən və inamla sizə təqdim edə bilən ilk Android inkişaf etdiricinizi istəyirsiniz. Sonra geliştirici həlli yalnız tədricən və davamlı şəkildə yerləşdirməlidir.

Təsisçilər üçün bir fənd, bəzi standart problemlərin bəzi texniki həll yollarını bilməkdir. Məsələn push bildiriş arxitekturası və ya hibrid bir tətbiq və ya yerli tətbiq, real vaxt tətbiqləri və ya oflayn ilk tətbiqlər inkişaf etdirməlisiniz? Bu həlləri özünüz bilmək, ilk Android geliştiricisi haqqında daha yaxşı bir fikir əldə etməyinizə kömək edəcəkdir.

Komandanıza real dəyər əlavə edə biləcək möhtəşəm Android inkişaf etdiriciləri axtarırsınız? İndi işə qəbul üzrə mütəxəssisimizlə danışmaq üçün bir cədvəl təşkil edin.