Всем привет! Пишу свой первый пост на Хабре, так как поймал вдохновение рассказать о небольшой истории своего пути становления разработчиком. Моя цель - помочь таким же, как и я молодым ребятам сделать свой путь чуть проще и дать советы, исходя из моего собственного опыта.
Мне на данный момент 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 отключился и чат перестал работать. Я скоро уберу приложение из рустора, но вам оставлю пока ссылку и также ссылку на гитхаб с кодом приложения, сразу скажу я делал его, когда не знал многих вещей и как что-то лучше написать, не судите строго.
Наше время
В июне мне исполнилось 16.
Дня три назад я начал разрабатывать свое новое приложение. Это был как проект, закрепляющий мои некоторые знания, такие как работа в фоне (уведомления, ежедневный и еженедельный сбор статистики), например. Это приложение для медитации, с очень красивым дизайном:) Сегодня я отправил его на проверку в Google Play и оно скоро выйдет, я провел много тестов, также сделал закрытое тестирование с 2мя тестировщиками. Мне очень зашел этот опыт.
К сожалению, пока не могу дать ссылку на приложение, так как оно не опубликовано, как опубликуют прикреплю комментарий с ссылкой, кто захочет - затестит.
Могу показать пару скриншотов из него:
Итог
Итак, хочу дать пару советов молодым, начинающим разработчикам.
-
Учитесь на актуальных данных
-
Тщательно подходите к выбору сферы, затем углубляйтесь и изучайте, легко не будет, это я вам могу сказать точно
-
Программирование - это не про деньги, тут на одной мотивации про деньги долго не протянешь. Программист это такая же профессия, как и пожарный или полицейский, например. К профессии, какой бы она ни была, должна, в первую очередь лежать душа, а если вы в душе дизайнер, но хотите стать программистом из-за большей зарплаты, то ничего не выйдет.
-
Чем больше практики, тем лучше. Нет, даже не так, чем меньше практики, тем меньше шансов, что ты станешь разработчиком:)
-
Не сдавайтесь
-
И еще раз не сдавайтесь!!
Огромное спасибо, если вы прочитали мою небольшую историю до конца, я извиняюсь, если это было немного тяжело читать, так как это мой первый пост тут, надеюсь вы смогли получить какую-то полезную информацию из моего текста.
В моих планах найти интересную команду и работать над не менее интересными проектами.
Я пойду учиться дальше и придумывать новые проекты, ведь знаниям в разработке нет предела :)
P.S.: для связи, если кому-то нужно, мой тг: @igordudka
UPD: https://play.google.com/store/apps/details?id=com.igordudka.medita - ссылка на приложение
Автор: Игорь Дудка