Укр
Карьера в IT со школьной скамьи: история юного разработчика

Карьера в IT со школьной скамьи: история юного разработчика

  • 29 октября, 2021
  • читать 10 мин

Современные родители много думают о будущем своих детей.

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

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

Герой этого интервью — 16 летний Саша, он учится в 11 классе и закончил 7 курсов по программированию для детей в Hillel IT School, а сейчас работает Back-end разработчиком.

Расспросили нашего самого юного сотрудника о любви к программированию, собственных проектах и планах на будущее.

Когда ты увлекся программированием?

Я с раннего возраста увлекался мелкой электроникой, думаю, у меня появилась тяга к инженерии благодаря конструкторам «Знаток». Но мама понимала, что мне не хватит таких простых вещей.

Когда мне было 11 лет, мама увидела рекламу детского лагеря Школы Hillel, где учат программированию, и я захотел записаться.

После первого же занятия я подошел к преподавателю Юре и спросил у него, получится ли у меня поработать с платформой Arduino (учебная платформа для разработки — прим. ред.), ведь мне казалось, что это сложная задача, но он мне помог разобраться в ней.

Аппаратная платформа Arduino

После этого разговора мы с мамой пошли в магазин радиоэлектроники и купили Arduino.

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

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

Практически каждый день мы ходили с мамой после курсов покупать различные детали, и вот уже 5 лет я увлекаюсь инженерией.

Ты продолжаешь что-то собирать?

Да, сейчас делаю систему типа «умный дом» — она состоит из камеры, управления уличным светом и поливом.

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

И как успехи с проектом?

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

Первая была простой, но уже не на Arduino, а на AVR микроконтроллере, Attiny13. У нее не было интерфейса управления, только кнопка запуска насоса и датчик дождя. Настройки интервалов проводились прямо через прошивку. Система была полностью автономной и питалась от солнечных панелей и аккумуляторов, не используя сеть.

На следующий год я ее полностью переделал. Она была собрана снова на ардуиновском контроллере Atmega 328, имела сравнительно удобный интерфейс настройки в виде дисплея и нескольких кнопок.

В следующем году я снова ее пересобрал на wi-fi модуле подключил к интернету через 4G модем, а зимой, когда полив был не нужен — добавил камеру, которая включалась каждые 30 минут и делала фотографию для таймлапса.

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

А дома из действующих проектов — система аварийного освещения при отключениях электричества и умный источник бесперебойного питания для роутера.

Кроме лагеря, ты закончил еще курсы?

Летом 2016 года я учился во Front-end лагере, там мы делали простые сайты, немного затронули JS, учили CSS и HTML. Осенью того же года я пошел на более продвинутый курс по Front-end.

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

Летом 2017 года пошел на курс по созданию видео, а летом 2018 — пошел на курс «Основы Java», осенью — на Ruby Dev для школьников.

В 2019 году был еще Front-end первого уровня и Java второго, в весной 2020 года, когда я пошел на Front-end второго уровня, уже начался карантин, и занятия перенесли в Zoom. Меня еще удивило то, как быстро добавили интеграцию с Zoom в LMS Школы.

Осенью того же года пошел на «Основы Python», весной закончил Python второго уровня.

Саша на выпуске курса «Python для школьников уровень 2»

Почему выбрал не курс по созданию игр?

Я сравнил программы, мне показалось, что на веб-дизайне она была полезнее для меня.

Кроме того, я не люблю игры, ни во что не играю, разве что на телефоне, когда совсем нечего делать. Не понимаю, зачем я буду тратить время и что мне это даст.

Что тебе понравилось на курсах и в программировании?

Курсы нравились сами по себе, мне приятно находится в Школе и атмосфера в ней.

Направление курсов я не выбирал, я записывался на все доступные курсы для детей. Мне хотелось учиться, так что выбирал из того, что есть.

Сейчас уже не пойду на детский курс, ведь я могу работать. Может быть, пойду на Node.js, курс уже для взрослых.

Ты закончил уже много курсов, а есть ли что-то интересное в школе?

Если говорить о программировании, то школьная программа не всегда соответствует современности. Например, в случае физики и математики, обновлять нечего, а вот на информатике — другое дело.

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

Еще мне не очень интересны гуманитарные науки.

Как удавалось совмещать учебу в школе и курсы?

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

Летом же у меня было много свободного времени и я ходил на курсы в Школу.

Как удается сейчас совмещать школу и работу?

В офис я приезжаю по выходным. Сейчас я готовлюсь к поступлению и занимаюсь украинским языком, математикой, физикой и английским после занятий. Но я уже определился с предметами, так что занимаюсь ими, а не теми, которые мне не нужны.

Ты уже понял, чем хочешь заниматься?

Да. Скорее всего, буду заниматься «компьютерным» программированием, без программирования микроконтроллеров.

Когда ты начал работать?

Я попал на проект, который разрабатывали студенты и выпускники Школы Hillel.

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

Я в то время изучал PHP, но весьма поверхностно, Node.js я тогда не знал. Не могу сказать, что знаю его сейчас. Невозможно знать язык, потому что все время появляются новые фреймворки и библиотеки.

На проекте я начал писать бекенд на PHP, но потом мне все же понадобилась помощь ментора, а он практически не знал PHP, поэтому он предложил переписать всё на Node.js, тем более что и Школа его использует.

Так что я начал учить Node.js сам, у меня получилось сделать сервер, подключить базу данных, ВВ

После проекта я начал работать с Node.js сам, у меня была идея сделать свой хостинг, хотя потом оказалось, что это плохая идея — сделать хостинг на 100 мегабитном интернете и Raspberry Pi (одноплатный мини компьютер — прим. ред.)

Raspberry Pi

Кроме того, я начал писать ботов для Telegram.

Один из моих одноклассников попросил меня сделать бота его знакомому администратору телеграм канала. У меня получилось, и я впервые заработал деньги. Через некоторое время я сделал еще бота, а в итоге у меня набралось человек 30 заказчиков за полтора года. Я начинал с примитивных ботов, потом они становились сложнее.

Благодаря им я продвинулся в изучении Node.js.

Как начал работать в Hillel?

Когда я делал эту камеру, у меня не получалось настроить работу веб-сокетов, я написал нашему ментору c проекта, он посоветовал использовать Socket.IO (библиотека для Node.js для удобной работы с сокетами — прим. ред.)

Я задавал еще вопросы: как лучше всего сжать изображение, при этом передать его в браузере, чтобы сэкономить трафик. Я рассказал ему о моей системе, которая состоит из трех устройств: камеры с серым (непостоянным — прим.ред.) IP, к которой из-за устройства сети мобильного оператора нельзя подключиться извне («пробросить» порт), промежуточного сервера, на котором находится веб-интерфейс для просмотра видео с камеры, и клиентского устройства.

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

Отдельно можно сказать про камеру — конструкция позволяет ей вращаться на 180 градусов по горизонтали и 120 по вертикали.

Движение камеры

Система очень понравилась преподавателю. Он, наверное, рассказал про нее Вадиму (Вадим Друмов, директор Школы Hillel — прим. ред.), потому что на следующий день он мне написал и пригласил приехать в Школу.

Но, как выяснилось, на собеседовании был еще главный разработчик Школы, Сергей Фомин. Он расспросил меня о моих проектах и о том, что мне интересно.

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

Как родители восприняли идею о работе?

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

Когда работал летом, приходил в офис три дня в неделю, хотел и больше, но родители настояли, чтобы я отдыхал.

Во время учебного года приходить в офис в будние дни не получается, так что я работаю удаленно, в свободное от учебы время.

Какие планы на будущее?

Поступлю в Политех, а хотел бы продолжить работать тут, в Hillel.

Сейчас мне нравится программирование, нравится Node.js и JavaScript, может быть, попробую разработку приложения на Node.js или Dart.