Какво да очаквате, ако искате да станете iOS разработчик

Какво да очаквате, ако искате да станете iOS разработчик

Отвън на iOS разработката може да изглежда като затворен клуб. За да работите, определено се нуждаете от компютър на Apple; екосистемата се контролира отблизо от една компания. Отвътре също понякога можете да чуете противоречия - някои казват, че езикът Objective-C е стар и тромав, а други казват, че новият език на Swift е твърде груб.

Въпреки това разработчиците навлизат в тази област и веднъж там остават доволни.

Този път Марат Нургалиев и Борис Павлов ни разказаха за своя опит – как са усвоили професията, как са преминали първите си интервюта, защо са получили откази. А в ролята на експерт се изяви деканът Андрей Антропов Факултет по разработка на iOS в GeekBrains.

През 2016 г. Марат Нургалиев от Астраханска област дойде да си намери работа като мобилен разработчик в местна телевизионна компания. Това беше първото му интервю. Току що се беше върнал от армията, без практика и опит, забравил дори теорията, с която вече имаше проблеми. Единственият опит на Марат в мобилното развитие беше неговата теза за анализиране на потоци от изтичане на информация през приложения за Android. На интервюто той беше попитан за обучението си, ООП и друга теория, но Марат не успя да скрие пропуските в знанията си.

Въпреки това не му е отказано, а е поставена практическа задача - за две седмици да внедри показване на списък с новини чрез API. И за iOS, и за Android. „Ако имах някакъв опит с Android, дори нямаше инструмент за създаване на версия за iOS. Средата за разработка на приложения за iOS е достъпна само за Mac. Но две седмици по-късно се върнах и показах какво мога да правя на Android. С iOS трябваше да го разбера в движение. Накрая ме взеха. Тогава живеех в Астрахан. Всяка ИТ работа със заплата над двадесет ме устройваше.“

Кои са разработчиците на iOS?

Мобилните разработчици правят приложения за всяко преносимо устройство. Смартфони, таблети, смарт часовници и всички други платформи, които поддържат Android или iOS. Основните принципи на мобилната разработка не се различават от конвенционалната разработка, но поради специфични инструменти тя е отделена в отделна посока. Той използва собствени инструменти, езици за програмиране и рамки.

„За да работите с iOS, имате нужда от MacBook, защото само той има необходимата среда за разработка Xcode. Той е безплатен и се разпространява чрез AppStore. За да инсталирате, трябва да имате вашия Apple ID и нищо друго. В Xcode можете да разработвате приложения за всичко - телефон, таблет, часовник. Има вграден симулатор и редактор за всичко“, казва Андрей Антропов, декан на отдела за разработка на iOS в GeekBrains.

„Но средата за разработка може да бъде инсталирана на Windows, ако използвате Hackintosh. Това е работещ, но заобиколен вариант - никой от сериозните разработчици не го прави. Начинаещите купуват стар MacBook. А опитните обикновено могат да си позволят най-новия модел.“

Езици - Swift или Objective-C

Почти цялата разработка на iOS се извършва с помощта на езика за програмиране Swift. Той се появи преди пет години и сега постепенно измества стария език Objective-C, който Apple използва във всички свои приложения повече от 30 години.

„В Objective-C е натрупана огромна кодова база, така че все още са необходими разработчици на двата езика, в зависимост от компанията, нейните задачи и приложения. Приложенията, написани преди много години, са базирани на Objective-C. И всички нови проекти се разработват в Swift по подразбиране. Сега Apple прави много, за да направи едновременната разработка за телефон, таблет, часовник и MacBook възможно най-удобна. Един и същ код може да се компилира и изпълнява навсякъде. Това не се е случвало преди. За iOS разработихме в Swift, за MacOS използвахме Objective-C.“

Според Андрей, Swift е много прост език, който е приятелски настроен за начинаещи. Той е строго въведен, което ви позволява да уловите много грешки на етапа на компилация на проекта и неправилният код просто няма да работи.

„Objective-C е доста стар език – на същата възраст като езика C++. По времето, когато е разработен, изискванията към езиците бяха съвсем различни. Когато Swift се появи, имаше грешки, функционалността беше ограничена и синтаксисът беше груб. И хората имаха пълни ръце с Objective-C. Подобряван е от много години, всички грешки там са коригирани. Но сега мисля, че Swift е толкова добър, колкото Objective-C. Въпреки че дори Apple все още използва и двете в своите проекти. Езиците са до голяма степен взаимозаменяеми и взаимно се допълват. Структурите и обектите на един език могат да бъдат трансформирани в обекти и структури на друг език. Добре е да знаете и двете опции, но за начинаещи Objective-C често изглежда смущаващ и объркващ."

обучение

„На първата ми работа шефът ми ме обучи, помогна ми да внедря и настроя проекта,“ казва Марат, „Но работата на Android и iOS едновременно е трудна. Отнема време за възстановяване, превключване от проект на проект, от език на език. Накрая реших, че трябва да избера едно направление и да го уча. Бях продаден на интерфейса на Xcode и простия синтаксис на Swift."

Марат влезе в отдела за разработка на iOS в GeekBrains. В началото беше много лесно, защото знаеше много неща от трудов опит. Годишният курс е разделен на четири тримесечия. Според Андрей първият дава само основите: „Основата на езика Swift, познаване на основните рамки, работа в мрежа, съхранение на данни, жизнен цикъл на приложения, контролер, основни архитектури, основни библиотеки, които всеки използва, многонишковост и паралелизъм в приложения.”

Второто тримесечие добавя Objective-C. Провежда се курс по архитектура и основни модели на програмиране. През третото тримесечие те преподават правилния стил на писане на код. Обяснява какво е фабрика, как да пишат правилно тестове, да създават проекти, какво е Git-Flow, непрекъсната интеграция чрез Fast Lane. Четвъртата и последна четвърт е посветена на екипна работа, практически задачи и стажове.

„Първото тримесечие беше лесно“, казва Марат, „но след това започнах да уча програмиране в Objective-C, изучавайки модели на проектиране, принципите на Solid, Git-Flow, архитектура на проекта, тестване на единици и потребителски интерфейс на приложения, настройване на персонализирана анимация - и тогава ми стана интересно да уча.

„За мен в GeekBrains не започна много гладко“, казва Борис Павлов, а пътят му към разработката на iOS като цяло не беше най-прекият. Момчето е отгледано от баба си. Тя беше архитект, математик и дизайнер и вдъхна на Борис любов към дизайна, научи го да рисува на ръка и да рисува. Чичо му беше системен администратор и интересуваше племенника си от компютрите.

Борис беше отличен ученик, но загуби интерес към ученето и напусна училище след девет класа. След колежа той започва да кара колело и компютрите остават на заден план. Но един ден Борис получи нараняване на гръбначния стълб, което му попречи да продължи спортната си кариера.

Започва да учи C++ с преподавател в Иркутския институт по слънчево-земна физика. Тогава започнах да се интересувам от разработка на игри и се опитах да премина на C#. И накрая, подобно на Марат, той беше пленен от езика на Swift.

„Реших да взема безплатния въвеждащ курс в GeekBrains. Честно казано, той беше много скучен, муден и неразбираем - спомня си Борис, - учителят говореше за особеностите на езика, но бързаше от една тема към друга, без да разкрива същността. Когато курсът приключи, аз все още не разбрах нищо.

Затова след встъпителния курс Борис не се записва на едногодишно обучение, а на кратък тримесечен курс, където преподават самите основи на професията. „Намерих много добри учители там и те обясниха всичко доста ясно.“

„Често сме критикувани, уж наръчниците ни за обучение не са съвсем актуални, има неточности. Но курсовете се актуализират постоянно и учителите винаги говорят за иновации. От групите, които ръководя, много си намират работа след първото тримесечие. Разбира се, обикновено това са хора с опит в програмирането“, казва Андрей, „От друга страна, всички знания не могат да бъдат предадени в един курс. Взаимодействието с мрежови клиенти в живота не може да се побере в десет двучасови лекции. И ако ходите само на курсове и не правите нищо друго, тогава няма да имате достатъчно знания. Ако учиш всеки ден цяла година, то с това темпо само мързеливите няма да си намерят работа. Защото търсенето в професията е много голямо.”

Какво да очаквате, ако искате да станете iOS разработчик

Можете да видите най-много най-новите свободни позиции за разработчици на iOS и се абонирайте за нови.

Работа

Но нито Марат, нито Борис си намериха работа толкова лесно.

„Някои големи фирми отдавна са разработили iOS приложения в Objective-C и продължават да поддържат старата кодова база. За съжаление, нямам убедителен аргумент, за да ги принудя да използват изключително Swift. Особено тези, които използват правилото „не пипайте това, което работи“, казва Марат, „Малко внимание се обръща на посоката Objective-C в Geekbrains. Има по-скоро информативен характер. Но всяка компания, за която интервюирах, питаше за Objective-C. И тъй като обучението ми е фокусирано върху Swift, както и предишната ми работа, получих откази на интервюта.“

„След като учих, знаех сам само най-повърхностните основи, с помощта на които можех да създам най-простото приложение", казва Борис. „За работа, разбира се, това не беше достатъчно, но бях щастлив от това. Беше трудно да си намеря работа в Иркутск. По-точно – никак. Реших да потърся и в други градове. По отношение на броя на свободните работни места най-актуални се оказаха Краснодар, Москва и Санкт Петербург. Реших да отида в Санкт Петербург - по-близо до Европа.

Но всичко се оказа не толкова розово. Дори на младши ще му бъде простено това, което не може да знае. Още не съм си намерил работа. Работя за „благодаря“, трупам опит. Разбирам, че това не е това, което исках, но ми е интересно и това ме кара. Искам да придобия знания."

Андрей смята, че новодошлите трябва да търсят стаж, а не работа. Ако имате много малко познания, тогава е нормално стажът да е неплатен. Андрей съветва да кандидатствате за младши работни места в големи компании, където работният процес вече е установен.

„Когато разберете как работи процесът на разработка на софтуер, ще стане много по-лесно да се ориентирате и да намерите допълнителна работа, в зависимост от вашите желания. Някои хора отиват в независима разработка, правят игри за себе си, качват ги в магазина и сами си осигуряват приходи от тях. Някои работят за голяма компания със строги правила. Някои хора правят пари в малки студиа, които правят софтуер по поръчка, и там могат да наблюдават целия процес - от създаването на проект от нулата до доставката му до магазина.

Заплати

Заплатата на разработчика на 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, знанията ми бяха достатъчни само за модели на програмиране и основите на ООП. Сбогувахме се, седмица по-късно ми се обадиха и казаха, че не съм подходящ. Всъщност придобих огромен опит от това: трябват знания, трябват много - и теория, и практика.“

Андрей казва, че „първото нещо, което всеки пита по време на интервю, е жизненият цикъл на контролера. Те наистина обичат да искат някакъв прост модел на програмиране. Те със сигурност ще попитат за вашия опит с използването на популярни библиотеки. Определено ще има въпрос относно разликите в типовете стойности на Swift от референтните типове, относно автоматичното преброяване на препратките и управлението на паметта. Те могат да попитат как са внедрили съхранение на данни в приложенията и дали са внедрили мрежови заявки. Те ще попитат за основите на REST и JSON. От младшия няма да се искат конкретни неща и тънкости. Поне не питам."

Борис имаше различен опит: „Дори когато поисках стажове, изпълних технически задачи и казах, че заплатата не е важна за мен, стига да стига да наема апартамент, пак получавах отказ. Четох статии, опитах се да разбера от какво се нуждае един вербовчик от новодошъл. Но най-вече се провалиха с теориите. По някаква причина те зададоха въпроси от висшата лига, които не засягат новодошлите.

Марат имаше по-голям късмет. Сега той работи в транспортна фирма и сам ръководи iOS отдела, докато продължава обучението си във факултета. „Тъй като аз съм единственият, който отговаря за iOS, работата ми се оценява само по способността ми да изпълнявам възложените ми задачи, а не по познанията ми по теория.“

Общност

Андрей живее в Нижни Новгород и казва, че дори там се е образувала голяма общност. Преди време той беше бекенд разработчик в Python, но приятелите му го въвлякоха в мобилната разработка - и сега той самият насърчава всички да го правят.

„Глобалната общност обикновено комуникира чрез Twitter. Хората пишат свои собствени блогове, записват видеоклипове в Youtube, канят се взаимно в подкасти. Един ден имах въпрос относно презентация, на която говори ръководителят на екипа на HQTrivia. Това е американска игра с викторина, която се играе едновременно от няколко милиона души. Писах му в Twitter, той ми отговори, поговорихме и аз му благодарих. Общността е изключително приятелска, което е страхотно.“

Списък на препоръчителната литератураНиво за начинаещи:

Средно ниво:

Напреднало ниво:

Източник: www.habr.com

Добавяне на нов коментар