«Потратил 500 часов только на Java»: как я решил уйти в ИТ и написал свое первое приложение
Я родился и вырос в семье с низким доходом: постоянно была нужда в чем-либо, бывало, мы ели сухари неделю.
Видимо, в тот период сформировалось мое отношение к деньгам: всегда должна быть заначка. Таким образом, сколько бы я ни зарабатывал, всегда откладывал. Деньги «под подушкой» потихоньку подъедала инфляция — день за днем, год за годом. Тогда я начал искать возможности вложить деньги, чтобы они «зарабатывали» себя сами. Был и негативный опыт: я инвестировал в одного человека 1,5 млн рублей — с тех пор он от меня скрывается…
Чтобы копить быстрее, я начал искать новые способы заработка, рассматривал в том числе смену профессии. И сейчас понимаю, что максимальные суммы платят в ИТ.
Герой реалити входит в ИТ, чтобы зарабатывать больше и работать удаленно
Шаг 1. Пройти основы JAVA
Карьера
Моя карьера началась с оказания юридической помощи населению. Сначала бегал по судам, но разочаровался в судебной системе и в том, как вообще устроена эта «машина». Это был 2014 год. Потом я перешел в юридическую консультацию, где была уже сидячая работа на телефоне. Через пять месяцев меня повысили до руководителя юридического отдела. На этой должности я проработал почти год.
Зарабатывал очень хорошо, но сгорел, так как работал ежедневно с 09:00 до 21:00, без выходных. Был холостой, поэтому отдавал всего себя работе. Но из-за такого жесткого графика началась апатия. В один прекрасный момент я вышел на обед и понял, что стены офиса я видеть больше не могу. Уволился.
Пошел в продажи, но проработал там менее трех месяцев из-за неудовлетворительной зарплаты.
Решил стать ипотечным брокером. Это тоже были продажи, но условно-пассивные: никто никому кредиты-ипотеки не навязывал, нужно было только проконсультировать, подходит ли заемщик под условия банка или нет. А решение принимал клиент. У брокеров я был руководителем отдела продаж. Но компания была маленькая, расти было некуда. Следующий человек надо мной был генеральный директор.
И после этого со мной случилось настоящее чудо. Я устроился в дочку крупной и известной компании. Там также возглавлял небольшую группу людей: учил, контролировал, отвечал за их показатели и так далее. Сама компания, сотрудники, руководство и климат были просто мечтой. Я до сих пор с теплом вспоминаю эти два года, и иногда мне кажется, что я зря поменял работу. Уволился по простой причине: мне предложили должность выше.
Оказалось, что я карьерист.
Мои частые переходы от работодателя к работодателю можно объяснить либо тем, что я не видел перспектив и возможностей развития на текущем месте работы — слишком амбициозный, видимо, — либо выгоранием и разочарованием в том, чем занимался.
Почему ИТ
Всю свою жизнь я работал в режиме «дом — работа — дом». Пока в марте 2020 года нас всех не посадили на карантин. Благо частный дом и свой участок земли дают больше возможностей и свободы: работал я вообще в другом здании — каждое утро уходил в противоположный конец участка. Получалось, что я трудился удаленно с 09:00 до 18:00, а после работы заводил квадроцикл, и мы с дочкой катались по окрестностям: по полям, лесам, оврагам, рекам и так далее.
Примерно через пару недель таких поездок и более качественного проведения времени с дочерью я понял, как НЕ хочу жить: я не хочу жить на работе и тратить по два часа в одну сторону на дорогу до офиса и обратно. Ведь пока ты едешь на работу, твоя жизнь проносится мимо. Значит, нужно осваивать профессию, которая позволит работать удаленно. Здесь можно поставить еще одну галочку напротив ИТ-сферы.
А когда в июле карантин у нас в организации отменили, я волком взвыл: как же не хотелось никуда ездить, учитывая, что моя личная эффективность на удаленке только возросла, так как не было отвлекающих факторов в виде других сотрудников.
В сентябре 2020 года мне предложили руководящую должность в другой компании с зарплатой 140 тысяч рублей. На тот момент у меня была накоплена сумма, которая позволила бы прожить без источников дохода около полутора лет. Поскольку моя цель — накопления и я считаю каждую копейку, свои расходы я оптимизировал таким образом, чтобы 50% от зарплаты откладывать. Все свободные деньги перевожу на брокерские счета. У меня открыты брокерский счет и ИИС в Т-Банке, а также брокерский счет в Interactive Brokers. Акций более 100 штук. В декабре начал потихоньку покупать облигации, пока вложил в них 300 тысяч рублей. Около 40% капитала ― в долларах и рублях. Такой мини-ETF собрал.
Сейчас у меня три источника дохода:
- Зарплата — постоянный доход. Полная занятость.
- Оказываю услуги нескольким лицам — постоянный доход. Занятость — около трех-четырех часов в месяц. Суммы раскрывать не буду.
- Оказываю консалтинговые услуги — нестабильный и непрогнозируемый доход. Занятость — три-четыре часа на одного клиента до момента получения денег. Таких клиентов от трех до шести в год. За 2021 год удалось заработать около 200 тысяч рублей.
В один прекрасный день из-за внутренних бюрократических несостыковок в компании, где я сейчас работаю, мне сильно срезали зарплату. Поскольку я никогда не жил от зарплаты до зарплаты, то в первый месяц ничего не почувствовал. Более того, я рассчитывал, что нам выдадут премию, чтобы компенсировать недостачу. Но ожидания не оправдались, и в следующем месяце пришло всего 58% от зарплаты, то есть около 82 000 ₽. За такие деньги очень не хотелось работать. Точнее, так: за эти деньги я был готов только приходить на работу и протирать штаны, но не выполнять свои трудовые обязанности. Уже в тот момент готов был все бросить и искать новую работу, но понимал, что специализация довольно узкая и найти быстро, скорее всего, не получится.
Когда в третий месяц опять пришла сдача от зарплаты, я принял решение: надо идти в ИТ, чтобы в любое время быть востребованным специалистом и не иметь проблем с поиском работы.
Обучение Java
У меня уже был опыт изучения Java, но за четыре месяца я не прошел до конца даже первый раздел Java Syntax, завалившись на вызовах методов. Это когда ты какому-то объекту говоришь: «Сходи в тот участок кода, выполни алгоритм и верни результат этого алгоритма». Учился максимум два часа в день, терял концентрацию, не вникал в каждую строчку кода. Так как на работу добирался по два с половиной часа в один конец, занимался либо утром до работы — и для этого просыпался в пять утра, а в шесть выходил на работу, — либо после работы, то есть после 22:00, когда мозги уже отдыхали, а я их пытался чем-то напрягать. Поэтому концентрации и внимательности не хватало. Лекции читал, лишь бы прочесть, не вникал в суть. Как показала практика, так делать нельзя. Затем случился новый, 2020 год, и после недельного перерыва я просто не смог продолжить. За неделю все выветрилось. И я забросил.
И вот спустя полтора года, 24 августа 2021 года, я взялся за обучение уже более основательно. Договорившись с супругой, что я прихожу с работы, уделяю час ребенку и затем сажусь за уроки, начал усердно учить новый для себя язык. Сказал родным, что какое-то время придется потерпеть. Пока держимся, но есть некая неудовлетворенность от присутствия не мужика в доме, а его тени.
Я купил абонемент JavaRush на год за 5900 ₽. Обучение делится на четыре блока, блоки состоят из уровней, в каждом из которых 7—16 лекций:
- Java Syntax — 16 уровней;
- Java Core — 10 уровней;
- Java Multithreading — 10 уровней;
- Java Collections — 10 уровней.
Этот курс посоветовал бывший одноклассник, который сам начинал с него и в 26—27 лет стал программистом. Я решил пойти проторенной дорожкой, раз этот способ работает. Еще мне понравилось, что сразу дается полный доступ ко всем необходимым учебным материалам и заниматься можно в своем темпе. Если что-то не понял, можно перечитать хоть 100 раз. В комментариях другие студенты делятся ссылками на полезную литературу по теме. Если возникают трудности и нужно задать вопрос, есть форма обратной связи. В общем, очень удобная платформа.
Первый блок курса по Java я прошел, по-моему, за две недели. Помогло то, что раньше уже пытался учить язык. Но вскоре, что неудивительно, стало сложнее. Занимался в среднем по пять часов в день. После прохождения каждого блока сроки обучения корректировал в меньшую сторону. Курс я прошел менее чем за четыре месяца, что считается довольно быстро.
Если увидите рекламу курсов программирования «первая работа через два месяца» — не верьте.
За 100 дней непрерывного обучения я прошел полностью три первых блока и начал изучать Java Collections. И это я потратил 500 часов только на Java!
После обучения я мог:
- Написать программу по учету рабочего времени со сканированием карточек «приход» и «уход».
- Из эксель-таблиц или вордовских документов выбрать нужные данные. У меня был сплошной список наших клиентов, надо было выдрать адреса электронной почты, проверить их корректность, а также номера телефонов, написанные в разных форматах, например +7 (498) 432 03 01 и 891012345678, и привести их к единому виду. Для тех, кто в теме, — использовать регулярные выражения.
- Написать игру «2048». Правда, архитектура уже была, нужно было написать только алгоритмы — методы и связать их между собой.
Подобных задач в курсе много. Я заработал «достижение»: 800 задач и 100 дней кода. При этом остается страх, что чего-то не знаешь, а ведь так и есть — я очень много не знаю.
Начиная изучение Java, также решил купить книгу «Изучаем Java». Оригинальное название — Head First Java, ее многие рекомендовали. Но книга показалась тяжелой: тот материал, который уже прошел, шлифовался ею, а новый, неизученный материал по тексту из книги просто не мог понять. Все-таки подача очень важна. Остановился на 106-й странице, так и лежит на полке.
Курс по Android
После изучения Java встал вопрос, что делать дальше. Обратился к своему товарищу-программисту, он посоветовал AndroidSchool.ru, где ему понравились описание и содержание курса. И как раз через две недели начинался интенсив для начинающих — «Андроид с нуля». Я нашел преподавателя в «Телеграме», рассказал о себе и расспросил его о курсе, и его ответ меня удовлетворил.
Андроид выбрал в том числе потому, что эта операционная система используется везде: от телефонов до информационных панелей в автомобилях и кофейных автоматах с пользовательским интерфейсом. За день можно написать простое приложение для смартфона и сразу увидеть результат. Есть, например, ребята, которые пишут серверные алгоритмы. О результате своей работы они могут судить только по метрикам и не могут показать этот результат никому, кроме технического директора. И представьте, какая будет мотивация, если ты что-то пишешь неделю, а потом это работает на твоем телефоне, приложение скачивают тысячи людей и выражают тебе благодарность. Специалист, пишущий код бэкенда, этого никогда не почувствует. Его работу простой обыватель не увидит и не оценит.
14 декабря начал курс по Андроиду. Приобрел я его за 32 000 ₽. Считаю, что этих денег он не стоит. Курс построен на поэтапном создании приложения — от простого к сложному. Но мы делали приложения кусками, элемент за элементом, при этом общую картину я так и не увидел, поэтому сложно было связывать некоторые элементы между собой.
А теперь для тех, кто ничего не понял. Чтобы приготовить пельмени, нам необходимо взять кастрюлю, налить в нее воды, посолить… Совершая эти действия, мы понимаем, каков будет конечный результат. Вот во время прохождения интенсива я не понимал, что мы делаем и зачем. В презентации были слайды с теорией и немного слайдов с кодом. Мне, как человеку, никогда не работавшему с интерфейсами, было сложно сориентироваться.
Когда тебе что-то непонятно, выход один: искать решение в интернете или на «Ютубе». Так я случайно наткнулся на канал Neco Ru, где за неделю посмотрел полностью «Курс по Kotlin для начинающих 2021», 36 видеоуроков. Благодаря его урокам я действительно понял, что такое андроид-разработка. А идея и главная ценность курса в том, что автор сразу при тебе пишет код и объясняет каждое свое действие. Благодаря этому пришло не только понимание, но и уверенность в собственных силах.
Занятия по моему основному оплаченному курсу проходили по понедельникам и четвергам. Домашние задания я делал за несколько часов, а в промежутках между обучением смотрел уроки от Neco — Сергея Киселева.
29 декабря купил на Udemy курс Shopping List, состоящий из 62 лекций. После 17-й лекции у меня в голове сложилось базовое представление, по каким принципам работает андроид-приложение.
Мои первые приложения на Google Play
Я инвестирую с 2019 года. В этом мне помогают регулярные выпуски на ютуб-канале Дмитрия Солодина. По его аналитическим обзорам компаний я совершаю сделки. Но несколько раз было такое, что я покупал какую-то бумагу, а через пару месяцев не мог вспомнить, зачем ее купил. Приходилось перелопачивать много видео, чтобы найти обоснование покупки. И тут у меня появилась идея: а почему бы не сделать сортировку его выпусков по запрашиваемому тикеру? И, отложив все учебные процессы и планы, 7 января я принялся за реализацию этой идеи. Сразу скажу, что мне не хватало знаний. Тем не менее у меня было четкое понимание, как это должно работать, откуда должны браться данные, как должны сортироваться, как отображаться, — это и помогло не сбиться с пути.
Приложение писал по принципу «чтобы работало». Нужно выполнить такую-то операцию — ищем в интернете. Находим какого-то индуса, плохо говорящего по-английски, но при этом показывающего, как это сделать. Так, с задачей справились. Что дальше? Ага, необходимо выполнить сетевой запрос — как это сделать? Опять ищем в интернете решение. Для технарей: нашел парсинг базы данных через Volley, а не через Retrofit, через месяц я уже сам переписал на Retrofit. Таким образом, менее чем через две недели я загрузил свое приложение на «Гугл-плей».
Кстати, регистрация аккаунта разработчика в «Гугл-плее» стоит 25 $ (2926 ₽) пожизненно, а в «Эпсторе» — 99 $ (11 585 ₽).
Дизайн сделала моя сестра, которая учится на дизайнера, и этот проект ей очень удачно лег в портфолио. После того как модераторы одобрили приложение и оно стало общедоступным, я испытал некоторое удовлетворение, и оценки 5 баллов воодушевляли. Но буквально через пару дней после выпуска приложения мне пришло письмо от одного из пользователей с просьбой включить в него еще одного блогера. Тогда я решил сделать второе приложение, но уже «по-взрослому», чтобы код был не уровня «детский сад, трусы на лямках».
В итоге за неделю я создал приложение, которое называется «Опыт инвестора». Для технарей: приложение написано с использованием MVVM, Single Activity, Retrofit, Coroutines, Clean Architecture. Второе приложение работает заметно быстрее первого.
Хронология:
- 13 декабря — ничего не знаю про Андроид.
- 14 декабря — первое занятие по Андроиду.
- 7 января — начал писать свое первое приложение на Андроиде.
- 19 января — загрузка приложения в «Гугл-плей».
- 27 января — приложение доступно для скачивания.
Итого: 45 дней понадобилось для выпуска первого полезного приложения.
Траты и выводы
Порог входа в профессию довольно высок в финансовом плане.
Считаю, что основы Java я уже прошел. Заплатил 5900 ₽ за годовой курс и 1300 ₽ за месячную подписку.
Книга Head First Java — 1300 ₽. Опциональная трата. Можно либо вообще ее не покупать, либо скачать на просторах интернета ПДФ-версию.
Курс «Онлайн-интенсив по андроид-разработке» — 32 000 ₽. Показался мне очень сложным с точки зрения подачи. Особенно тяжело, когда объясняют не весь материал и очень много приходится искать в сети.
Курс на Udemy на тему Persistence Room Library — 495 ₽.
Курс на Udemy по FireBase — 1480 ₽.
Курс Kotlin Corounite на сайте Start Android — 2240 ₽. Что привлекло: три первые лекции можно прослушать бесплатно, чтобы познакомиться со стилем изложения и понять, подходит ли вам такой метод подачи информации. Вся информация, которая давалась в первых трех лекциях, была для меня очень доступна.
Курс на Udemy «Андроид профессиональный уровень» — 849 ₽. Посмотрев на «Ютубе» несколько роликов про собеседование на позицию джуниор андроид-разработчика, понял, что некоторую часть теории я не знаю. С помощью этого курса планирую закрыть пробелы, плюс там много практики.
Кстати, я понял, что жалеть денег на образование ни в коем случае нельзя. Я не говорю, что нужно платить любую цену, наоборот, важно внимательно изучить, что ты получишь за эти деньги, но лучшая подача информации не будет бесплатной. Бесплатная информация тоже есть, но она вся разрозненная.
На Новый год я подарил себе широкоформатный 34-дюймовый монитор. Кто-то работает с двумя мониторами обычного формата — 16: 9, но я решил попробовать широкоформатный — 21: 9. Он дает на 33% больше визуальной площади по сравнению с обычным 16: 9. Два обычных или один широкоформатный монитор нужен для того, чтобы можно было открыть два или даже три окна в один ряд. Очень удобно найти какой-то материал в интернете и переписать его в Android Studio без переключения окон.
Для удаленной работы пришлось купить новый ноутбук я много перемещаюсь, поэтому ПК не рассматривал. Сначала ориентировался на 60 000—70 000 ₽, так как за эти деньги можно взять ноут с SSD на 256 Гб и 16 Гб оперативки, процессором AMD Ryzen 5 или Intel Core i5. Но, пообщавшись с товарищем, который работает сениор андроид-разработчиком, выбрал Макбук-эйр с процессором M1 на 16 Гб RAM. Отдал за него 140 000 ₽. Их тоже вписываем в потенциальные расходы.
В декабре были и другие крупные траты. Например, я сделал лазерную коррекцию зрения — как раз на 103-й день моего изучения Java. Поэтому три дня у меня был вынужденный перерыв в программировании, а мой кошелек похудел почти на 110 тысяч рублей, в которые вошли операция, анализы и глазные капли.
Еще резко появились планы дооборудовать свое жилище. Потратил 50 000 ₽ на верхнюю часть кухонного гарнитура и шкафы, 96 000 ₽ — на натяжные потолки. Еще необходимо установить душевую кабину и исправить мелкие недочеты. На ремонт выделил 300 000 ₽, но уже кажется, что не уложусь в эти деньги: все так сильно подорожало.
На удачу
Я хочу устроиться в продуктовую компанию, которая делает полезные для людей приложения, чтобы свою работу не стыдно было показать маме. Это некоторое мерило качества. Поэтому, если потенциальный техлид дочитал до этого места — напиши мне, возможно, мы поработаем вместе! Как показывает практика, я способный.