Коли я почав продавати свою книгу, запустив перших студентів у закриту групу підтримки, почалась класна тусовка. Усі весело йшли по перших главах книги, виконували домашки, мотивація і позитивний настрій зашкалювали! І так тривало до глави 5-ї. Далі, коли пішло саме “м’ясо” веб-розробки, стало доволі “глухо” в групі, маса запитань, і, врешті-решт, трохи скарг на те, що приходиться по кілька разів перечитувати глави. Що вже тиждень сиджу над главою і не йде. І тому подібне…

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

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

Отже, почну з того, що наведу кілька історій та фактів із власного досвіду, а також досвіду друзів, знайомих та моїх студентів.

Моя історія

Мою повну історію входу в програмування можете почитати ось тут.

На останньому курсі університету, механіко-математичного факультету, мені запропонували спробувати себе в IT і почати вивчати програмування. Напрямок – веб, мова – Python.

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

Цього разу три місяці підряд я навчався і працював по 16 годин на добу. Стимул був величезний. Книги читались за книгами. Мені дали практичну дуже тривіальну задачу для клієнта і я в режимі нон-стоп з нею ковирався весь цей час (до речі, за пів року я вже міг такі задачі робити за пів дня). Було доволі складно і без підказок із зовні процес затягнувся б мінімум у двічі, якщо б взагалі успішно завершився.

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

Таким чином:

  • 1 симестр Паскаля на мех-маті (4-5 місяців)
  • 2 місяці перша спроба освоїти Python і веб-загалом
  • потім 5 місяців надзвичайно активної роботи у подвійну зміну

і я став джуном. Думаю, симестр Паскаля в універі також зіграв свою роль пізніше при освоюванні мови Python.

Мій загальний час з нуля до посади джуніора веб-розробника: 12 місяців (1 рік).

І пам’ятаємо, я навчався під керівництвом наставника + останні 5 місяців із дуже великою інтенсивністю: до 16 годин на день.

Мої студенти, друзі та знайомі

Я постійно менторю від 3 до 5 студентів в напрямку Python, Веб, Django фреймворк.

***

Один із перших студентів (Сергій привіт!), якого я менторив ще до часів існування даного блогу був мій знайомий, якого я навчав складної веб CMS  системи, витратив близько року, щоб базово розібратись із веб-програмуванням. Далі, зрозумівши, що саме дана система, доволі складна, він вирішив спробувати себе у вебі, але із іншими технологіями. І вже за 3 місяці тренувався при фірмі на PHP веб-розробника.

Таким чином після 15 місяців навчання, з нуля, посада джуніка була в кишені.

***

Вже коли я почав офіційно менторити, мав студента (Артем привіт!), з яким співпрацював лише один місяць і людина отримала свою першу посаду джуніора Python веб програміста, спеціалізація Django.

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

Ця людина займалась самостійно до мене навчанням вебу та, зокрема, мови Python, на скільки я пам’ятаю, близько року. Читала книги, практикувалась і навіть кілька разів подавала резюме і виконувала тестові завдання. Поки невдало.

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

***

На моїй першій роботі до нас одного дня прийшов студент останніх курсів львівського політеху (Богдане привіт!). Йому вистачило 2х місяців регулярних відвідувань нашої фірми і парного програмування із членами команди, щоб почати заробляти гроші і працювати програмістом.

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

Отже, якщо ініціативно провчитись у ВУЗі за одним із IT напрямків, паралельно займаючись самоосвітою, тоді вам буде достатньо 2-3 місяці, щоб допиляти свої знання та навички для роботи на фірмі. Знову ж таки, залежить від складності обраного напрямку.

***

Прямо зараз ми на фінішній прямій із ще одним моїм студентом на менторстві. Почали співпрацю у вересні минулого року. На той момент Олександр знав базово HTML i CSS, трохи MySQL. Ще у 8 класі пробував складати простенькі веб-сайти з допомогою готових CMS систем. І лише останнім літом сильно зацікавився веб-програмуванням.

З вересня 2014 ми почали разом співпрацю і до березня 2015 активно працювали над вивчення веб-програмування з мовою Python та фреймворком Django. Успішно освоїли його і отримали гарне розуміння вебу. Недавно почали марафон по резюме та інтерв’ю. Першим отримали тестове завдання від prom.ua на посаду Python веб джуніора. Завдання виявилось не по Django, а по Flask. Тим не менше, Олександр зміг за 5 днів розібратись із новим фреймворком і на хорошому рівні реалізувати тестовий проект. Код роботодавцям сподобався, але інтерв’ю по теорії не вдалось. Нам сказали, що саме треба підтягнути і після цього звернутись до них знову. Тому зараз допилюємо теорію, паралельно працюючи над англійською, софт-скілами. І за місяць-другий, думаю, все вдасться. Паралельно, звісно, продовжуємо атакувати інші фірми резюмешками.

Таким чином, 6 місяців самостійної теорії + 6 місяців практики зі мною, і тепер думаю 2-3 місяці пошуку роботи і допилювання прогалин. Загалом 15 місяців до першої роботи.

Час на навчання

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

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

  • до 1 місяця часу, щоб розбіратись, що таке професія програміста, які бувають варіанти, придивитись до умов праці і спробувати зрозуміти чи варто рухатись далі;
  • ще 1 місяць на швидку пробу: я рекомендую одразу спробувати будь-який безкоштовний онлайн курс по одній із мов програмування і спробувати розібратись чи є від процесу навчання задоволення;
  • далі 3-6 місяців теоретичних курсів: звісно у випадку з ВУЗом ви вивчатимете 5 років теорію, але це не є необхідністю; у випадку з академією ШАГ, навчання забере 2.5 роки; середньостатистичні навчальні курси завершуються в межах половини року;
  • близько 6 місяців на практику: це найважчий і найвизначальніший етап; відповідно, забирає найбільше часу; комусь дається швидше, комусь довше; варто проходити на курсах при фірмі або із наставником; інакше, термін проходження може значно збільшитись.

В підсумку, на навчання програмуванню по експрес програмі (тобто не у ВУЗі), всередньому йде до 12-14 місяців. За умови, якщо ви кожного дня присвячуєте навчанню хоча б по 3-4 години.

Час на пошук роботи

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

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

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

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

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

Підсумок

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

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

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

***

Завершу статтю поверненням до історії на її початку…

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

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

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