Из специалиста по банкротству в Android-разработчики

Вадим Новиков — один из самых молодых сотрудников IT Test и пример того, как настойчивость и дисциплинированность в самообразовании могут изменить вектор жизни. Он рассказал нам о переходе из юриспруденции в разработку мобильных приложений и дал несколько советов тем, кто стремится попасть в IT.

Из специалиста по банкротству в Android-разработчики

Сейчас я учусь на пятом курсе юридического вуза, параллельно строя карьеру в IT-сфере с 2021 года. В июне уже защищаю диплом и даже иду на «красный», но связывать жизнь с выбранной профессией не собираюсь — опыт показал, что она мне не подходит.

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

Из специалиста по банкротству в Android-разработчики

Когда я задумался о смене направления, то сразу решил, что это будет IT, — в шесть лет у меня появился первый компьютер, и с тех пор я редко расстаюсь с техникой. В подростковом возрасте мне был интересен геймдев и кибербезопасность, и я даже пробовал самостоятельно заниматься Android-разработкой, правда, без ощутимых результатов. В девятом классе я сдавал выпускные экзамены по физике и информатике и планировал поступать на программиста, но потом осознал, что ЕГЭ по физике через пару лет не потяну, а значит, не пройду на бюджет. Учиться на коммерческой основе возможности не было, поэтому я не стал рисковать и взял целевое направление из прокуратуры на юридический факультет.

Как только я понял, что больше не буду работать юристом, начал заниматься самообразованием. Первым шагом стал Гарвардский видеокурс по основам программирования, который я нашел на YouTube. В течение трех недель я просмотрел 20 часов видео, при этом пытался самостоятельно писать что-то на простой «сишке», продолжал работать и учиться в университете, а спал по пять-шесть часов.

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

Здесь я подробнее остановлюсь на том, как изучал Swift, и дам несколько рекомендаций тем, кто находится в начале пути.

1. Первое, что нужно изучить, и, на мой взгляд, самое важное — книги Василия Усова. Это самая краткая, понятная и нескучная информация по Swift, которую можно найти на просторах Рунета. Советую прочитать его «Swift. Основы разработки приложений под iOS, iPadOS и macOS» и «Swift. Разработка приложений под iOS на основе фреймворка UIKit». Эти книги в совокупности с практическими заданиями сформируют базовые знания по iOS-разработке.

2. Стоит обратить внимание на работу Глории Уинквист и Мэтта Маккарти «Swift для детей. Самоучитель по созданию приложений для iOS». Не позволяйте названию ввести вас в заблуждение — эта книга отлично подойдет для начинающих разработчиков любого возраста. Можно прочитать ее не полностью, а только вторую, практическую часть.

3. Изучите документацию по Swift. Если знаете английский, то читайте официальную, если нет, то ресурс SwiftBook вам в помощь.

В процессе самообучения я использовал такую схему:

• читал тему по книге Василия Усова;

• смотрел ее же по курсу Вячеслава Белого или Алексея Скутаренко на YouTube;

• закреплял все чтением документации.

Если чувствуете, что уже готовы взять уровень повыше, изучите курс CS193P от Стенфорда. Для его прохождения нужно владеть основами программирования. Понимающим английский подойдут материалы на сайте курса, остальным — текстовый вариант в переводе и частичный перевод на YouTube. И, чтобы отшлифовать полученные знания, рекомендую прочитать книгу «Грокаем алгоритмы» Адитьи Бхаргавы.

Дополнительно будет полезно изучить книги «Swift подробно» автора Чейрда Инт Вейна и «Beginning iOS Programming with Swift and UIKit» и «Intermediate iOS Programming with Swift» от Simon Ng.

Из специалиста по банкротству в Android-разработчики

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

За месяц мне удалось закрыть несколько задач, но в итоге проджект сообщил, что у меня низкий KPI, и нам нужно расстаться. Я был готов к такому повороту и чувствовал благодарность за первый ценный опыт — с помощью этого места я получил строчку в резюме и за две недели после увольнения нашел другую работу, где удвоил зарплату.

Там я около пяти месяцев фиксил баги в видеоредакторе, благодаря чему стал намного лучше разбираться в iOS-разработке. Оттуда я уволился, потому что считал, что дорос до более высокой зарплаты. Сейчас, оглядываясь назад, я понимаю, что сделал поспешный вывод — мне было еще, над чем работать. Я съездил в отпуск и по возвращении планировал найти новое место, но поиск затянулся, потому что этот период выпал на сентябрь 2022 года, когда iOS-вакансий моего уровня на рынке стало значительно меньше.

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

Моментами Android мне не нравился, потому что половина кода в проекте была на Java, и с iOS оказалось работать проще из-за синтаксического сахара. Если объяснять простыми словами, то это такой способ написания кода, который делает его более понятным для разработчика, укорачивает и упрощает написание. Но технически Java более интересный язык, потому что готовые синтаксические конструкции, которые есть в Swift, на Java зачастую приходится писать самому. В Swift и Kotlin этого сахара много, и ты не задумываешься, как язык работает «под капотом», особенно когда ты джун. Но мне пришлось в это вникать, и тогда я понял, что мне интересна IT-сфера целиком, а не только конкретная отрасль разработки. Возможно, в будущем я получу второе высшее образование по этому направлению.

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

В тот момент мне повезло найти вакансию Middle/Senior iOS разработчика от IT Test в Туле.

Я хотел работать в офисе, чтобы общаться с коллегами и быть частью комьюнити. Цели снова идти в iOS у меня не было, поэтому я попытал удачу и спросил, нужен ли компании специалист по Android. Благодаря этому я уже несколько месяцев работаю в IT Test на должности Junior Android-разработчика, хотя такой вакансии у компании даже не было. Меня быстро позвали на собеседование, которое оставило прекрасное впечатление: никогда раньше я не сталкивался с тем, чтобы интервьюер мне помогал и объяснял сложные моменты, когда я был не прав или не знал, что ответить. Даже если бы я не получил оффер, то остался бы доволен новыми знаниями, которые получил на интервью.

Сейчас в IT Test я занимаюсь несколькими проектами, среди которых криптовалютный банк и FATS — платформа автоматизированного QA-тестирования качества сборки смартфонов, планшетов, IOT-устройств и другой электронной продукции в режиме реального времени на производственной линии.

Из специалиста по банкротству в Android-разработчики

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

Пока я не попал в IT Test, мои родители не верили в существование условий, которые предлагают IT-компании — для них это было чем-то заоблачным. Поначалу они были расстроены моим отказом работать в прокуратуре, хотя сейчас довольны выбором связать свою жизнь с IT. Бабушка и дедушка отчасти до сих пор не могут это пережить, потому что для человека старой закалки быть прокурором — это престиж и огромное достижение. Но когда я сравниваю работу в прокуратуре и в IT Test, даже мой дедушка, самый упертый человек из всех, кого я знаю, все равно говорит «это хорошее место, ты молодец».

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

Изучите Computer Science, уделите особое внимание многопоточке, нетворкингу, структурам данных и алгоритмам. Отлично, если вы знаете не только ключевые принципы, но и дефолтные реализации. В случае с Android-разработкой — это RxJava, Kotlin Coroutines, Retrofit2 и okHttp. Актуальные фреймворки всегда можно найти в требованиях к вакансиям или в тематических Telegram-каналах.

Дополнительную ценность вашим скиллам добавит понимание основных проблем и способов их решения, например, как избегать race condition или не допускать deadlock'ов. Обычно такие знания приобретаются на практике, но начинающим специалистам будет вполне достаточно сделать несколько пет-проектов, чтобы освоить необходимый минимум.

Нужно понимать, что IT — это игра вдолгую. Если ты зашел сюда, то можешь точно так же выйти обратно, если не будешь постоянно развиваться. В этой сфере сложно построить что-то путное и долгосрочное без реального интереса, а заработать можно почти где угодно. Например, мои одногруппники-юристы делают хорошие деньги, но меня драйвят именно нетривиальные задачи в IT. Здесь ты можешь решать один и тот же вопрос множеством путей и инструментов, и это очень интересно.

Больше экспертных материалов о заказной разработке, дизайне и тестировании в Telegram-канале IT Test.

6565
47 комментариев

Очень вдохновляющая история!

10

Комментарий недоступен

2

Комментарий недоступен

21

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

8

ты при этом сам программист, отец, а такой бред выдал, даже я охуел.

7

Если он умеет хорошо сверлить и ставить пломбы, то в чем проблема? Вас будет расстраивать факт, что он не ходил в свое время в анатомичку?

Вадим красавчик! Так держать.

5