Flutter и фриланс в школе
Привет, Хабр!
Меня зовут Вася, это моя первая статья тут, поэтому не удивляйтесь куче всяких кривых цитат и спойлеров, я учусь в 11 классе, с августа 2020 года работаю с Flutter, а с марта прошлого года занимаюсь коммерческой разработкой мобильных приложений на фрилансе. Сегодня хочу рассказать о том, как я совмещаю подработку с учебой в школе и какие у этого есть последствия
Спойлер для тех, кому лень читать
Идеология
В марте 2023 года, листая мемы про программистов в ВК, я подумал:
Блин, чето много фигни с тупым опытом работы, а я типа ну только Flutter знаю, а, он ж вообще не популярный, как мне потом-то работу искать без опыта... Надо чето с этим делать
Это и правда была очень умная мысль, особенно, если учитывать то, что я далеко не гений, а мне в следующем году ЕГЭ нужно сдавать, ну да ладно
Официальную работу я, конечно, искать не решился, поэтому полазил по фриланс платформам и столкнулся с некоторыми проблемами:
Работы много... но и исполнителей тоже, особенно на иностранных платформах, где есть куча людей, готовых работать буквально за еду. Не скажу, что я бы тогда за еду работать отказался, но без опыта сквозь поток этих людей трудно пробиться
Очень много заказов, которые нужно сделать за 0 секунд, качественно, применяя все архитектурные паттерны, без четкого ТЗ, просто по экранам с Figma, за такие заказы обычно хорошо платят, но со школой такое совмещать сложно, поскольку нужно работать 24/7
Нет опыта работы - это, пожалуй, ключевая проблема, из-за которой найти работу будет сложно, потому что на фриланс биржах работают люди с большим опытом, а у меня его просто не было
Стратегия
Раз уж я школьник, у меня нет опыта работы, нужно брать другими качествами, которые, возможно привлекли бы заказчика. Поэтому в своих откликах я писал про все: что стал призером олимпиады в 9 классе используя Flutter, что времени много у меня, что работаю скорее за опыт, чем за деньги, что быстро печатаю, поэтому могу быстро сделать заказ, что хоть опыта у меня и нет, но технологию изучаю уже очень давно, поэтому я крутой и все дела
С такой стратегией я залетел на Хабр фриланс и откликнулся на несколько заданий, которые мне показались относительно простыми. Какое-то время ответа я не получал, уже подзабил на свою идею, но потом мне в телеграм, который я оставлял при откликах, прилетело:
Приветствую
Первый опыт
Ура! Меня возьмут на работу. Поздоровался.
Следующим сообщением была ссылка на дизайн... А при дальнейшем общении с заказчиком я столкнулся с проблемой 2, и с еще двумя новыми проблемами:
чтобы понять заказчика, нужно прочитать сообщение раз 5, а потом 5 минут думать, что он хотел сказать... но со временем это приходит
Человек пишет Flatter...
Задачей была разработка приложения для сети АЗС по дизайну из Figma. Ну и, конечно же, на вопрос, о том, сколько времени дается на проект, мне отвечают, что его нужно было еще вчера сдать... Ну ладно, думаю, экранов не так много, за неделю сделаю... Сделал, оказалось, что нужно еще к API подключать, потом новые экраны добавились... Потом то, се, пятое, десятое... В итоге проект затянулся на полгода, приложение планировали выложить в сторы, но в итоге просто продали
Но не все так плохо, работал я мало, максимум часов 20 в неделю, этот заказчик дал мне более крупный проект, с ним уже ТЗ сильно не менялось, но тоже свои приколы были, возможно, расскажу в будущих статьях. Находил другие проекты на фрилансе, а потом меня уже начали рекомендовать знакомым, поэтому заказов было довольно много, в общем, часть времени, отведенного на деградацию, теперь уходила на работу.
Должен признать, что работа относительно сильно утомляет + ко всему она довольно интересная, поэтому после нее довольно сложно готовиться к тому же ЕГЭ или делать домашку. Иногда дают очень сложные, но интересные проекты (например, интегрировать NFC-модуль в приложение), которые утомляют еще больше, но, мне кажется, это отличный опыт работы для резюме и повод изучить что-то новое
Про сам Flutter
Для несведущих, вкратце, Flutter - фреймворк для языка Dart, который придумали модные ребята из Google, чтобы делать приложения под ВСЕ платформы единым кодом
Поскольку проекты мои были небольшими, при их разработке я использовал:
GetX, Provider, StatefulWidget - State Management
GetX, Go_router, Navigator - Routing
SharedPreferences, Get_storage - Storage
В целом, главный гемор - это связка API и фронта, потому что все бэкендеры разные, довольно сложно адаптироваться под каждую архитектуру, но, если разработчик общительный и готов чуток объяснить свои гениальные идеи, то все довольно легко получается. В будущих проектах планирую таки подключать flutter_bloc, поскольку пакет популярный и довольно удобный, но это в будущем)
Результаты
Для себя, я результаты своей работы четко разбил на положительные и отрицательные, поэтому, думаю, стоит поделиться ими именно в таком виде
Положительные:
ПОЛУЧЕН ОПЫТ РАБОТЫ. Для меня это самый главный результат, именно для этого мне и нужно было работать, поэтому считаю это главным достижением. Причем получен опыт как для резюме, так и для самого себя, теперь я знаю свои сильные стороны, слабые стороны, понимаю, хочу ли я дальше заниматься разработкой на Flutter (определенно хочу), понимаю, какую архитектуру я буду использовать для будущих проектов. Я научился работать с заказчиками, пусть и не очень хорошо, но научился, хотя бы базовое понимание пришло, я открыл для себя новые пакеты flutter, стал более открытым, поэтому теперь не боюсь попросить бэкендера поменять формат даты на бэке на удобный мне
Сформирован стартовый капитал для взрослой жизни. Да, это тоже для меня очень большой бонус, потому что, например, если в хороший ВУЗ я поступить не смогу, не нужно будет брать образовательный кредит, да и вообще деньги никогда не лишние)
Сформированы связи с людьми, у которых я в ВУЗе скорее всего смогу найти part-time подработку, в случае, если не смогу работать full-time
Отрицательные:
Можно было время работы потратить на LeetCode и попробовать выиграть олимпиадки, чтобы поступить в ВУЗ БВИ, но я думаю, что все равно слишком глупый, чтобы что-то там выигрывать, поэтому я не так много потерял.
У моих сверстников есть больше времени на подготовку к экзаменам
Усталость. Когда к 40 часам в неделю в школе + полтора часа на поездки туда-обратно, добавляется 10-20 часов работы + 10 часов дополнительных курсов, после 10 класса, где были только уроки, довольно сильно устаешь. Но это также и плюс, поскольку учишься со своей усталостью бороться
Мало времени остается на свои проекты. После работы хочется отдохнуть, поэтому над своими проектами возможно работать только в те дни, когда не так много работаешь или когда не идешь в школу)
У меня в окружении нет разработчиков, а когда очень много времени уходит на работу, не очень получается вникать в какие-то другие хобби и так далее, поэтому тем для разговора не так много. Возможно, именно поэтому я статью эту и пишу
Сидячий образ жизни, поэтому приходится иногда просто по комнате круги нарезать
Выводы
Мне кажется, что плюсы сильно перевешивают минусы, поэтому искать работу определенно стоит, особенно если знаешь, кем хочешь работать и можешь работать удаленно
Даже если нет опыта работы, все равно есть смысл откликаться на интересные работы, но при этом стоит указывать все свои плюсы и минусы
Стоит браться за сложные задачи, но не стоит делать так, чтобы слишком много времени уходило на работу, не рекомендую работать больше 4 часов в день
Нужно понимать, что для работодателя возраст - это не повод делать поблажки, поэтому нужно успевать сдавать проекты вовремя, чтобы их не отдали крутому взрослому разработчику
Учите Flutter - он моднейший))
Надеюсь, что-то полезное в статье было, в будущем планирую рассказать про свои проекты и опыт взаимодействия с командой и заказчиками, если интересно - жду комментариев
Удачи!