Мне 14 лет, и я совмещаю учёбу с работой в ИТ
История московского восьмиклассника, который пару раз попадал на главную Product Hunt c личными проектами, а еще пишет Slack-ботов, которые используют десятки команд разработки в Skyeng.
Когда мне было семь, папа купил наш первый Arduino. Мне стало интересно, как это работает. Я стал копатьcя в программах, что написал отец, и так попробовал C++. Быстро поняв, что «плюсы» для первоклассника как-то не очень, а вот программировать мне интересно, я засел за Scratch. Когда перерос его, отец показал пару приёмов на Python, а потом были jQuery, JS-фреймворки и Node.js. И вот он я :)
Учил английский, читая документацию
Все началось как раз с Arduino. У меня не было нормальной документации на русском, а на официальном сайте всё было на английском. Школьный учитель языка вряд ли бы помог с техническими текстами. А учитель информатики показывал нам, как рисовать в Paint.
А настоящий прорыв случился, когда я осваивал Scratch. Благодаря англоязычному комьюнити я перестал стесняться отвечать на вопросы и что-то комментировать. Короче, сломал языковой барьер и начал пользоваться английским по-настоящему, как инструментом.
Когда я стал экспериментировать с Python и JS, это очень пригодилось: умение читать и говорить на иностранном может завести вас очень далеко :)
Мои личные проекты
Всего их уже больше 50, но я расскажу о нескольких.
Первый коммит на GitHub — 1 ноября 2015 года
Моя первая игра на Python.
Никакого сюжета: ты управляешь кораблем (его имитирует треугольник) и лопаешь пузырики, которые изображены как кружочки. Всё рисуется на ходу.
Первая веб-страничка
Я сделал домашнюю страницу для браузера: простая поисковая строка и кнопки «Открыть в Google», «Открыть в WolframAlpha» или «Открыть на YouTube».
Мне понравилась веб-разработка, и я начал активно смотреть, что ещё могу.
Первый раз, когда меня зафичерили на Product Hunt
Летом 2018 года я листал эппловскую документацию и увидел, что у них есть веб-API для музыки. В школе у нас часто была проблема: когда мы устраиваем какой-либо праздник или вечеринку, все жёстко рубятся за право включить свою музыку. Я решил сделать сервис, который решит проблему.
Задача выложить продукт на Product Hunt заняла 10 минут: отправил заявку, чувак с той стороны написал: «Мы тебя фичерим, но перепиши, пожалуйста, описание. Оно так себе». Я сказал: «Окей». И все закрутилось)
Docket — «Tinder для составления списка покупок»
Еще один проект, который зашёл на Product Hunt.
Чтобы найти данные для приложения, я дошел до пятой страницы Google и нашел дата-сет с перечнем продуктов без указания брендов (просто «молоко», «огурцы»). На его основе я составил список продуктов с рейтингом популярности, чтобы первым показывались не какие-нибудь оливки, а молоко.
Когда пошёл трафик из соцсетей, кто-то написал: «Слушай, всё здорово, но свайпы поменяй местами, в Tinder же наоборот». А мне 13 лет, я таким не пользуюсь, откуда мне знать, в какую сторону там свайпы?! Родители поржали.
Как я попал на стажировку в ИТ-компанию
Мой уровень английского уже был выше, чем могли дать в школе, и появилось желание расти в этом плане. Родители записали меня на языковые курсы: я ходил туда, пока не стало жаль тратить время на дорогу. А затем начал заниматься в Skyeng.
Я был не только активным студентом, но и высылал обратную связь по платформе. В один момент продакты компании создали чат для активных пользователей в Telegram, добавили меня в него. Я начал использовать чат, чтобы слать баг-репорты: не совсем критичные, но интересные. Например, на iPad не работал мягкий скроллинг, и я выдвигал свои гипотезы, почему так может быть.
Родители были не против, я прошел собеседование-созвон, и меня взяли стажёром. Даже без тестового на час, которое дают всем взрослым программистам :) Папе, конечно, ещё пришлось пособирать документы: чтобы я мог официально работать с 14 лет, ему надо было получить согласование от районного отдела социальной защиты и не только.
Меня определили в отдел простых задач: я стал одним из двух людей в Skyeng, которые пишут ботов для автоматизации быта разработки и других отделов. По мне, это было хорошим стартом: взять и положить что-то важное я не мог, а любой ущерб от возможных ошибок был бы минимальным.
Первые задачи
Первым стал бот, который гарантировал прочтение важных сообщений. Мы назвали его Yellbot: если критически важно, чтобы кто-то прочитал ваше сообщение, отправьте его через бота. Yellbot будет обновлять нотификацию, пока ты не нажмешь «Я прочитал» под сообщением.
Затем я сделал бота по имени Jake. Он автоматизирует техревью — процесс обсуждения задач в команде разработки. Раньше тимлид руками собирал тикеты из Jira, категоризировал и выкладывал в канал команды, чтобы ребята проголосовали за задачи, это занимало примерно час. Теперь все это делает бот.
Мои коты, мое богатство =^·.·^=
С тех пор я сделал несколько десятков ботов и заметил одну вещь. Раньше, когда я выкладывал решение на тот же Product Hunt, оно было востребовано пару дней. Теперь, когда я что-то создаю, знаю, что этим будут пользоваться месяцы и даже, может быть, годы.
Как совмещаю работу со школой
Сейчас я в восьмом классе матшколы №57. В этом году тут открылся спецкласс по информатике: заявилось несколько сотен ребят, даже из других школ и городов, конкурс был открытым. Я очень переживал, пройду ли. Чтобы повысить шансы, попросил Сашу Ларьяновского, управляющего партнёра Skyeng, написать мне рекомендацию.
У нас очень много информатики: в понедельник — два часа, в четверг — ещё два, в субботу — шесть. Причём это именно продвинутый курс: мы осваиваем алгоритмы, пишем на C++, у нас есть и математический анализ («люблю» его всей душой).
А ещё школа — это семь-восемь уроков в будни и девять в субботу, так что работаю я не каждый день. Да и по закону время работы подростка, пока ему не стукнет 16 лет, ограничено. Так что обычно все происходит так: пришёл домой, поел, попрокрастинировал, а там, когда есть время и хочется покодить, беру рабочие задачи, а потом — уроки делаю.
Когда появляется новая задача, я оцениваю время на разработку в часах, но предупреждаю, что у меня эта работа может растянуться на неделю-другую. Дальше заказчик сам решает: отдать задачу кому-то из ребят на фултайме для срочной разработки или поручить её мне.
Раз в две недели у меня проходит синк с проджектом, чтобы она понимала, что я сейчас делаю. Бывает и код-ревью от ребят. Ещё, как и всех, меня просят логировать время в Jira: я просто выгружаю данные из Toggl, там они точнее.
На что трачу заработанное
Часть денег уходит на всякие подписки и софт для личных проектов:
- Hetzner — хостинг моего личного сервера.
- Трекер сна Pillow: недавно я понял, что сон — это важно.
- Zeit — хост для Node.js-проектов.
- iCloud на 2Тб — для бэкапов.
- 1Password — потому что как же без него жить.
- Notion — для конспектов и как замена Jira для личных проектов.
- Setapp — 140+ приложений для macOS за $5 в месяц (со студенческой скидкой).
- Fantastical — очень крутая замена нативному календарю на iOS и macOS.
- «Яндекс.Плюс» — ради скидки на «Яндекс.Еду» и «Лавку» (с тем количеством еды, которую я и мои друзья заказываем в школу и домой, эта подписка окупается!).
- Nintendo Switch Online, Netflix, Apple Music и прочие развлекательные сервисы.
Как это изменило мою жизнь
Большой плюс моего нового положения — стали пускать на конференции. Папа работает в Mail.ru Group, там много всего интересного проходит: раньше приходилось просить его выписать мне гостевой пропуск, чтобы я мог пройти «зайцем». А сейчас я просто подаю заявку: «Ребят, я разработчик из Skyeng». Они такие: «Заявка одобрена».
В основном хожу на мероприятия про фронт и мобильную разработку.
А ещё я окончательно определился с тем, что хочу работать в ИТ. Закончу 11 классов, а там — или в сильный вуз вроде Вышки, или попробую поступить в иностранные университеты.