Кар'єра в 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 сам, мені вдалося зробити сервер, підключити базу даних, мені сподобалася мова, можливо тому, що я вчив до цього браузерний JavaScript на курсах.

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

Raspberry Pi

Також я почав писати ботів для Telegram.

Один із моїх однокласників попросив мене зробити бота його знайомому адміністратору телеграм каналу. У мене вийшло, і я вперше заробив гроші. Через деякий час я зробив ще бота, і ще, у мене набралося 30 замовників за півтора роки.

Завдяки ботам я просунувся у вивченні Node.js, починав я з примітивних ботів, потім вони стали складнішими.

Як почав працювати у Hillel?

Коли я робив цю камеру, у мене не виходило налаштувати роботу веб-сокетів, я написав нашому ментору з проекту, він порадив використовувати Socket.IO (бібліотека для Node.js для зручної роботи з сокетами — прим. ред.)

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

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

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

Рух камери

Ця система дуже сподобалася викладачеві. Він, напевно, розповів про неї Вадиму (директору Школи Hillel — прим.ред.), тому що наступного дня він мені написав і запросив приїхати до Школи.

Але, як з'ясувалося, на співбесіді був ще головний розробник Школи Сергій Фомін. Він розпитав мене про мої проекти та про те, що мені цікаво.

Через півтора місяці, якраз на початку літа, Вадим попросив номер мами чи тата, щоб з ними поговорити про мою роботу, ми приїхали до Школи та одразу підписали всі документи.

Як батьки сприйняли ідею роботи?

Позитивно. Вони розуміють, що це мені цікаво. Переживали, що мені не вистачить часу на ліцей. Тому маю вільний графік, я можу прийти в будь-який час.

Коли працював улітку, приходив до офісу три дні на тиждень, хотів і більше, але батьки наполягли, щоб я відпочивав.

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

Які плани на майбутнє?

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

Зараз мені подобається програмування, подобається Node.js та JavaScript,, можливо, спробую розробку додатку на Node.js або Dart.