«Щоб писати лайнокод, потрібно вміти писати код» — IT-школа robot_dreams про змагання для айтівців
12 жовтня IT-школа robot_dreams, що входить до складу EdTech-компанії Laba Group, відзначає свою четверту річницю. З цієї нагоди компанія оголосила запуск першого в Україні змагання на створення найбільш незвичного однорядкового коду для айтівців, або спагеті-коду.
SPEKA дізналась про те, як виникла ідея конкурсу, що потрібно для участі та як здобути перемогу, а також про ключові здобутки компанії за чотири роки. Розповідають Богдан Боровяк, Head of Production у robot_dreams, та Дмитро Пилипенко, Instructional Designer навчальних продуктів.
Чому вирішили організувати конкурс саме на лайнокод? Як виникла ця ідея?
Богдан: Цього року robot_dreams святкує свою четверту річницю. Хоча раніше такі дати ми відзначали без особливих подій, цього разу все інакше. Нам захотілося порушити звичні рамки і зробити щось, що резонувало б із нашою аудиторією — щось трохи зухвале, хуліганське. Хотілося відкинути серйозність, яку зазвичай диктує робота, і дозволити собі бути спонтанними й вільними.
Упродовж року ми вчимо студентів писати код правильно — чітко, структуровано, дотримуючись усіх стандартів. Але раз на рік хочеться відчути рок-н-рол. День народження — це момент, коли можна трохи відійти від буденності, розслабитись і пофанитись разом із нашою спільнотою.
Ідея змагань на найгірший код, так званий спагеті-код, не нова. У західних онлайн-спільнотах, наприклад, на Reddit, уже давно люди змагаються у створенні найбільш крінжових і незручних рішень. Зокрема, вони роблять регулювання гучності максимально абсурдним і не дружнім до користувача, намагаючись перевершити одне одного у дивності. Я сам не раз із захопленням дивився подібні відео — це справжній парад креативних, хоч і недолугих рішень. Тож ми вирішили створити щось подібне, привнести в цю ідею трохи української креативності й зробити щось незвичне.
Дмитро: Нам хотілося додати більше свободи та дати нашій аудиторії відчути, що robot_dreams — це не просто суворий наставник, який постійно вимагає ідеальних результатів. Ми хочемо бути і тим самим buddy, з яким можна розслабитися і провести час весело та з користю.
Програмісти за своєю природою люблять челенджі та нетривіальні завдання. Щоденна рутина — це прописування чистих, робочих алгоритмів, де немає місця зайвим елементам. Усі очікують бездоганного коду, що відповідає стандартам. Але у нашому змаганні ми пропонуємо щось інше — можливість висловити все, що накопичилось на проєктах, і написати робочий код у будь-якій довільній формі, без жорстких обмежень.
Це шанс для кожного покреативити, вийти за межі повсякденної рутини, проявити себе нестандартно. І, звісно, виграти крутий приз — депозит на навчання на наших курсах.
Що таке спагеті-код?
Дмитро: Спагеті-код зазвичай написаний в один рядок, без жодних переносів, розділень на функції чи цикли. Виглядає він приблизно так само, як сплутані між собою спагеті: розібрати й відокремити частини майже неможливо. Головна його риса — він абсолютно нечитабельний і незрозумілий.
Богдан: Відмінність між англійською мовою та мовою програмування в тому, що зрозуміти англійські слова зазвичай набагато простіше. Щоб код був зрозумілим, існують певні правила його написання: відступи, табуляції, формат. Цього потрібно вчитись, але на початку не завжди виходить «красіво». Коли ми опитували студентів, багато з них чесно зізнавались: «Так, на старті кар’єри я писав лайнокод». Це нормально — люди прогресують, навчаються писати так, щоб інші могли легко прочитати та доповнити їхню роботу.
Підписуйтеся на наші соцмережі
Проте всі в IT чули нарікання на так званих лайнокодерів, які пишуть код так, що іншому розробнику розібратись у ньому вкрай складно. Ми навмисно назвали наш конкурс лайнокодом, щоб трохи поіронізувати над собою. Адже що більше у тебе досвіду та впевненості, то легше зізнатись: так, бувало всяке.
Чи дійсно за допомогою одного рядка можна вирішити задачу?
Дмитро: Це підступне питання, адже вся програма або потужний сервіс — це, по суті, один рядок. Питання лише в тому, як цей код відображений.
Для машини байдуже, код розділений пробілами та табуляціями чи ні. Те, що бачить програміст, врешті перетворюється в один рядок, а потім у послідовність одиниць і нулів, які в результаті стають або наявністю сигналу (1) або його відсутністю (0). Звісно, кожна мова програмування має свої нюанси, але загалом структурованість коду важлива для самого розробника і його роботи.
Написати спагеті-код нескладно. Проте зробити так, щоб він ще й працював, вже завдання з підвищеною складністю. Адже, коли пишеш код в один рядок, а він не запускається, навіть самому автору буде важко знайти кінці та зрозуміти, що саме треба виправити. Робити щось погано теж потрібно вміти.
Як отримати звання топлайнокодера та що отримає переможець?
Богдан: Для участі у конкурсі немає обмежень за рівнем досвіду чи мовою програмування. Це відкриває можливість для кожного айтівця — від початківців до досвідчених розробників. Але, як ми часто кажемо: для того щоб приготувати погану їжу, таланту не потрібно, а щоб написати поганий код, треба вміти писати добре.
Переможця обиратимемо разом із журі, до складу якого входять експерти з багаторічним досвідом із провідних компаній. Ми оберемо топ-10 найцікавіших робіт, а остаточного переможця визначить технічна спільнота через голосування. Призом для переможця буде депозит у $1000 на будь-який курс robot_dreams та почесне звання лайнокодера країни. Окрім цього, ми підготували спеціальний кубок у вигляді спагеті на виделці, який символізує хаотичність спагеті-коду.
Серед ключових критеріїв оцінювання — оригінальність ідеї. Ми пропонуємо п'ять завдань, але якщо учасник вирішить подати власне завдання і воно виявиться цікавим, це буде значним плюсом. При цьому код має працювати і вирішувати поставлене завдання. Також важливо дотриматися базових вимог: це має бути однорядковий код до 1000 символів, опублікований у репозиторії з описом задачі та скриншотами. Код має бути робочим, ідея — дивувати, а оформлення — відповідати умовам.
Чого навчають студентів у robot_dreams?
Богдан: Чи вчимо ми на курсах лайнокодити? Ні, але ми вчимо, як писати якісний код одразу і рефакторити той, який інші налайнокодили до тебе.
На відміну від багатьох IT-шкіл, що фокусуються на старті кар'єри в IT, наші курси орієнтовані на аудиторію рівня Junior+ та Middle+. Ми починали на розпеченому IT-ринку, розуміючи, що потреба в експертизі зростає не лише через бізнес-інтерес. Ми бачили, як українські підприємці створюють IT-бізнеси, і хотіли зробити внесок у розвиток цієї індустрії.
На ринку вже існувала значна кількість курсів для початківців. Однак ті, хто досяг рівня Junior+ або Middle+, залишалися поза увагою. Тож ми зосередилися на цій ніші та розвивалися у ній. У нас є продукти й для новачків, але наш основний фокус — це ті, хто вже в індустрії, знає, що їм потрібно для поточного проєкту, роботи або навіть для власного стартапу. Наш підхід до курсів ґрунтується на тому, щоб давати практичні знання у максимально стислому та зручному для айтівця форматі. Ми чітко розуміємо, хто має прийти на курс і ким він має вийти. Наприклад, завдання Дмитра Пилипенка як instructional дизайнера — зробити цей шлях логічним, швидким та зручним. Це наша основна сила.
Чим відрізняються підходи створення продуктів robot_dreams та Laba?
Богдан: Ми не починали з нуля — у нас була експертиза компанії Laba, яка вже п’ять років працювала на ринку EdTech. Але ми швидко зрозуміли, що не все, що працює для HR-директорів, підходить для навчання програмістів. Багато довелось адаптувати до наших потреб і змінити підходи до створення освітніх продуктів.
У нас менше теорії та більше практики. Викладач може показати кілька слайдів, а потім одразу відкриває середовище розробки та починає кодити наживо. Студенти при цьому активно коментують. Навіть на більш гуманітарних курсах, як-от Product Management, уроки залишаються інтерактивними.
Також на відміну від інших наших брендів, де домашнім завданням може бути написання стратегії чи есе, у нас це програма або код, які мають працювати. Якщо код не працює, його треба доопрацьовувати. Це виклик, адже ми намагаємось зробити процес навчання зручним для викладача та ефективним для студента.
Дмитро: IT-напрям потребує доступу до певних технічних ресурсів та рішень. Наприклад, ми маємо потребу використовувати додаткові технічні інструменти, оскільки це критично важливо для технічних курсів, тоді як для більшості курсів Laba чи Skvot така потреба відсутня.
Навіть підхід до маркетингу відрізняється, адже айтівці мають іншу споживацьку поведінку. З нашого досвіду, люди з технічного сектору рідше ухвалюють рішення про купівлю на емоціях. Вони зазвичай підходять до вибору раціонально, аналізують наповнення курсу і роблять виважений вибір, орієнтуючись на практичну користь.
Які у вас плани на майбутнє?
Ми плануємо провести третю благодійну конференцію Strum і хочемо організовувати такі події частіше та на різні теми.
Щодо освітніх продуктів, то ми продовжимо розвивати нові формати. Усі чули про тренд на microlearning, і на цьому активно працюють такі компанії, як Duolingo. Однак ми не хочемо просто копіювати цей формат, створюючи «освітні тіктоки». Він не повністю відповідає нашим потребам. Натомість ми шукаємо способи подати контент більш дозовано й у менших формах, зберігаючи практичність і глибину матеріалу.
Цього року ми почали знімати короткі відеокурси, які дозволяють швидко опанувати нові навички. Якщо, скажімо, у п'ятницю тобі поставили нове завдання, в суботу ти можеш вивчити, як його виконати, а в понеділок уже почати роботу. Ми робимо акцент на якісному відеоконтенті, який містить усі необхідні матеріали та подається лектором-практиком. Цю інформацію можна переглянути за один вечір і одразу застосувати.
Ми також почали запускати інтенсиви, де студенти можуть практикуватися у нових навичках без ризиків. Одним із ключових інсайтів стало те, що айтівцям часто бракує «пісочниці», де можна випробувати нові навички. Наприклад, якщо ти хочеш освоїти penetration testing, неможливо застосовувати ці знання на продакшн-середовищі, бо це може створити ризики для проєкту. Але на нашому дводенному інтенсиві можна безпечно практикувати ці навички.
До речі, концепцію «пісочниці» ми також використали у нашому конкурсі. Полайнокодити під час розроблення реального продукту не найкраща ідея, але у межах конкурсу це можна зробити без жодних наслідків.
Щоб взяти участь у конкурсі на найкращий лайнокод, надсилайте роботи до 24 жовтня на сайті robot_dreams.