«Курсы для меня — пустая трата денег»: сколько зарабатывает разработчик мобильных приложений

В Томске
17
«Курсы для меня — пустая трата денег»: сколько зарабатывает разработчик мобильных приложений
Аватар автора

Ильнур Шарафиев

разработал текст

Страница автора

Читатели Т⁠—⁠Ж регулярно делятся с нами историями о своих профессиях.

Наш новый герой с детства увлекся компьютерами и поступил на специальность, связанную с информатикой, а потом сам изучил мобильную разработку. Он рассказал, как ему помогло высшее образование, почему он не видит смысла покупать курсы и как место работы влияет на профессиональный рост.

Это история из Сообщества. Редакция задала вопросы, бережно отредактировала и оформила по стандартам журнала.

Выбор профессии

Аватар автора

Viktor Krasnousov

разрабатывает мобильные приложения

Страница автора

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

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

В 2017 году поступил в Томский государственный университет систем управления и радиоэлектроники на бюджет, на специальность «информатика и вычислительная техника». Проходной балл был невысоким, но я оказался предпоследним в списке на зачисление: у меня было всего 204 из 300 баллов по ЕГЭ. Как бы комично это ни звучало, но информатику я сдал всего на 66 баллов.

Основные знания о программировании я получил на первом и втором курсах. Мне повезло с преподавателем, который параллельно работал и знал все самое современное, что есть в программировании. Он старался в виде вымышленных проектов давать реальные задачи. Университет тоже старался следовать тенденциям и развивать обучение ИТ-специалистов, но можно было больше заниматься практикой, а не предметами для общего развития.

Самым сложным предметом была физика, я ее всегда закрывал на три. Следующим по сложности было, как ни странно, программирование, оно давалось мне со скрипом, а мои знания в написании кода были ужасными. Мы изучали базовые алгоритмы и структуры на C++, я тогда даже не понимал, как работают процедуры и функции в языке. При поступлении у меня были очень скудные знания, но после первого семестра я набил руку и даже ходил на межвузовские олимпиады, где был твердым середнячком. Самым простым предметом для меня была высшая математика.

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

Практика началась на первом курсе, сначала она была учебной. Преподаватель сам определял сложность работы для студента. Мне должны были выдать практику обычного уровня, но я попросил более сложную. Не хотел отставать от других: на первом курсе были очень сильные в программировании ребята, они занимались С++ еще до поступления и были примером для меня.

Мне нужно было написать приложение под Android для вымышленной спортивной организации. Это был секундомер для проведения соревнований атлетов. На тот момент разработка приложения для меня была настоящим испытанием, я абсолютно не знал ни языка, на котором буду писать, ни системы, для которой буду это делать. Тогда я знал только азы C++.

Вместо летнего отдыха три месяца изучал с нуля Java и Android.

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

Эти проекты сдавались как реальная защита практики. Я писал отчет, делал презентацию и защищал его перед комиссией. Там сидели заведующий кафедрой и еще несколько преподавателей. Они всегда спрашивали про то, почему используются не отечественные технологии, про безопасность и защиту от перехвата данных. У нас даже был мем: «А что там с безопасностью?» Приложения «потыкать» им не давали, все ограничивалось скриншотами, результатами или видео. Я сдал проект на отлично и решил, что разработка мобильных приложений — это близкая мне тема. Хотя приложение на самом деле вышло так себе, первый блин комом, я даже архив с кодом не сохранил.

Через месяц после сдачи практики преподаватель предложил пойти на стажировку в компанию, где сам работал: он делал это в случае, если студент хорошо понимал предмет и ему было куда расти. На потоке было 60 студентов — восемь из них получили такое предложение. Компания занималась разработкой ПО для нефтегазовых компаний и предоставляла услуги аутстаффинга. Тогда проектов по мобильной разработке у них не было, и меня приняли фулстек-разработчиком на внутренний проект. Он был связан с голосованием в многоквартирных домах по вопросам вроде «нужна ли установка домофона или ремонт в подъезде».

На этом проекте я исправлял баги системы и дописывал функциональность. Получил базовые навыки в продуктовой разработке — понял, как все устроено, что такое техническое задание, спецификации требований, дизайн, тестирование, работа с пользовательским фидбэком. Научился работать в команде: узнал, что ИТ-сфера — это не только программисты и разработчики, а при работе в одиночку может получиться ужасный результат. Чтобы сделать продукт, который будет любить пользователь, нужна хорошая команда. Правда, основной штат компании относился к нам как к детям, всерьез нас не воспринимали, пока мы не стали приносить реальную пользу компании.

Стажировка не оплачивалась, но деньги меня особо и не волновали — я работал ради интереса и идеи. Жил на повышенную стипендию за успехи в учебе, выходило 10—14 тысяч за месяц, родители отправляли еще 10 тысяч рублей. Я тогда тратил мало, питание можно описать одним словом — «общага»: ели полуфабрикаты, брали много и дешево.

Раньше удаленка была непопулярна, я ходил в офис каждый будний день и работал по восемь часов. Это было сложно и сказалось на учебе и работе. По согласованию с руководителем приходилось уезжать на пары, а потом допоздна работать в офисе или общежитии. Чтобы было проще, просил у преподавателей все лабораторные и практические задания, которые можно сделать заранее. Иногда даже приходилось брать отпуск для сессии, чтобы можно было подготовиться, не отвлекаясь на работу.

Позже компания перевела меня на поддержку мобильных приложений — если по-простому, я занимался мелкими задачами типа покрасить кнопку или поменять текст.

Через полгода меня взяли младшим разработчиком с зарплатой 30 тысяч рублей. Обязанности остались такими же, просто начали платить. Моей радости не было конца. Но, к сожалению, в компании не было наставников в этой сфере, да и в целом отдел мобильной разработки распался за год до моего трудоустройства, поэтому изучение и доработка проходили стрессово. Главной болью было чтение чужого кода, у меня не хватало опыта для таких задач.

Спустя год компания сказала, что для меня работы нет: мобильные приложения у них не были приоритетом. Мне предложили уйти или писать серверную часть на Java. Это нормальная работа, ненормально только то, что руководство ставит ультиматум по технологиям и языкам. Разработчик сам вправе выбирать, на чем он хочет писать.

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

Параллельно с поисками работы сдавал сессию в универе. Если честно, к третьему курсу я уже хорошо списывал и к экзаменам обычно готовился несильно. Сложно было, когда я не нравился некоторым преподавателям: они так относились к студентам, которые редко появляются на парах. Причем больше всего пропуски не нравились преподавателям по непрофильным предметам: философии, правоведению, безопасности жизнедеятельности.

Тогда же проходил собеседования и изучал технологии, которые требовались в сфере. Это был огромный стресс, особенно первые две-три попытки. В итоге мне предложили работу три компании — я выбрал ту, что находилась в моем городе.


Место работы

Уже два года работаю в небольшой частной компании, которая занимается разработкой продуктов для разных уровней бизнеса и предоставляет специалистов в другие компании. У нас работает около 40 человек: аналитики, QA-инженеры, DevOps, менеджеры проектов, дизайнеры и разработчики.

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

К нам обращается малый бизнес: магазины, спортзалы и другие. Бывают и крупные заказчики из абсолютно разных сфер. Обычно я общаюсь с ними через посредников. Сам присутствую на встречах, если возникают вопросы, которые возможно решить только лично.

Обычно заказчики присылают техническое задание, иногда ТЗ расписаны очень хорошо, иногда это просто «сделайте такое же приложение, как „Вконтакте“» — зависит от заказчика. Ко мне это приходит в виде декомпозированной задачи, то есть большая задача разбивается на много мелких. Работой по документации проекта занимаются мои коллеги.

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

У нас есть гарантия — три месяца, в этот период все правки бесплатны, а если после — за отдельную плату. Раньше из-за небольшого опыта правок было много, теперь меньше. Но не все зависит от меня: ошибки бывают из-за бэкенда, версий системы или разработчика операционной системы.

Суть профессии

Я разрабатываю мобильные приложения под Android и iOS абсолютно любой тематики и сложности. Делаю полный цикл — от проектирования архитектуры до отправки в магазин.

Самое легкое приложение, которое я делал, было для руководителей магазинов: там они могут узнать количество обслуженных клиентов, покупок и статус точек продаж. Оно заняло максимум полтора месяца. Сложнее всего была разработка приложения для крупной ретейл-сети, но там я работал в большой команде.

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

В ИТ в целом нравится то, что все люди открыты: все готовы помочь с проблемами. Хотя бывают, конечно, исключения — если компания имеет строгую иерархию, где мнения разработчиков, QA-инженеров, аналитиков и дизайнеров не учитываются руководством.

Еще один плюс — зарплата. Раньше платили не так, как сейчас, но я понимал, что за этим будущее. А теперь хорошая зарплата оказалась приятным бонусом.

Все самые трудные задачи — самые интересные. Мозг работает на полную и появляется азарт при решении проблемы. Но проблема может принести очень много стресса. Когда ее долго не получается решить, это начинает раздражать: например, ошибки, которые проявляются только у QA-инженеров или пользователей, но не у тебя. Справляюсь со стрессом с помощью прогулок, общения, вкусной еды и физических нагрузок.

Главная проблема — монотонная работа, которая может привести к постепенному выгоранию. Обычно это начало проекта, подготовительная работа. Рутины примерно 20—30%, но я с ней смирился и воспринимаю как часть работы. Ее можно автоматизировать при помощи скриптов и шаблонов, было бы желание и время.

Моя профессия подходит тем, кто любит самостоятельно изучать технологии, не боится стресса и проблем, которые продукт ставит перед разработчиком. Все рекламные курсы вроде «Три месяца практики фронтендером — и вы начнете получать триллион рублей в секунду» — для меня пустой звук и трата денег. Любые платные курсы — это агрегация данных из открытых источников, приправленная структурированностью и кураторством. Можно и самому структурировать и искать знания, узнавать вещи глубже, чем могут преподнести на курсах. Если человек ничего не хочет изучать, ему ничего не поможет. И это работает не только для ИТ.

Рабочий день

08:40—09:30. Подъем, кофе, душ.

09:30—09:40. Дорога до работы. Пешком идти 30—40 минут, но мне проще на такси, это стоит в районе 130 ₽ на «комфорте». На «экономе» в последнее время перестал ездить: очень часто попадаются сомнительные личности.

09:40—13:00. Еще один кофе и ревью кода. Похоже на проверку эссе учителем русского языка: ищем ошибки, опечатки. Это нужно, чтобы код всегда был красивый, понятный и поддерживаемый.

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

13:00—14:00. Обед. Два раза в неделю его заказывает компания, обычно это три блюда: первое, второе и десерт. Я бы не сказал, что в восторге, но в целом нормально, может, я уже искушенный. В остальные дни пользуюсь доставкой, трачу 600—900 ₽. Люблю грузинскую и европейскую кухни, если бы в городе была нормальная китайская еда — заказывал бы ее. Иногда готовлю сам заранее.

14:00—15:30. Встречи с командой по проекту. Обычно обсуждаем, кто что сделал, говорим о проблемах и предлагаем решения. Бывают встречи для оценки задач по времени, ретроспективы для улучшения процессов в будущем на основе ошибок в прошлом. Обсуждаем задачи и их статусы, фиксируем их на доске задач.

15:00—18:30. Работа над задачами, консультация и помощь младшим разработчикам.

18:30—18:40. Дорога домой. Как и утром, на такси.

18:40—19:40. На ужин обычно заказываю доставку, но в последнее время готовлю сам. Я заметил, что приготовление еды расслабляет и помогает отвлечься. К тому же в доставке не всегда бывает то, что хочется. Да и денег меньше уходит — траты на еду сокращаются вдвое.

19:40—21:00. В свободное время гуляю, читаю статьи и книги, связанные с моей сферой, изучаю новые технологии. Иногда играю — чаще всего в компьютерные игры с кооперативом, потому что люблю общаться с друзьями во время прохождения. Когда играю один, это обычно Factorio или Civilization.

21:00—23:00. Подготовка ко сну и душ. В это же время изучаю вещи, не связанные с моей сферой: от рецептов блюд до ремонта в квартире.

00:00—08:40. Сон. Всегда ложусь в одно время с погрешностью полчаса. К этому времени я уже устаю, а если ложиться позже, начинают болеть глаза и голова.

Случай

Год назад у нас случился форс-мажор и для работы над внутренним проектом взяли человека не из компании. Он должен был реализовать небольшое приложение, которое собирает данные о процессе тренировки и интегрируется с внешними сервисами. Приложение он сделал, а интеграцию — нет, сказал, что это невозможно. Проект горел, меня очень попросили заняться им, я сделал интеграцию за одну бессонную ночь. Нашел похожие и на их основе написал свою. Меня хвалили — причем не только руководство, но и коллеги.

Подработки

У меня не было подработок на стороне: нет желания работать сверхурочно, своих задач хватает. Если хочется экзотики или новых технологий, обычно делаю проекты для себя, а затем предлагаю их руководителям и объясняю, почему это круто. Из последних — приложения для работы с курсом валют и для стриминга на «Ютубе». Такие проекты редко становятся реальными продуктами, которые могут приносить доход.

В рабочие дни своими проектами не занимаюсь, только в субботу по четыре часа. На работе не строго следят за тем, что мы делаем, но переключаться между проектами неудобно, фокус пропадает.


Доход и расходы

Зарабатываю 160 тысяч в месяц, 60 тысяч — аванс, остальное выплачивают в день зарплаты. Дошел до такого дохода за полтора года за счет расширения компетенций, опыта и знаний.

Под Новый год дают премию, обычно в размере зарплаты. В первый раз я потратил ее на компьютер, во второй — на ноутбук. Следующая, скорее всего, пойдет на отпуск: хотел бы съездить в Армению. Иногда лишают премии, если сильно провинился, но это редко, у меня такого не было.

Исходя из статистики, которая есть на «Хабре», моя зарплата близка к средней для нашей сферы. А для моего региона, кажется, это очень хорошие деньги. Но потолка нет — в какой-то момент можно получать процент с продаж или подписок в реализованном приложении.

Я хочу получать больше, пока есть возможность и рынок перегрет. Тенденция развивалась два года из-за банков: они любят разработчиков, развивают свои системы, у них много денег. Соответственно, и остальные компании пытаются поднять зарплату. Моя цель — 200 тысяч рублей и больше.

Чтобы повышать доход, буду набираться опыта и набивать руку в разных технологиях и языках. Сейчас все больше используют кросс-платформенные инструменты, хотелось бы довести знания в них до хорошего уровня и на продвинутом уровне изучить разработку под iOS.

Хотелось бы работать за рубежом — в ИТ-корпорациях или компаниях с интересными продуктами. Было бы интересно поучаствовать в разработке операционной системы Android. По сравнению с ними зарплаты в российских ИТ — крошки. В Канаде и США платят 6000⁠—⁠7000 $⁣ (398 417⁠—⁠464 820 ₽) в месяц, а в Европе — 4000 €⁣ (277 741 ₽). Конечно, стоимость жизни тоже выше, но даже с учетом этого остается больше денег. Чтобы устроиться туда, мне надо будет подтянуть английский — хочу найти онлайн-репетитора.

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

Экономить не приходится, только если нужно купить что-нибудь, что не покрывает моя зарплата. В этом случае я просто сокращаю некоторые пункты расходов. В первую очередь отказываюсь от доставки еды и меньше трачу на развлечения. В режиме экономии могу тратить 50—60 тысяч, а обычно — 80—100 тысяч.

Недавно накопил на новый стационарный компьютер. Покупал его без видеокарты, в феврале 2021 года он обошелся в 120 тысяч рублей. В этом году докупил видеокарту, она стоила около 180 тысяч. Теперь цены изменились: сам компьютер подорожал тысяч на 40, а видеокарта подешевела на 30 тысяч. Изначально брал для работы, но использую для игр, вся работа вне офиса — на ноутбуке. Для этого купил Макбук-про, он стоил 234 тысячи рублей. Иногда использую его и на работе, потому что он в разы быстрее всех остальных компьютеров и ноутбуков.

Из незапланированных расходов был, например, стоматолог: лечение зубов обошлось в 60 тысяч. Был срочный переезд в другую съемную квартиру — не устраивала предыдущая и хозяин, потратил на это последние деньги из подушки, которая была на три месяца, примерно 100 тысяч.

Если чувствую выгорание, решаю это сменой обстановки: еду в другой город к родителям, иногда просто отсыпаюсь и играю в компьютерные игры. Или еду в путешествие — в последний раз ездил в Москву на пару дней, потратил там 50 тысяч рублей.

Финансовая цель

Задумываюсь о том, чтобы откладывать на первоначальный взнос по ипотеке на квартиру в Питере и переехать туда. Хочу минимум 40 квадратов, в районе трех-четырех станций метро от центра. Такая квартира стоит от 13 миллионов рублей. Это не обязательно, я не брезгую жить в съемной и могу делать это всю жизнь. Но когда есть свое жилье, с ним можно делать что хочешь, к тому же это хорошее вложение. Для первоначального взноса хочу накопить 3—4 миллиона и взять квартиру в новостройке по программе ипотеки для ИТ.

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

Будущее

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

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

Хочу поискать компанию с хорошими перспективами — где можно расти не только вверх, но и вширь, получать опыт от коллег из смежных сфер. Важный фактор — то, какие условия предоставляют компании: страховку, оплату проезда, сертификаты, скидки. Было бы круто, если бы компания имела несколько офисов в разных точках планеты, чтобы можно было пожить в разных условиях. Хотя и сейчас можно работать из любой точки мира, главное — иметь компьютер и интернет.

Ильнур ШарафиевТоже разрабатываете мобильные приложения? Расскажите, как там у вас: