Егер сіз iOS әзірлеушісі болғыңыз келсе, не күтуге болады

Егер сіз iOS әзірлеушісі болғыңыз келсе, не күтуге болады

IOS сыртынан қарағанда, даму жабық клуб сияқты көрінуі мүмкін. Жұмыс істеу үшін сізге міндетті түрде Apple компьютері қажет, экожүйені бір компания мұқият бақылайды. Ішінен кейде қарама-қайшылықтарды ести аласыз - кейбіреулер Objective-C тілін ескі және ебедейсіз дейді, ал басқалары жаңа Swift тілі тым өрескел дейді.

Дегенмен, әзірлеушілер осы салаға кіріп, бір рет қанағаттанады.

Бұл жолы бізге Марат Нұрғалиев пен Борис Павлов өз тәжірибелері – мамандықты қалай меңгергендері, алғашқы сұхбаттарынан қалай өткендері, неліктен бас тартқандары туралы айтып берді. Ал сарапшы ретінде декан Андрей Антропов болды iOS әзірлеу факультеті GeekBrains сайтында.

2016 жылы Астрахан облысынан Марат Нұрғалиев жергілікті телекомпанияға мобильді әзірлеуші ​​болып жұмысқа орналасуға келген. Бұл оның алғашқы сұхбаты болды. Ол армиядан жаңа ғана оралды, тәжірибесіз және тәжірибесіз, тіпті проблемасы бар теорияны да ұмытып кетті. Мараттың ұялы телефонды дамытудағы жалғыз тәжірибесі оның Android қолданбалары арқылы ақпараттың ағып кетуін талдау туралы диссертациясы болды. Сұхбатта одан оқуы, ООП және басқа теориялар туралы сұрады, бірақ Марат біліміндегі олқылықтарды жасыра алмады.

Дегенмен, оған бас тартылмады, бірақ практикалық тапсырма берілді - екі апта ішінде API көмегімен жаңалықтар тізімін көрсетуді жүзеге асыру. iOS және Android үшін де. «Егер менде Android жүйесінде қандай да бір тәжірибе болса, iOS нұсқасын жасайтын құрал да болмады. iOS қолданбасын әзірлеу ортасы тек Mac жүйесінде қол жетімді. Бірақ екі аптадан кейін мен Android жүйесінде не істей алатынымды көрсеттім. iOS арқылы мен оны тез арада анықтауға тура келді. Ақыры олар мені алып кетті. Содан Астраханьда тұрдым. Жиырмадан жоғары жалақысы бар кез келген IT жұмысы маған сәйкес келеді ».

iOS әзірлеушілері кімдер?

Мобильді әзірлеушілер кез келген портативті құрылғыға қосымшалар жасайды. Смартфондар, планшеттер, смарт сағаттар және Android немесе iOS жүйесін қолдайтын барлық басқа платформалар. Мобильді дамудың іргелі принциптері кәдімгі дамудан еш айырмашылығы жоқ, бірақ нақты құралдардың арқасында ол жеке бағытқа бөлінген. Ол өзінің құралдарын, бағдарламалау тілдерін және фреймворктарын пайдаланады.

«iOS-пен жұмыс істеу үшін сізге MacBook керек, өйткені тек оның қажетті Xcode әзірлеу ортасы бар. Ол тегін және AppStore арқылы таратылады. Орнату үшін сізде Apple ID идентификаторы болуы керек және басқа ештеңе жоқ. Xcode-де сіз кез келген нәрсеге арналған қолданбаларды жасай аласыз - телефон, планшет, сағат. Барлығы үшін кірістірілген симулятор мен редактор бар», - дейді GeekBrains iOS әзірлеу бөлімінің деканы Андрей Антропов.

«Бірақ Hackintosh қолданбасын пайдалансаңыз, әзірлеу ортасын Windows жүйесіне орнатуға болады. Бұл жұмыс істейтін, бірақ айналмалы нұсқа - маңызды әзірлеушілердің ешқайсысы мұны істемейді. Жаңадан бастаушылар ескі MacBook сатып алады. Ал тәжірибелі адамдар әдетте соңғы үлгіні сатып ала алады».

Тілдер - Swift немесе Objective-C

Барлық дерлік iOS әзірлеуі Swift бағдарламалау тілі арқылы жүзеге асырылады. Ол бес жыл бұрын пайда болды және қазір Apple өзінің барлық қосымшаларында 30 жылдан астам пайдаланған ескі Objective-C тілін біртіндеп алмастыруда.

«Objective-C-де үлкен кодтық база жинақталды, сондықтан компанияға, оның тапсырмалары мен қосымшаларына байланысты екі тілде де әзірлеушілер қажет. Көптеген жылдар бұрын жазылған қосымшалар Objective-C негізінде жасалған. Және барлық жаңа жобалар әдепкі бойынша Swift бағдарламасында әзірленеді. Қазір Apple телефонды, планшетті, сағатты және MacBook-ті бір уақытта әзірлеуді мүмкіндігінше ыңғайлы ету үшін көп нәрсені жасауда. Бірдей кодты барлық жерде құрастыруға және іске қосуға болады. Бұл бұрын болмаған. iOS үшін біз Swift жүйесінде әзірледік, MacOS үшін Objective-C қолдандық».

Андрейдің айтуынша, Свифт - жаңадан бастағандар үшін өте қарапайым тіл. Ол қатаң түрде терілген, бұл жобаны құрастыру кезеңінде көптеген қателерді табуға мүмкіндік береді, ал дұрыс емес код жұмыс істемейді.

«Objective-C – өте ескі тіл – C++ тілімен жас. Ол жасалған кезде тілдерге қойылатын талаптар мүлдем басқаша болды. Свифт шыққан кезде ол қате болды, функционалдылық шектеулі болды және синтаксис өрескел болды. Адамдардың қолдары Objective-C-ге толы болды. Көптеген жылдар бойы жетілдірілді, ондағы барлық қателер түзетілді. Бірақ қазір менің ойымша, Swift Objective-C сияқты жақсы. Тіпті Apple әлі де өз жобаларында екеуін де пайдаланады. Тілдер негізінен бір-бірін алмастырады және бірін-бірі толықтырады. Бір тілдің құрылымдары мен объектілері басқа тілдің объектілері мен құрылымдарына айналуы мүмкін. Екі нұсқаны да білу жақсы, бірақ жаңадан бастағандар үшін Objective-C жиі қорқытатын және шатастыратын болып көрінеді ».

Тренингтер

«Алғашқы жұмысымда бастығым мені оқытты, жобаны жүзеге асыруға және орнатуға көмектесті, - дейді Марат, - Бірақ Android және iOS жүйелерінде бір уақытта жұмыс істеу қиын. Қайта құру, жобадан жобаға, тілден тілге ауысу үшін уақыт қажет. Соңында бір бағытты таңдап, оны зерттеу керек деп шештім. Мен Xcode интерфейсінде және Swift қарапайым синтаксисінде сатылдым».

Марат GeekBrains iOS әзірлеу бөліміне түсті. Алғашында бұл өте оңай болды, өйткені ол жұмыс тәжірибесінен көп нәрсені білетін. Жылдық курс төрт тоқсанға бөлінеді. Андрейдің айтуынша, біріншісі тек негізгі мәліметтерді береді: «Swift тілінің негізі, негізгі фреймворктарды білу, желіні құру, деректерді сақтау, қолданбалардың өмірлік циклі, контроллер, негізгі архитектуралар, барлығы қолданатын негізгі кітапханалар, көп ағынды және параллелизм қолданбалар».

Екінші тоқсанда Objective-C қосылады. Курс архитектура және негізгі бағдарламалау үлгілері бойынша жүргізіледі. Үшінші тоқсанда олар код жазудың дұрыс стилін үйретеді. Ол фабриканың не екенін, тесттерді қалай дұрыс жазу керектігін, жобаларды жасауды, Git-Flow деген не екенін, Fast Lane арқылы үздіксіз интеграцияны түсіндіреді. Төртінші және соңғы тоқсан топтық жұмыс, практикалық тапсырмалар және тағылымдамадан өтуге арналған.

«Бірінші тоқсан оңай болды, - дейді Марат, - бірақ содан кейін мен Objective-C бағдарламасында бағдарламалауды үйрене бастадым, дизайн үлгілерін, Solid, Git-Flow принциптерін, жоба архитектурасын, қолданбаларды Unit және UI тестілеуін, пайдаланушы анимациясын орнатуды үйрендім. - содан кейін мен оқу қызық болды».

Борис Павлов: «Бұл мен үшін GeekBrains-те оңай басталған жоқ», - дейді Борис Павлов және оның iOS-ты дамытуға деген жолы ең тікелей болған жоқ. Баланы әжесі тәрбиелеген. Ол сәулетші, математик және дизайнер болды және Бориске дизайнға деген сүйіспеншілікті оятты, оны қолмен және сурет салуды үйретті. Ағасы жүйелік әкімші болған және жиені компьютерге қызығушылық танытқан.

Борис өте жақсы оқушы болды, бірақ оқуға деген қызығушылығын жоғалтып, тоғыз сыныптан кейін мектепті тастап кетті. Колледжден кейін ол велосипедпен айналысты, ал компьютерлер фонға айналды. Бірақ бір күні Борис омыртқа жарақатын алды, бұл оның спорттық мансабын жалғастыруға кедергі болды.

Ол C++ тілін Иркутск Күн-Жер физикасы институтының оқытушысынан бастады. Содан кейін мен ойын әзірлеуге қызығушылық танытып, C# тіліне ауысуға тырыстым. Ақырында Марат сияқты Свифт тілімен баурап алды.

«Мен GeekBrains тегін кіріспе курсынан өтуді шештім. Шынымды айтсам, ол өте қызықсыз, жалқау, түсініксіз еді, – деп еске алады Борис, – мұғалім тілдің ерекшеліктерін айтып, бірақ мәнін ашпай бір тақырыптан екінші тақырыпқа асықты. Курс аяқталғанда, мен әлі ештеңе түсінбедім ».

Сондықтан, кіріспе курстан кейін Борис бір жылдық оқуға емес, қысқа үш айлық курсқа жазылды, онда олар мамандықтың негізін үйретеді. «Мен ол жерден өте жақсы мұғалімдерді таптым, олар бәрін анық түсіндірді».

«Бізді жиі сынға алады, біздің оқу-әдістемелік құралдарымыз толығымен жаңартылмайды, дәлсіздіктер бар. Бірақ курстар үнемі жаңартылып отырады, мұғалімдер үнемі жаңалықтар туралы айтады. Мен басқаратын топтардың көпшілігі бірінші тоқсаннан кейін жұмысқа орналасады. Әрине, әдетте бұл бағдарламалау тәжірибесі бар адамдар», - дейді Андрей, «Екінші жағынан, барлық білімді бір курста жеткізу мүмкін емес. Желілік клиенттің өмірдегі өзара әрекеті он екі сағаттық дәріске сыймайды. Ал егер сіз тек курстарға барып, басқа ештеңе жасамасаңыз, біліміңіз жеткіліксіз болады. Егер сіз жыл бойы күн сайын оқысаңыз, онда бұл қарқынмен тек жалқаулар жұмысқа орналаспайды. Өйткені бұл мамандыққа сұраныс өте жоғары».

Егер сіз iOS әзірлеушісі болғыңыз келсе, не күтуге болады

Сіз ең көп көре аласыз соңғы бос орындар iOS әзірлеушілеріне арналған және жаңаларына жазылыңыз.

жұмыс

Бірақ Марат та, Борис те оңай жұмысқа орналаса қойған жоқ.

«Кейбір ірі фирмалар ұзақ уақыт бойы Objective-C жүйесінде iOS қолданбаларын әзірледі және ескі код базасын сақтауды жалғастыруда. Өкінішке орай, менде оларды тек Swift-ті қолдануға мәжбүрлейтін дәлелді дәлелім жоқ. Әсіресе «жұмыс істейтін нәрсеге қол тигізбе» ережесін қолданатындар, дейді Марат, «Geekbrains-те Objective-C бағытына аз көңіл бөлінеді. Бұл көбірек ақпараттық сипатта. Бірақ мен сұхбат берген әрбір компания Objective-C туралы сұрады. Менің оқуым Свифтке бағытталғандықтан, бұрынғы жұмысым сияқты мен сұхбатта бас тарттым».

«Оқып болғаннан кейін мен өз бетімше ең үстірт негіздерін ғана білдім, олардың көмегімен ең қарапайым қосымшаны жасай аламын, - дейді Борис. - Жұмыс үшін, әрине, жеткіліксіз болды, бірақ мен бұған қуандым. Иркутскіде жұмыс табу қиын болды. Дәлірек айтсақ - мүлде емес. Мен басқа қалаларды іздеуді шештім. Бос жұмыс орындарының саны бойынша Краснодар, Мәскеу және Санкт-Петербург ең өзекті болып шықты. Мен Санкт-Петербургке баруды шештім - Еуропаға жақынырақ.

Бірақ бәрі онша қызғылт емес болып шықты. Кіші бала да біле алмағандары үшін кешіріледі. Мен әлі жұмыс таппадым. Мен «рахмет» үшін жұмыс істеймін, тәжірибе жинаймын. Мен бұл менің қалағаным емес екенін түсінемін, бірақ мені қызықтырады және бұл мені жетелейді. Мен білім алғым келеді».

Андрей жаңадан келгендер жұмыс емес, тәжірибе іздеуі керек деп санайды. Егер сізде өте аз білім болса, онда тағылымдамадан өту ақысыз болуы қалыпты жағдай. Андрей жұмыс процесі жолға қойылған ірі компанияларға кіші бос орындарға өтініш беруге кеңес береді.

«Бағдарламалық жасақтаманы әзірлеу процесі қалай жұмыс істейтінін түсінген кезде, қалауларыңызға байланысты шарлау және одан әрі жұмыс табу оңайырақ болады. Кейбір адамдар тәуелсіз дамуға барады, өздері үшін ойындар жасайды, оларды дүкенге жүктеп, өздері ақша табады. Кейбіреулер қатаң ережелері бар ірі компанияда жұмыс істейді. Кейбір адамдар арнайы бағдарламалық жасақтаманы жасайтын шағын студияларда ақша табады және олар жобаны нөлден бастап оны дүкенге жеткізуге дейінгі бүкіл процесті бақылай алады ».

Жалақы

IOS әзірлеушісінің жалақысы, кез келген басқа сияқты, «Мәскеу немесе Ресей» деген сұраққа байланысты. Бірақ саланың ерекшеліктеріне байланысты - қашықтан жұмыс істеудің көптігі, қоныс аудару және аймақтық нарықта емес жұмыс істеу мүмкіндіктері - сандар бір-біріне жақындап келеді.

Егер сіз iOS әзірлеушісі болғыңыз келсе, не күтуге болады

My Circle жалақы калькуляторына сәйкес, iOS әзірлеушісінің орташа жалақысы сәл аз 140 000 рубль.

«Өте төмен деңгейдегі жасөспірім көбінесе тегін немесе символдық ақшаға жұмыс істейді - 20-30 мың рубль. Кіші орынды әдейі алып кетсе, 50 мыңнан 80 мыңға дейін алады. Орталар 100-ден 150-ге дейін, кейде тіпті 200-ге дейін алады. Үлкендер 200-ден кем алмайды. Олардың жалақысы 200-300 шамасында деп ойлаймын. Ал команда жетекшілері үшін сәйкесінше 300-ден асады».

Егер сіз iOS әзірлеушісі болғыңыз келсе, не күтуге болады

Жұмыс сұхбаттары

«Бірінші сұхбат Skype арқылы өтті. Менің таң қалдым, бұл Google болды, - деп есіне алады Борис, - ол кезде мен Санкт-Петербургке жаңадан көшіп, жұмыс іздей бастадым. Мен iOS әзірлеушісі лауазымына өтініш алдым. Кіші емес, орта емес, аға емес - жай әзірлеуші. Мен қуанып, менеджермен хат алыса бастадым. Маған техникалық тапсырманы орындауды тапсырды: маған Чак Норрис туралы әзілдерге өтініш жазу керек болды. Мен жаздым. Олар маған бәрі тамаша екенін айтты және онлайн сұхбат жоспарлады.

Біз бір-бірімізді шақырдық. Менімен бір жақсы қыз сөйлесті. Бірақ олар тілді меңгеру туралы ешқандай сұрақ қойған жоқ - тек әртүрлі логикалық есептер, мысалы, «Уақыт 15:15, сағат пен минут тілі арасында неше градус бар?» немесе «Бағананың ұзындығы 10 метр, Ұлу күндіз 3 метр жоғары жорғалайды, ал түнде 1 метр төмен түседі». Қанша күннен кейін ол шыңға шығады?» және тағы бірнеше ұқсас.

Содан кейін өте оғаш сұрақтар болды - мен неліктен Apple-ді жақсы көремін және Тим Кукқа қалай қараймын. Мен компанияның оған деген оң көзқарасы бар, бірақ ол үшін өнім емес, ақша маңызды екенін айттым.

Swift туралы сұрақтар басталғанда, менің білімім тек бағдарламалау үлгілері мен OOP негіздері үшін жеткілікті болды. Қоштасып кеттік, бір аптадан соң қайта звондап, жарамаймын деді. Шындығында, мен осыдан орасан зор тәжірибе жинадым: білім керек, ол көп керек – теория да, практика да».

Андрей: «Сұхбат кезінде бәрінен бірінші сұралатын нәрсе - контроллердің өмірлік циклі. Олар қарапайым бағдарламалау үлгісін сұрауды ұнатады. Олар танымал кітапханаларды пайдалану тәжірибеңіз туралы міндетті түрде сұрайды. Сілтеме түрлерінен Swift мән түрлерінің айырмашылығы туралы, автоматты түрде сілтеме санау және жадты басқару туралы сұрақ міндетті түрде болады. Олар қолданбаларда деректерді сақтауды қалай жүзеге асырғанын және желілік сұрауларды орындағанын сұрауы мүмкін. Олар REST және JSON негіздері туралы сұрайды. Кішіден нақты заттар мен нәзіктіктер сұралмайды. Кем дегенде, мен сұрамаймын ».

Борис басқаша тәжірибе алды: «Мен тағылымдамадан өтуге сұранып, техникалық тапсырмаларды орындап, жалақы мен үшін маңызды емес, тек пәтер жалдауға жеткілікті болса, маған бәрібір бас тартты. Мен мақалаларды оқыдым, жұмысқа жаңадан келген адамнан не қажет екенін түсінуге тырыстым. Бірақ олар негізінен теориялар бойынша сәтсіздікке ұшырады. Қандай да бір себептермен олар жоғары лигадан жаңадан келгендерге қатысы жоқ сұрақтар қойды».

Мараттың жолы болды. Қазір ол көлік компаниясында жұмыс істейді және факультетте оқуын жалғастыра отырып, iOS бөлімін жалғыз басқарады. «Мен iOS-қа жауапты жалғыз адам болғандықтан, менің жұмысым теорияны білуіммен емес, маған жүктелген тапсырмаларды орындау қабілетіммен ғана бағаланады».

Қоғамдастық

Андрей Нижний Новгородта тұрады және ол жерде де үлкен қауымдастық қалыптасқанын айтады. Бір кездері ол Python-да бэкенд-әзірлеуші ​​болған, бірақ оның достары оны мобильді дамуға сүйреп апарды - енді ол барлығын мұны істеуге шақырады.

«Әлемдік қауымдастық әдетте Twitter арқылы байланысады. Адамдар өздерінің блогтарын жазады, Youtube-те бейнелер түсіреді, бір-бірін подкасттарға шақырады. Бір күні менде HQTrivia тобының жетекшісі сөйлеген презентация туралы сұрағым болды. Бұл бірнеше миллион адам бір уақытта ойнайтын американдық викториналық ойын. Мен оған Twitter-де жаздым, ол маған жауап берді, біз сөйлестік, мен оған рахмет айттым. Қоғамдастық өте мейірімді, бұл керемет ».

Ұсынылған әдебиеттер тізіміБастауыш деңгейі:

Орташа деңгей:

Жетілдірілген деңгей:

Ақпарат көзі: www.habr.com

пікір қалдыру