Університет, курси чи самостійне навчання. Що обрати майбутньому розробнику

Всім привіт, мене звуть Олег Мельничук, ось уже два роки я працюю на позиції Full Stack JS розробника в невеликому українському блокчейн-стартапі, який розробляє проєкт Subsocial. Також я студент 4-го курсу Національного авіаційного університету й паралельно з цією статтею пишу свій перший диплом. Ще займаюся менторством, розробляю невеликі проєкти, які теж можна знайти на GitHub. Цього року заповнив невелику форму та став Google Developer Student Club Lead в НАУ, разом з друзями поставив за мету створити студентську ІТ-спільноту, щоб полегшити шлях становлення програмістом для тих, хто лише починає його.

Фото із заходу DSC NAU. На фото Core Team DSC NAU, зліва на право: Олег Мельничук, Максим Римар і Владислав Прощаваєв

Вважаю себе самоучкою, але з невеликою форою, адже навчаюся на спеціальності «Комп’ютерна інженерія». І хоча тут майже немає програмування, цьому завдячую знання алгоритмічної бази та певне розуміння низькорівневих процесів.

Перші рядки коду я написав на першому курсі університету під час лабораторної роботи з мови С. Дуже хотів наздогнати одногрупників, які вже мали непоганий шкільний бекграунд, тому вечорами сидів і намагався увійти у світ ІТ. Паралельно робив мінімізацію логічних операцій за допомогою карт Карно.

Працевлаштувався в кінці другого курсу на позицію фронтенд-розробника. До цього було два роки суцільного навчання, пошуку цікавих підходів, наступання на різні граблі. Загалом це був крутий час. Я спробував С/С++, писав ігри на Lua та C#, майже пройшов стажування на Java (не знаючи цієї мови), написав скрипт для нейромережі на Python і зрештою освоїв Front-end та знайшов роботу.

У статті розглянемо, які бувають варіанти входження в професію. Чи достатньо самонавчання і чому варто йти в університет (здебільшого не за знаннями). Розглянемо поради, які я вивів для себе і даю всім, хто починає свій шлях в ІТ. Крім того, наведу приклади з життя, як це допомогло мені чи моїм товаришам.

Будь-яке навчання в ІТ — це самонавчання

Розгляньмо стандартні шляхи входу в ІТ:

  • університет;
  • курси;
  • самонавчання.

Але я назвав би це так:

  • самонавчання з не дуже актуальними широкопрофільними навчальними матеріалами;
  • самонавчання з актуальними вузькоспрямованими навчальними матеріалами;
  • самонавчання.

Але в жодному разі не хочу сказати, що курси чи університет — це даремна трата часу. Ні, вони дають значний буст навчанню і доповнюють самостійний пошук матеріалів. Але це в будь-якому разі компроміс між отриманими знаннями та часом, затраченим на них.

Розберемо кожний пункт окремо.

Університет

Виш дає базу, яку ви навряд чи захочете вчити самі, але він забирає час на рутинне виконання тривіальних задач і лабораторних. Тут усе дуже залежить від викладача і того, як він подає матеріал. Та основна сила універу не в завданнях, а в оточенні, саме завдяки оточенню я потрапив на перші ІТ-події, дізнався, що таке хакатон, і зібрав одногрупників, щоб взяти в ньому участь.

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

Визначення напряму та стеку — це винятково ваше завдання. Теорію можна опанувати на курсах чи самостійно. Практику — на стажуванні у компаніях, які готові взяти студентів 3–4 курсів з мінімальними знаннями та вивчити під себе. Однак тут варто читати договір, компанія вкладає у вас ресурси, тож потрібно розуміти, чому вона це робить.

Курси

Курси — це повна протилежність університету. На них вчать під конкретний стек, пояснюють основи та трохи глибші речі. Викладачами є програмісти-практики, знов-таки від них залежить, у який спосіб вам донесуть інформацію і яку.

У будь-якому разі це буде теорія в поєднанні з домашніми завданнями, які перевірятимуть. І це обов’язкове виконання буде ще одним стимулом вчитися. Але наскільки якісно ви це робитимете, залежить від вас і від того, чи підійшла методика викладача.

Після закінчення курсів ви маєте бути готові продовжувати навчання самостійно. Круто, якщо вони стали корисними й після них ви зразу потрапили на роботу. Але переважно треба ще пройти шлях самонавчання, щоб взяли на стажування чи Junior-позицію.

Самонавчання

Ну і, звісно, класичне самонавчання. Воно надто багатогранне і залежить від вашого бекграунду. Ви можете мати технічний склад розуму, ловити усі концепції програмування на льоту, а можете бути істинним гуманітарієм, якому важко опанувати теоретичні основи, але який на практиці може швидко знайти рішення і виконувати задачі. Варіанти є різні. Головне пам’ятати, що теорія без практики не дає абсолютно нічого.

Ви можете читати книги, дивитись відеокурси на YouTube чи спеціалізованих майданчиках типу Coursera, братись за власний проєкт і гуглити, як розв’язати той чи інший кейс. Шляхів розвитку безліч, і іноді це з переваги перетворюється на проблему.

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

Та якщо вдасться налаштувати всі ці процеси, ви отримаєте круту навичку тайм-менеджменту, автономність у розв’язанні задач і впевненість у собі.

Як вчитись

Хоча я розписав три шляхи окремо, схиляюсь до думки, що для успішного старту їх варто поєднувати. Далі подаю поради, як, на мою думку, ефективніше навчатись.

Знайти ІТ-спільноту, бажано з живим спілкуванням. Вона допоможе не закинути навчання. Адже кожний учасник буде розповідати про свої перемоги та поразки, повідомляти про цікаві події, можливості. Корисними будуть різні рекомендації.

За час свого навчання в університеті я зібрав навколо себе багато людей, які працюють та навчаються в ІТ. Коли я потрапив на роботу в стартап (як це я зробив — у наступній пораді), мене запитали: «А є в тебе знайомі, яких би ти порадив на Rust?». Я одразу написав своєму товаришу, який до того писав на С++, і запропонував йому спробувати. Ось уже два роки ми працюємо разом у стартапі та в окремих проєктах. Останні нам пропонують знайомі, які знають, що нам це може бути цікаво.




Не боятись відгукуватися на вакансії та стажування. Усі кажуть, що ринок джунів переповнений і складно знайти першу роботу. Але якщо зайти на DOU, на сторінку «Перша робота», можна побачити, що варіантів достатньо. І коли ви вже отримали певні знання у своїй сфері, варто ходити на співбесіди, виконувати тестові чи проходити тести онлайн.

Коли переглядаєш вимоги у вакансії, може виникнути думка: «Ого, тут ще стільки всього вчити, я нічого не знаю». Та якщо хоч половина вимог знайома, варто сміливо відгукуватись. Співбесіди та тести дадуть змогу побачити, в чому у вас прогалини й що варто підтягнути. А може статись так, що підтягувати це будете в робочому процесі, адже вам дадуть офер чи ви пройдете на стажування.

Якось я побачив допис знайомого в соцмережах, що його товариш шукає спеціалістів у стартап. Стек був саме таким, в якому я хотів розвиватись, проєкт мене зацікавив, була лише одна проблема: він шукав спеціаліста рівня Middle. Я тоді за спиною мав три pet-проєкти та жодної комерційної діяльності, тому вирішив написати, що готовий спробувати себе як Junior. Після короткої співбесіди я потрапив на проєкт, який ось вже два роки розвиваю разом з товаришем, про якого уже вам розповідав.

Інший приклад: на другому курсі подруга подалась на безкоштовний навчальний курс QA в одну з аутсорс-компаній, хоча їй здавалось, що вона нічого не знає в цій сфері. Невеликої теоретичної підготовки та базового знання Java вистачило, щоб пройти на навчання, успішно його закінчити й здобути Junior-позицію в цій компанії.

Відвідувати хакатони. Кожному, хто запитає мене, як швидко розробнику зрости, я рекомендую відвідати хоча б один хакатон. Це те місце, де ти за один-два дні проходиш шлях від ідеї до MVP і презентуєш рішення. Тут можеш вивчити нову технологію, написати проєкт з нуля за короткий час, тим самим прокачуючи навички побудови проєкту. Але здебільшого на хакатонах вчишся працювати в команді, розробляти в умовах нестачі часу, викручуватись, якщо не вдається щось реалізувати, і думати про задачу з іншого боку. А ще знайомишся з новими людьми, компаніями. А якщо ваша команда переможе, то можна отримати офер або грошову винагороду чи цінні призи. Загалом набути велику кількість soft skills і розширити свої hard skills.

Фото з NASA Space Apps Challenge 2019

У жовтні 2018 року разом з одногрупниками вирішив випробувати сили в хакатоні Nasa Space Apps Challenge, у якому я паралельно волонтерив.

Загалом за дві ночі ми:

  • за допомогою Python, на якому до хакатону ніхто не писав, навчили нейромережу розпізнавати пожежі, полум’я, тумани та хмари;
  • змогли зробити лише одну кнопку на Xamarin, але викрутились за допомогою макету застосунку у фотошопі;
  • непогано все це презентували;
  • отримали номінацію і знайшли ментора, який захотів розвивати нашу ідею.

Протягом двох місяців ми продовжували, гордо називали себе «типу стартап», щось розробляли, але нам бракувало і професійних, і організаційних навичок, а ще розуміння, що ми робимо. За третій місяць ми не провели жодної зустрічі щодо проєкту і зрозуміли, що розпались. Але цей досвід досі допомагає мені під час розробки нових продуктів чи фіч у нинішніх проєктах.

Усі знання закріплювати практичними pet-проєктами. Напевне, банальна порада, але насправді багато людей, які не можуть знайти першу роботу, на питання «А ти робив для себе навчальні проєкти?» відповідають: «Та ні, я ж не знаю, що писати. А що як я щось неправильно зроблю? А я не вмію такого, я думав, мене навчать уже на роботі».

Я одразу заходжу в Google, беру кілька статей з pet-проєктами та даю на них посилання. Або ж якщо маю власну ідею, то пропоную її. І щойно людина починає робити практичні штуки, в неї з’являється більше впевненості та вона починає розвиватися набагато ефективніше.

Якось до мене звернувся студент, який уже рік вчив JS, але ніяк не міг знайти роботу, та й був невпевнений у своїх силах. У той момент мій знайомий якраз шукав людину, яка б змогла розробити специфічний калькулятор, який мав рахувати рейтинги за відповідними полями таблиці. Я підкинув цей мініпроєкт студенту й надавав йому менторську підтримку. У результаті проєкт був успішно реалізований протягом кількох тижнів. А впродовж кількох місяців студент знайшов першу роботу.

Показуйте свій код на GitHub/GitLab. Код — це ваше резюме. А коли ви навчаєтесь самостійно, це основне, що ви можете показати. Кожний проєкт, який робите, сміливо закидайте у свій репозиторій. Не варто боятись власного коду, можливо, думка про те, що його хтось буде бачити, стимулюватиме вас до кращого написання.

Коли я проходив співбесіду на свою першу роботу, HR у перші хвилини сказав, що подивився мій GitHub, і попросив розповісти про деякі деталі проєкту. Цього вистачило, щоб покликати мене на технічне інтерв’ю.

Не забувайте працювати над англійською. Можливо, надто банальна порада, але я не міг її не згадати, адже у самого така проблема. Цією мовою ви знайдете багато інформації, навчатись нею простіше та швидше. Англійська — це той скіл, який примножує кількість потенційних вакансій щонайменше вдвічі.

Підсумуємо

Усі навчаються по-різному. Немає універсальної пігулки. Але в будь-якому разі кожному програмісту потрібно прокачувати скіл самонавчання і пошуку того підходу, який йому ближчий до душі.

Йти в університет — це вибір, але технічна база не завадить будь-якій людині, що вирішила будувати кар’єру розробника. Також за час навчання ви можете завести корисні знайомства, отримати поради, мотивацію, а можливо, й роботу.

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

Навчаючись самостійно, ви прокачуєте скіл, що з часом допомагає опановувати нові інструменти ефективніше. Адже навчання не закінчується після першого оферу, воно актуальне під час усієї кар’єри.

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

Успіхів у навчанні й розробці. Будьте допитливими та не хворійте!

Похожие статьи:
Меня зовут Максим, я работаю тестировщиком ПО, с интересом слежу за событиями в мире тестирования и IT. Самое полезное собираю вместе...
В Интернет попали пресс-изображения готовящегося смартфона Samsung Galaxy J7 (2016), который ранее был известен по слухам. Напомним, фотографии и...
У випуску: 100 найпопулярніших PHP функцій, статті про Laravel, записи всіх виступів на PHP fwdays’18. Основне PHP в 2018 (відео) — Rasmus Lerdorf (автор PHP)...
[Про автора: Юрій Савка — має 8+ років досвіду роботи в ІТ, наразі працює на посаді Senior PHP developer в компанії Rocket Internet в Берліні, веде...
[Об авторе: Соломон Амар — глава международной компании AllStars-IT, специалист по разработке программного обеспечения с 18-летним...
Яндекс.Метрика