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

Саме для мотивації читачів моєї книги “Веб-програмування з Python та Django для Початківців” я підготував 11 інтерв’ю і запакував їх у рекомендований пакет. Відтепер намагатимусь публічно ділитись усіма історіями успіху, про які буду дізнаватись, на сторінках цього блогу.

***

А почнемо ми з Олександра Велимчаниці. Олександр вже на базовому рівні володів мовами PHP та HTML, коли потрапив до мене на персональне наставництво. На початку навчання давалось доволі складно і повільно. Однак завдяки дисципліні і звичкам, які ми разом напрацювали, на 212-ий день менторства Олександр вже самостійно продовжив навчання. А через місяць після зупинки менторства отримав свою першу роботу (Python/Django junior, веб-програмування), на якій працює успішно і до цього часу. І ще одна важлива деталь: Олександру на час написання цих рядків лише 18 😉

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

***

Олександр ВелимчаницяОлександре, коли ти почав цікавитись програмуванням і з чого почав?

Почав я з вебу, і вебом я почав цікавитись ще у школі. Якщо не помиляюсь, то наприкінці 8 класу. Але я тоді ще не знав жодної мови програмування. Навіть HTML. Цікавився поверхнево. Брав готові ‘двіжки’ (як тоді це називали), ставив на хостинг, бавився, пробував прочитати код та щось змінити.

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

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

До речі, на той час в мене не було ПК, і я все це робив з телефону.

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

Але потім закинув це, тому що якось набридло.

Коли відбулась твоя друга спроба вернутись в IT?

В 11 класі школи почав вчити паскаль, оскільки даний предмет був частиною навчальної програми.

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

Як справи пішли далі після школи?

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

На початку літа в мене був час, і я вирішив зробити другу спробу в HTML/CSS, щоб хоча б щось знати перед вступом у ВУЗ.

З певними складнощами пройшов курс по HTML і CSS від Попова. Проходив його приблизно 2-3 тижні. На пару днів закидав його і потім знову повертався. І так кілька разів. Уроки йшли складно і здавались доволі нудними.

Потім взявся за PHP і також пройшов безплатний курс по його основах. Ніби основи знав, але нічого порядного написати не міг. Можна такий курс порівняти із вивченням алфавіту, літер, але без практичного застосування. Тобто літери знаєш, а як із них будувати слова і речення – незрозуміло. Бракувало прикладів і домашніх завдань або завдань на практичне застосування. Саме тому, я вважаю, що потрібна хороша практика під час вивчення чого завгодно.

Таке самостійне навчання якось вплинуло на твій подальший шлях?

Так. У мене зникло бажання йти у ВУЗ 🙂 На той момент я вже розумів, що хорошого працівника і без диплому візьмуть. До того ж, як ми з вами знаємо, принаймні в Україні, люди рідко знаходять роботу по спеціальності. Також мене лякали 5 років витраченого часу. Тому я подумав, що з інтернетом я зможу отримати більше інформації за ці роки. Навіть самостійно.

Від автора: щодо моєї думки, наскільки важлива вища освіта для програміста, рекомендую почитати дану статтю.

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

Паралельно я також продовжував вивчати мову PHP. Проте вчив уже на прикладі створення простенького блогу. Саме тоді почав потроху розуміти основи створення сайтів. Звісно, до результату було далеко і самостійно навчатись виявилось доволі непросто.

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

Так. В цей час Віталій шукав студентів на менторство. Я також надіслав запит. У відповідь отримав завдання на логіку, HTML, CSS, Javascript та Python. Усі завдання були тестами. Я виконав їх, як я вважаю, непогано. Але, тим не менше, не зміг пройти і отримав відповідь від Віталія, що як звільниться місце – повідомить.

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

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

Отже, ти зробив доволі ризикований крок – відмовився від ВУЗу. Як же виглядав твій навчальний день і загалом весь процес менторства, на яке ти підписався?

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

Проте згодом я трішки сповільнився. Напевно тому, що ми підійшли до складніших тем і деякі завдання забирали по кілька тижнів. Тим не менше, навіть у найважчі (думаю, вони якраз і були переломними) періоди я навчався буквально кожен день. Практично не пропускав ні суботу, ні неділю. Якщо і пропускав день-другий, то лише через те, що погано себе почував.

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

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

Навчався з Віталієм десь біля півроку. Останній місяць був присвячений пошуку роботи. Попрацювали над резюме. І я мав завдання щодня відсилати дане резюме хоча б в одну нову компанію. Компанії ми разом відібрали такі, де шукають Python веб-програмістів.

Перша позитивна відповідь на резюме прийшла від компанії Prom.ua, яка надіслала тестове завдання. Завдання – в принципі нескладний проект на фласку (фреймворк Flask), термін – тиждень.

Але я тоді про фласк перший раз почув. Адже на менторстві ми розбирали Python, Django фреймворк і веб-технології (HTML, Javascript, CSS).

Проте чомусь я був впевнений, що зроблю. Весь свій час приділяв завданню. З ранку і аж до третьої години ночі. Навіть останні дні вставав о 5-6 ранку.

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

Від автора: те, що Олександр зміг самостійно розібратись із новим для нього фреймворком і виконати тестове завдання за один тиждень, свідчить про те, що набутий досвід із Python та фреймворком Django (це майже 6 місяців), працював на нього. Саме тому рекомендую починати із простіших мов і технологій, а вже далі ускладнювати собі життя, коли є певний досвід у програмуванні. Це подібно до вивчення іноземних мов – кожна наступна мова дається значно легше, ніж попередня.

Одним словом, сказали мені, що я завалю дзвінок в скайпі з тім-лідом за 15 хвилин. І попросили обов’язково знову звернутись, як підтягну теорію.

Після цього почав налягати більше на теорію чи продовжив пошук по інших компаніях?

Почав тоді більше вчити теорію, але і резюме надсилати не переставав.

І в процесі розсилок резюме ми натрапили на компанію (42coffeecups), де приймають без резюме. Але в них цікаво продумане тестове завдання, в якому не лише перевіряють рівень, але й готують до робочого процесу. Тобто завдання було схоже до реального, особливо щодо робочих процесів.

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

За пару днів змінив свою думку і взявся знову виконувати завдання, яке через пару днів провалив, бо не зміг зрозуміти їхні базові робочі моменти. І потім знову спочатку взяв завдання, і також провалив 🙂

І скільки було таких спроб?

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

До речі, під час виконання тестового завдання навчився багатьом цікавим речам, що знадобились в роботі і зробили мене кращим програмістом.

Що таке цей буткемп, і чим саме там займався?

На буткемпі вже давали реальні завдання. Правда не від замовника, а власні проекти.

Першим завданням був рефакторинг коду. Дане завдання дозволило добряче підтягнути рівень розуміння чужого коду. Потім ще одне завдання виконав. Цього разу по розробці нового функціоналу. І таким чином отримав свою першу роботу програмістом.

Як вважаєш, що було найважчим на твоєму шляху у становленні програмістом?

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

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

Як відбувався і скільки тривав пошук роботи?

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

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

Що порадиш тим, хто навчається програмуванню і знаходиться на шляху до своєї першої роботи в IT?

Мати терпіння.

Старатись відразу набувати звичку щоденно програмувати, поки є мотивація, так як мотивація не вічна.

Приділяти хоча б 3 години в день для навчання, в ці години обов’язково має входити практика.

Подружитися із розробником, який зможе направляти вас у вірну сторону. Це дуже допоможе, якщо немає персонального ментора.

***

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

На завершення статті виділимо кілька ключових моментів, що в даному випадку дозволили Олександру працевлаштуватись:

  • людина чітко визначилась із ціллю і більшу частину шляху пропрацювала під наставництвом, проте самостійно; без курсів, без ВУЗу;
  • коли випала можливість отримати допомогу ззовні, Олександр без вагань перемкнувся з мови PHP на Python; тобто не так важлива мова, з якої починаєш, як підтримка та допомога в процесі навчання; тому рекомендую обирати не ту мову, яка найпопулярніша на ринку в даний момент, а ту, яка легко освоюється; після опанування першої мови наступні мови і технології сприйматимуться в рази легше і швидше;
  • Олександр вирішив витрачати гроші на платне менторство, і це вже було певного роду декларацією про обов’язок з обох сторін;
  • і найважливіше, Олександр виявився надзвичайно сумлінним і дисциплінованим студентом; це дозволило в перші два місяці співпраці виробити правильні щоденні звички, які заклали хороший фундамент для подальшої роботи; мені самому часом хотілось так само вміти себе примушувати безвідмовно проходити важкі часи і етапи у своєму житті;
  • віра в свої сили і трохи впертості, які б дозволили стукати в двері, що не відкриваються, хоча б 5-10 разів 😉

Якщо маєте більше запитань до Олександра, то можете просто сконтактуватись з ним у фейсбуці. Думаю, він буде радий поділитись своїм досвідом.

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