Моя история: разработчик в 16

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

Мне на данный момент 16 лет, я еще учусь в школе и умею разрабатывать приложения под Android. Тяжело оценивать свой уровень, когда ты еще не можешь устроиться на работу, но посмотрев требования и выполнив разные тестовые задания, я понял, что на джуна я могу точно (я знаю, что также важен опыт работы в команде и т. д.).

Разделю свою историю на 3 части.

Начало пути

Так как мой отец — программист, меня тянуло ко всем технологиям еще с детства. Я шарил за винду уже лет в 9–10 (не помню точно), во 2–3 классе я уже спокойно сносил пароль админа. Помню даже снес пароль от родительского контроля на айфоне:)

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

Лет в 12 я решил попробовать начать кодить, понять что это такое. Помню, было приложение SoloLearn, там были текстовые уроки к разным языкам программирования. По классике, я начал с Питона. Мне все казалось таким простым,  быстрым к изучению, но я, к сожалению, еще не понимал очень многих вещей в мире программирования. Я не понимал для чего учат тот или иной язык, для меня было изучение синтаксиса языка = устройство на работу.

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

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

Лет в 13 я метался между созданием сайтов и созданием мобильных приложений, мне было очень трудно определиться что изучать. Немного посидев с JavaScript, Django и HTML я решил, что мне это не очень интересно и я буду пробовать себя в разработке приложений под Android. Почему не под IOS? Скажу честно, цена за аккаунт разработчика (Google 25$, Apple 100$ ежегодно), а также не было возможности иметь Macbook. Но даже сейчас, меня не тянет к яблоку больше, чем к Андроиду, мне интересны обе платформы одинаково.

Муки и тяготы

Определившись с направлением разработки, я выбрал язык, им стала Java. Это было начало пандемии, весна-лето 2020 года, мне было 13 лет. Kotlin тогда еще только становился стандартом Андроид разработки, а все обучение было по прежнему на Джаве.

Я искал в инете, где мне учить Джаву, фаворитом стал JavaRush, читать книжки я не мог, мне просто становилось слишком скучно (об этом позже). Моя главная ошибка была в том, что я не купил курс с кучей практики, а просто смотрел уроки, я ничего не понимал, знания не закреплялись, практики не было, мне было тяжело и непонимание 80% вещей тянуло меня закончить все это.

Почему то я решил, что знаю Джаву достаточно хорошо, чтобы начать учить Android. Я скачал книжку Head First Android. Скажу честно, моего знания Джавы хватило на ту книжку, но к сожалению, я ее не дочитал. Я думаю всему виной моя вторая ошибка. Берусь за изучение чего-то и не доучиваю до конца. Немного Питона, немного Джавы, немного Android, а в итоге получается какой-то перочинный нож.

Период 2020–2021 год был, наверное, самым тяжелым до сегодняшнего момента в моем изучении мира айти. Я вроде что-то умел, но знал только базовые вещи (такие как Activity, Intent, XML разметка). Я помню, в это время я начал опять скитаться, задавал 10000+ вопросов на Хабре, что делать, как учить, где учить. Я делал все, кроме того, чтобы учиться. Ну и, конечно же, мне мешал возраст, 13–14 лет это все таки не так много для того, чтобы понять сложный мир Android разработки.

Я немного подзабил на Android и сделал упор на олимпиады. Кодил на Питоне, даже стал первым в городе (на регион тогда не поехал, потому что 8й класс).

Становление на путь верный

Я считаю, все изменилось в тот день, когда я узнал о Jetpack Compose. Это была осень 2022 года, кстати на тот момент я уже изучил Котлин, не помню как и когда, но знал я его уже более-менее.

Я понял, что это очень круто, когда код можно не разделять на интерфейс и бэкенд, а просто писать все на одном языке. Я считаю, этот момент сыграл ключевую роль. Насчет обучения, все было очень просто, я просто зашел на сайт google.developers.com и увидел там курсы для начинающих на джетпаке. (тогда они были еще не такими классными, как сейчас, так было раздела 4 и они были в тестовом режиме)

Было очень много практики, каждый коделаб состоял из теории (20–30%) и практики (70–80%). Я скажу так, эти курсы — просто подарок, причем бесплатный, так что, если кто не знает с чего начать карьеру Андроид разработчика, то учите Котлин и бегом туда.

Я учился каждый день по 2–3 часа, иногда меньше из-за школы, мне очень нравилось и мне было очень интересно. Каждый день изучал что-то новое и подкреплял приложением.

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

Я изучил много вещей, таких как, DI (Hilt), Room, DataStore preferences, States, Flows, анимации, Retrofit, интеграция с Firebase, MongoDB, Broadcast Services (Alarm Manager) и продолжаю учиться дальше. Свои основные знания и их структуризацию я получал, когда делал проекты.

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

Немного фриланса

Я хотел поработать над реальными проектами и заработать первые деньги, вообще понять как это. Создал профиль на Кворке и сделал объявление. Примерно через 3 недели мне написал заказчик, мы договорились по цене и я начал делать какую-то игру. За игры я не шарил и мне это не особо нравилось, но платили они очень неплохо для ру фриланса. За простое приложение, которое я делал 2–3 часа 4500р. Но я все равно считаю, что я получил опыт из этого, так как в требуемых приложениях/играх были вещи, которых я еще не знал и мне приходилось их изучать (работа с файлами, звук).

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

Разработка своих приложений

Именно из-за фриланса, я понял, что могу делать приложения. Моим первым большим проектом был чат с Chat GPT. Я делал его около двух дней и решил выложить в RuStore (сейчас там 250+ скачиваний). Отзывы были очень хорошие, я был очень рад, что смог сделать что-то полезное.

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

Rustore

Github

Наше время

В июне мне исполнилось 16.

Дня три назад я начал разрабатывать свое новое приложение. Это был как проект, закрепляющий мои некоторые знания, такие как работа в фоне (уведомления, ежедневный и еженедельный сбор статистики), например. Это приложение для медитации, с очень красивым дизайном:) Сегодня я отправил его на проверку в Google Play и оно скоро выйдет, я провел много тестов, также сделал закрытое тестирование с 2 мя тестировщиками. Мне очень зашел этот опыт.

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

Могу показать пару скриншотов из него:

Также тут есть много анимаций

Также тут есть много анимаций

Экран медитации

Экран медитации

Итог

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

  1. Учитесь на актуальных данных

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

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

  4. Чем больше практики, тем лучше. Нет, даже не так, чем меньше практики, тем меньше шансов, что ты станешь разработчиком:)

  5. Не сдавайтесь

  6. И еще раз не сдавайтесь!

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

В моих планах найти интересную команду и работать над не менее интересными проектами.

Я пойду учиться дальше и придумывать новые проекты, ведь знаниям в разработке нет предела :)

P.S.: для связи, если кому-то нужно, мой тг: @igordudka

© Habrahabr.ru