Изучение Swift, iOS developer

💡 Усі статті, обговорення, новини про Mobile — в одному місці. Приєднуйтесь до Mobile спільноти!

Всем привет.
С чего бы начать...
В общем, сейчас мне 22(зимой будет 23 года)
Почти доучился в универе(тех. специальность, связанная с Электрическими станциями)

Еще на третьем курсе универа я понял что это не мое, что не хочу я работать на предприятии за 6-8 к грн
Та и вообще дальше как-то свою жизнь связывать с энергетикой.

В тот момент, после окончания 3-го курса(лето 2017 года) как раз набирал обороты телеграмм, с его каналами и т.д.
Я запилил свой канал тогда, раскрутил его, зарабатывал с рекламы и довольно не плохо.
Потом вовсе продал канал и все было збс.
Мог позволить себе жить в городе миллионнике и не в чем не нуждаться.

Но бабки закончились, что-то мутить новое в этой сфере если честно не хочется.
И я на долгосрок и в перспективе смотрел в сторону ИТ.
+ мне нравилось изучать программирование в Универе и Школе( к слову Гимназия у нас была специализирована как раз в направлении — информационно-технологическом)

Так вот, не долго думая, я решил для себя, какой ЯП мне ближе по душе и с чего мне начать.
Проанализировавши все за и против + по своим личным соображениям я выбрал Swift.
Плюсом, так же, для меня было то, что у меня в наличии есть мак бук про, 2018 года (когда были бабки с канала купил себе).

Подумываю над тем, чтобы попасть на тренинги в ЕПАМ, т.к. потом там и трудоустроиться можно.
Но чтобы попасть к ним на тренинги, нужно уже иметь представления и какие-то знания по ЯП, ООП ну конечно же инглиш не ниже B1.

Уже начал изучать(чуть больше недели) ЯП с базы — переменные, словари, массивы, циклы и т.д.

Но как понять, как много мне предстоит выучить, чтобы пройти экзамен и поступить на тренинги?
Та и вообще, если опустить тренинги, есть ли тут среди вас iOS разработчики?
Неважно джуниоры, мидлы или сеньоры.
Можете немного рассказать что ждет в недалеком будущем этот ЯП, много ли проэктов? Ну и немного интересует ЗП конечно.

Камнями не кидайтесь, моя первая тема.
Буду благодарен любым советам.

P.S. Начал изучение с такого ресурса как свифтбук, много годного материла, если есть у кого еще какие источники — поделитесь плиз.

Так же расскажите стоит ли идти на курсы в оффлайне, или лучше самому все изучить, особенно если есть материал где все по полочкам разложено.

👍ПодобаєтьсяСподобалось0
До обраногоВ обраному1
LinkedIn
Дозволені теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter
Дозволені теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter

Коментар порушує правила спільноти і видалений модераторами.

Вообще, если так подумать про будущее ближайшее(лет 5-10), то обороты очень сильно набирает робототехника, БостонДинамикс с их роботами и еще куча похожих фирм.
А вроде, код под все это пишется на языках типо Питона(поправьте если не прав).
Правда до Украины эта тенденция еще не дошла, но если смотреть в будущее, то мб в скором времени и дойдет, и те кто будут разбираться в этом и писать код — явно будут в востребованы.
(Лично мое мнение)

Питон это очень перспективное направление.
Бекенд, немного фронт, а если есть желание углубиться в датасайенс или МЛ самое оно.

Оптимизм это замечательно, но надо смотреть на реалии. Если тебе нужна работа, которая приносит деньги, лучше смотреть на то, какие вакансии востребованы в наибольшем количестве прямо сейчас и входить в поток. Переучиться на другой язык тогда, когда интересующие тебя тенденции доберутся до нашего рынка будет куда проще, когда уже будет база. Все адекватные языки программирования имеют одинаковые основы.

А что вы скажите, если смотреть не в разработку приложений, а в разработку мобильных игр под iOS?

В геймдеве все еще намного хуже.

ТС, учи бекенд или веб и будет тебе счастье.
Оставь мобайл хипстерам.
Захочешь пописать под мобилки, всегда успеешь.

О насоветовали в комментариях... Аж задумался бросить это гиблое дело, которым занят 3+ лет. Да, три года не 15, но за это время совершенно точно понял, что iOS разработка — то что я хочу. Да, есть прекрасная Apple которая любит подкинуть дерьма с новым релизом iOS/Xcode, да разработка приложений под мак дело очень редкое, но как-то и так всего хватает + появилась адаптация iPad приложений под мак, глядишь всё подфиксят и заживем. А если ещё и поверить в себя и взяться за RxSwift (в дальнейшем переехать на Combine), то жизнь заиграет новыми красками :]

Возвращаясь к твоему вопросу. Как же быть и с чего начать? Никаких курсов. Курсы по программированию по iOS — шарлатаны. Много книг, блогов, твиттеров и тд (Ray Wenderlich в помощь). Так же не забываем про книги, которые не про язык, а про программирование. Самое главное без чего никогда не стать программистом — практика и работа. Ищи как хочешь, ищи где хочешь, но тебя должны взять на работу, от этого зависит 95% успеха. Без работы не будет опыта, а без опыта — работы. Вот твоя задача решить этот парадокс и я могу сказать тебе что это не сказки, именно этот путь я выбрал и сейчас рад продолжать расти и не гаснуть уже более трёх лет как iOS Developer ;] Удачи)

Как же быть и с чего начать?

С того что посмотреть сколько вакансий на мобильную разработку (особенно не в столице), сравнить с количеством вакансий на другие технологии.
Вспомнить что хипстерам не нужны цифры, ведь главное «крутые новомодные технологии».
Неважно что ниже уже сами айос-разработчики советуют смотреть в сторону фронта или бека.

А если ещё и поверить в себя и взяться за RxSwift (в дальнейшем переехать на Combine), то жизнь заиграет новыми красками :]

Подобная мотивационная дичь это сладкая лапша на уши.

Могу сказать по своему опыту. Я начинал с Objective-C где-то 8 лет назад, очень радовался когда вышел Swift и работал с ним по сути с момента его рождения. Swift лучше, чем Objective-C, но советовать на нем работать невозможно. Работать не в аутсорсе на мобайле будет невозможно и 99.9% проектов, которыми ты будешь заниматься, будут убогими и депрессивными, без нормальных требований. Xcode часто будет заявлять, что твой девайс залочен, когда он разлочен, и надо будет с него полностью выходить, вынимать телефон, вставлять обратно и заходить обратно в Xcode и снова ждать пока проект перекомпилится. Отгрузка в апстор — долго и боль, ты еще наверное даже не слышал про их ревьюеров и их правила. Новые версии Swift выходят (или по крайней мере выходили) очень часто, потом обновляется Xcode и говорит, что твоя версия языка устарела и будь добр перепиши весь свой проект, так как наш тул для автоматической конвертации кода не работает, кстати мы не поддерживаем последний iOS, установленный на твоем телефоне, удачи тебе тестить камеру на симуляторе. Если честно, меня такие вещи очень расстраивают. Interface Builder и storyboard’ы становятся твоими злейшими врагами, чем больше у тебя на экране элементов. Я могу это нытье еще очень долго продолжать, но не суть. Пару лет назад научился работать с бекендом на nginx+Python/Django, выучил React и React Native. Работать оказывается куда лучше, когда тебе не надо три минуты ждать пока перекомпилится весь проект, чтобы увидеть, что у UILabel теперь действительно красный background. Когда переходишь в бекенд и/или фронтенд, понимаешь, что мобайл это песочница, большинство нормальных проектов делается в вебе. Я вижу, тут люди советуют dart и flutter, но я бы и ими не советовал бы заниматься, так как это направление сейчас не очень стабильное. Больше всего мне понравилось работать с React, и тебе я тоже советую в его сторону посмотреть, начни с HTML/CSS/JavaScript. Захочешь пилить фронтенд — это можно делать с реактом, мобайл — с реакт нейтивом, идеи там одни и те же, прийдется просто выучить нюансы работы с самим мобайлом. Идти в бекенд не имея никакого опыта в разработке не советую, порог вхождения высокий, и если учишься без ментора, будет слишком сложно, так как учить надо будет далеко не только программирование. Для бекенда нужно в первую очередь определиться со языком, на котором ты захочешь учиться и работать в будущем, которых прилично — Python, PHP, Node.js, Ruby On Rails, Java, JS и т.п. Надо будет уметь работать с базами данных, и начнешь ты скорее всего с Firebase, а потом тебя очень сильно порадует вхождение в PostgreSQL или MySQL, надо будет понимать как настраивать вебсервер, подымать ubuntu, учить ее экосистему, учить в хоть какой-то мере bash, настраивать ssl. Я не знаю как сейчас на рынке с DevOps и повезет ли тебе попасть в команду, где он есть, но если его нет, будешь подымать вручную серверы на Amazon EC2/Beanstalk или еще на чем, и это далеко не конец. Я тут явно где-то перегибаю, но идея в том, что этот океан информации прийдется учить в любом случае. Для фронта нужен HTML/CSS/JS и фреймворк — Angular/React/Vue — не учитывая вещей, которые необходимы любым разработчикам вроде git, это все, может TypeScript, если попадешь в нормальную команду. Я советую JavaScript потому, что для меня это был самый гибкий и удобный вариант, на нем можно писать в любом направлении — бекенд на node.js, фронт на react, кросс-платформенный мобайл на react native. Еще раз очень настоятельно советую — забудь про Swift и смотри в сторону веба, на маке очень удобно под него писать, так как это та же unix система, что и ubuntu, на которую будет деплоиться твой код и с консолью будет проще осваиваться. Посмотри вот этот роадмап для общей идеи того, что надо учить — github.com/...​ahmedse/developer-roadmap. На фронтенд сейчас самое высокое количество вакансий, много вакансий именно на реакт — jobs.dou.ua. Фронтенд очень хорош для новичков так как там есть визуальный фидбек, ты что-то пишешь — оно мгновенно обновляется и ты видишь, что произошло. www.udemy.com/...​omplete-guide-incl-redux — вот этот курс учит большей части того, что надо будет знать, чтобы нормально работать с реактом, но прийдется и самому доучиваться, поставь его только хотя бы на 1.5 скорость, ато говорит медленно. Перед тем, как него браться, надо обязательно иметь базу с HTML и CSS. Попробуй посмотреть несколько качественных видео по обеим технологиям, начать надо с HTML www.youtube.com/watch?v=UB1O30fR-EE. Для справки можно использовать www.w3schools.com/html/default.asp, но учиться по нему практически невозможно. Будут вопросы, пиши.

На фронтенд сейчас самое высокое количество вакансий, много вакансий именно на реакт — jobs.dou.ua.

Ключевое предложение.

Со временем ТС поймет что разумнее смотреть в сторону где больше вакансий.
Больше вакансий это больший выбор проектов, больше возможностей апнуться по зп при переходе между компаниями.
Мобайл (в том числе и нативный) остается, но это уж очень маленькая ниша.

По поводу React добавил бы, что количество вакансий как раз и зависит от порога входа. Я могу понять почему разработчики выбирают React — это меньший learning curve, легкий переход на React Native, тоесть за меньшую стоимость(потраченное время) получаем больше(количество проектов на рынке). Со стороны заказчиков тоже все логично, раз больше людей знают React, то и проект нужно на нем делать, а если повезет то одного человека посадить на React/React Native. Отсюда и замкнутый круг получается.
На Angular проектов чуток меньше, да и спецов тоже меньше из-за более высокого порога входа. Так же, на Angular чаще пишут enterprise проекты. На React чаще встречаются мелкие проекты, что и логично.
А еще лично мое наблюдение, что люди, которые хотят войти в IT чаще всего это делают через QA или веб фронтенд (в частности React). Никто не хочет учить структуры данных и разбираться с БД. И меня как фулстек это не может не радовать.

Как по мне оптимальный вариант это изучать кросс-платформенную разработку мобильных приложений. Самым перспективным направлением на данный момент является Flutter, но можно выбрать что-то другое, если не нравится язык Dart.

Вакансий нет в принципе, и не факт что будут.

Будут) Это вопрос времени

На доу как минимум 10 вакансий, и это только начинает флаттер входить в украинский аутсорс.
А на счет гугла — никто не закрывает перспективные проекты.

Закрыть могут любой опен-сорц(привет Реакт, РеактНейтив)
Закрыть могут и Ябло(привет Нокия)

Ниче. Реакт(РН) — такой же опен сорс и закрыть его могут ровно так же как и Флаттер)
Никто никому ничего не должен)

ну будет не 10 как сейчас, а 20, а кушать хочется уже сейчас...

И кто даст человеку без опыта делать новый проект на новой технологии? За относительно вменяемые деньги, обычно начинающим дают рутину и это будет нейтив.

Давайте только упустим те копании что состоят только из джунов за 300$, я про адекватные случаи.

Такой себе совет, начинающему стартовать с кросс-платформы, когда нет еще особо понимания как это все в куче работает. В чем отличия платформ, подводные камни итд. Сразу в дарт с его tree shaking, вложенностями и асинхронностью фьючерсами вместо стандартного колбека. И потом, даже не важно взлетит/не влетит выходить на конкуренцию за несчастные 11 вакансий по всей Украине...

Flutter был выбран просто как пример, выбрать можно что душе угодно.
Кросс-платформа дает возможность разобраться как разрабатывать для ios/android/web/desktop, написав один и тот же код и параллельно изучать нюансы платформы.
Плюс дает возможность через некоторое время работать на фрилансе (после получения опыта на галере), делая приложения для нескольких платформ за хорошие деньги.

В любом случае, если автор настроен на ios и swift — это его выбор.

В общем, сейчас мне 22(зимой будет 23 года)

Без 5 минут синьор.

Курсы при компании с дальнейшем трудоустройством — будет самое оно.

Я бы не советовал идти в мобайл сегодня в принципе, а тем более в нативную разработку.
Эпоха бесполезных стартапов уходит в небытие.

Самые стабильные и высокие зп на бекенде с энтерпрайз проектами и нормальными бюджетами. Работы и денег на годы вперед.
Очень хорошо проблемы мобайла описали в этом сообщении
dou.ua/...​rums/topic/28058/#1644493

Хотите модные хипстерские технологии, проекты на 3-4 месяца с копеечными бюджетами (нормальных проектов капля в море вроде банкинга или магазинов) — тогда смело мобайл.
Хотите стабильную адекватную работу с нормальными з.п. и возможностью роста до архитектора — добро пожаловать в бекенд.

Выбор между суетой и застоем?

Нормальные люди выбирают там где больше вакансий и больше зарплаты.
Хотя у кого-то могут быть другие приоритеты.

На одну ноду больше вакансий чем на весь мобайл вместе взятый.

Спасибо за ответ
Так на свифте пишутся не только приложения для мобилок, но и для мака
Или приложения для мака тоже не востребовано?

Десктоп это очень маленькая ниша, то что делаюот под мак как правило стараютсья делать кросплатформенным и поэтому его пишу не на Swift.

Как бе мир уходим в мобилки если что, их уже в разы больше чем персональников, все крупные сервисы имеют свое приложение мобильное.
Без без фронта (вебного, мобильного) нафиг никому не упал, и идти они будут вместе, держась за ручки. Так что странно очень слышать такое.

Просто это относится больше к аутсорсу в Украине.
У нас почти не делают продукты, чаще всего из стран первого мира отдают лишь старое говно мамонта на багфиксы, и поэтому считается большой удачей зная лишь жаву устроиться на проект, где можно месяцами ковыряться в xml-конфигах.

Просто порівняйте динаміку вакансій в Україні за останні 3 роки:
Frontend(+ ~100%): jobs.dou.ua/...​rends/?category=Front End
Java(+ ~100%): jobs.dou.ua/trends/?category=Java
Python(+ ~140%): jobs.dou.ua/trends/?category=Python

і на iOS(+ ~25%): jobs.dou.ua/...​rends/?category=iOS/macOS.

Как бе крупных сервисов реально единицы, и как Вы верно заметили, мобайл это очень маленький фронтенд с минимумом бизнес логики, соответственно вменяемых проектов очень мало. Даже для мобайла крупного проекта нужна тимка в разы меньше чем на бек или веб.

Нормальные проекты конечно же есть, но их доля капля в море.

Курсы от компании это самое лучшее что может быть, смотри джуниор дайджест dou.ua/...​ior-digest-47/?from=doufp

Попробуйте решать задачи на таких ресурсах, как codility, hackerrank и подобных. В числе поддерживаемых языков там есть и Swift. Решая задачи, можно как набить руки на них, так и освоить конструкции изучаемого языка программирования. Удачи!

Я не iOS разработчик, но по поводу курсов дал бы совет. Это мое мнение, и кто-то может с ним не согласиться. Зачастую, курсы, которые обещают тебя чему-то научить — это разводняк на бабки (особенно в нашей стране). Они хайпуют на теме IT, и в лучшем случае дают ту инфу, которая и так лежит в открытом доступе, а в худшем — учат совсем нерелевантным навыкам. Если ты и сам вполне можешь изучать новый материал, то не вижу необходимости в курсах. Тем более есть очень много бесплатных ресурсов.
Если у тебя есть самодисциплина, то на твоем уровне этого будет достаточно. А в будущем можешь и рассмотреть платные онлайн курсы для повышения своей квалификации. Например, когда мне, веб-разработчику с опытом, нужно было побыстрому войти в Angular, то я приобрел курс от Todd Motto, что значительно сэкономило мое время, так как это нужно было здесь и сейчас и не было времени самостоятельно ковыряться, тут же и знание английского пригодилось. Но в этом плане тоже нужно быть аккуратным, чтобы не попасть на разводняк.

Підписатись на коментарі