О перспективах iOS-программистов
Читатели моего блога регулярно задают мне по электронной почте ту или иную вариацию одного и того же вопроса - каковы перспективы iOS-программирования вообще и у iOS-программистов в частности? Вариантов этого вопроса встречается множество, вот лишь некоторые из недавних примеров:
- Какова ситуация с количеством iOS-программистов в Европе?
- Много ли iOS-программистов в Швеции?
- Я студент, стоит ли мне начать заниматься iOS-разработкой?
- Не наблюдается ли перенасыщения рынка iOS-программистов в связи с ростом популярности платформы от Apple?
- Какие перспективы у рынка iOS-разработки на ближайшие пару лет?
Эти вопросы можно обобщить следующим образом: каковы перспективы у начинающего iOS-разработчика, будет ли у него работа в ближайшие несколько лет, стоит ли вообще влезать в iOS-разработку?
Сложный вопрос требует развёрнутого ответа, чем мы сейчас и займёмся.
Начну с рассказа про свой себя. В мае 2015 года в стартапе, который пригласил меня на работу в Швецию, закончились деньги, поэтому я вынужден был искать другую работу в Стокгольме. Новую позицию я нашёл за полторы недели поисков (достаточно интенсивных, надо признать). При этом на момент заключения контракта у меня было 3 job offer-а, и я выбирал лучший для себя вариант. Думаю, эта небольшая история достаточно красноречиво говорит о состоянии спроса на рынке iOS-разработки в Швеции. И, судя по тому, что я получаю значительное количество предложений о трудоустройстве через LinkedIn, полагаю, что подобная ситуация наблюдается и на рынка Великобритании, Германии, Ирландии, России и США. Ну и статистика Яндекса по средним зарплатам iOS программистов как бы намекает.
Однако тут необходимо сделать важную оговорку, что обычно компании хотят найти профессионалов с опытом работы, умеющих грамотно писать качественный код, включая unit-тесты; разбирающихся в существующих фреймворках и библиотеках как от Apple, так и от сторонних разработчиков; имеющих представление о паттернах проектирования; знающих, что такое реактивное программирование и т.д. А таких людей очень немного по сравнению со спросом на них. За людей с опытом разработки в 3-4 года идёт серьёзная конкуренция.
Уверен, что в течение ближайших пары лет (а, возможно, и больше) ситуация коренным образом не изменится сразу по нескольким причинам.
С одной стороны, Apple выпускает новые платформы (Watch OS, tvOS, ходят слухи про машину), постоянно расширяет функционал существующих платформ - iOS и OS X, предоставляет новые фреймворки для работы с биометрическими данными (HealthKit), “умным домом” (HomeKit) и т.д. Знать и разбираться во всём этом многообразии становится всё сложнее и сложнее, чтобы не отстать от других разработчиков нужно бежать вперёд со всех ног, постоянно изучать новое. Людей, готовых бежать, всегда мало, и у них всегда будет работа.
С другой стороны, даже с приходом в отрасль новых людей, им потребуется год-два для получения необходимого опыта разработки, какими бы умными и подготовленными они ни были. У меня есть очень разный опыт общения с джуниорами и стажёрами по моему направлению, грамотных молодых ребят мне попадалось удручающе мало.
Кроме того, стабильное финансовое положение Apple не вызывает у меня никаких сомнений в том, что компания в ближайшее время никуда с рынка не исчезнет и будет стабильно обеспечивать нас как новыми устройствами, так и работой.
Иными словами, iOS-разработчики точно не останутся без работы не только в ближайшие пару лет, но и, скорее всего, гораздо дольше.
Что касается аспекта “стоит ли мне влезать в это дело?” тут многое зависит от того, насколько человеку нравится программировать, какой у него предыдущий опыт работы. Лично знаю людей, которые пошли в iOS-разработку, что называется, “на волне” её популярности, исходя из логики “iOS девелоперам хорошо платят, чем я хуже?”. Как показывает моя практика, если у людей нет желания постоянно разбираться в тонкостях работы, постоянно расти профессионально, особенно в случае, если люди до этого не занимались программированием вообще, то лучше и не пробовать: в реальной работе такие люди приносят работодателю больше вреда, чем пользы, за результатами их работы постоянно нужно следить, чем, очевидно, никто заниматься не хочет.
Однако, если у человека есть опыт коммерческой разработки программного обеспечения, ему нравится разбираться в тонкостях и деталях работы фреймворков, нравится писать и переписывать код, заниматься его постоянным улучшением, если он способен долго концентрироваться и работать на результат, если он, программируя, не замечает, как рабочий день подходит к концу, то у меня для такого человека хорошие новости: он будет успешным iOS-разработчиком :)