Коли я почав продавати свою книгу, запустив перших студентів у закриту групу підтримки, почалась класна тусовка. Усі весело йшли по перших главах книги, виконували домашки, мотивація і позитивний настрій зашкалювали! І так тривало до глави 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 годин вдень. Так як це зробив я. Але тут варто пам’ятати, що вдвічі збільшивши час на навчання ви не отримаєте першу роботу вдвічі швидше. Підсвідомість потребує часу, щоб засвоїти новий матеріал і перевести його на рівень вашого досвіду.
Якщо вам вдалось швидше, тоді коментуйте! Якщо ж процес триває довше, тоді перегляньте ваш процес навчання, задумайтесь чи потрібно вам це. І пам’ятайте, що процес навчання потрібно постійно коригувати взалежності від умов ринку та вашого прогресу.
***
Завершу статтю поверненням до історії на її початку…
Відповідно до зростаючої кількості незадоволених швидкістю навчання по книзі, я підготував розширену статтю для усіх учасників групи. В ній я детально описав як працювати із кожною главою книги. Скільки часу потрібно на освоєння, які нюванси чекають в процесі. А також навів кілька історій людей, які навчались з нуля програмуванню на моїх очах і скільки часу це у них забрало.
Все це допомогло зрозуміти студентам, що практика потребує хорошого часу, щоб закластись на потрібний рівень. Стало зрозуміло, що книга із практичним проектом не читається за один тиждень і навіть місяць. Кожна глава потребує кілька тижнів для розбору і виконання усіх домашніх завдань.
З цієї історії я для себе зрозумів, що проблема була не в тому, що важко навчатись, а в тому, що треба наперед попередити людину про орієнтовний мінімальний час. Це допомагає людині налаштуватись на правильний ритм і набратись терпіння і мотивації. Тому тепер після прочитання даної статті, я думаю, ви маєте хорошу картину про орієнтовний час необхідний людині, щоб отримати роботу програміста з нуля. Налаштовуйтесь, заряджайтесь і до справи!
В мене ситуація трохи подібна до описаної вище.Почав навчатись на курсах,поки що основи програмування. Не знаю як піде, адже по віку зовсім не студент (38р),і навчання йде трохи зі скрипом.По натурі більш схильний до гуманітарних наук, мови,психологія та економіка мені йдуть добре, навчаюсь на онлайн курсах, сертифікат IELTS з англійської на руках.З позитивних якостей, це сильна самомотивація, як хочу чогось досягти, то неодмінно дійду до цілі. Черговий виклик для мене 🙂
Прочитал этот пост, и скажу 2 года назад так и было. А сейчас джуном найти работу невозможно
я би таким категоричним не був. хороші джуни находять. на dou.ua є кілька відкритих джун позицій, і багато контор великих не лише джунів беруть але і трейні (напр softserve, nix, etc…)
Віталій, а чи використовуєте ви сьогодні в своїй роботі англійську мову? Чи є у вас в команді перекладач, наприклад, який розмовляє з замовниками? Або як взагалі організоване спілкування?
На даний момент ще поки я роблю всю вербальну комунікацію з потенційними та існуючими клієнтами.
Ностальгій від згадки тестового для prom.ua на фласку)
Згідний із висновками статті. Головне систематичність, і ті кількісні щоденні старання створять нові якісні зміни – створять програміста!
100%. більшості нам в тій чи іншій мірі бракує систематичності. успіх у будь-чому – це всього-навсььго правильні щоденні звички. звучить легко, реалізувати складно.
Привіт, стаття супер, але мені мало, заходжу сюди як на Хабр, а нового останнім часом мало.
Впевнений я не один такий.
Віталій, ми твої підписники вимагаєм БІЛЬШЕ нової інфи.
Дякую.
Поки стараюсь раз в тиждень. Не завжди виходить через брак часу. Але я стараюсь 😉
Віталій, дякую, корисна стаття! Я думала, менше часу потрібно.
Щодо «за місяць спільної роботи … змотивував і заставив повірити у власні сили. Заповнив прогалини в організаційних моментах та самодисципліні» – респект Вам і уважуха, як то кажуть! 🙂
Час штука відносна. В когось за пів року виходить стати таки-сяким веб-дев джуном, а комусь три роки… Намагався підвести лінію під середнім часом з історій, що знаю.
Якщо приділяти РЕАЛЬНО хочаб по 3-4 години на день то з нуля і до першої роботи можна дійти менш як за 12 міс, при нормальному рівні англійської мови. Але це у випадку якщо людина справді працює. По собі знаю, що є купа відволікаючих факторів, проволочок, і всіляких “потім ророзберусь”. Зараз я проходжу навчання на курсах, і зі 100% впевненісттю можу сказати, що процес навчання залежить від самого учня. Викладач робить все можливе для того щоб учні розуміли, оскільки це не державний заклад а приватний то і вимоги там набагато вищі і викладачі відповідно працюють із НАТХНЕННЯМ. Учень я не найкращий, але є розуміння того, що якби я не витрачав час на інші речі а справді вчився і викладався хочаб на 80% своїх сил, то результати мої були б суттєво вищі. Тому на цей і наступний тижні наша група перерву щоб повторити пройдений матеріал, бо протягом попередніх уроків ми працювали не дуже добре. До викладачів претензій бути не може(в нашому випадку), оскільки вина наша, ми думали за нас пережують і ми все зрозумієм. ХА-ХА!
Треба піднапрягтись бо з/п в кілька тисяч доларів просто так нікому не дадуть.
Я також так думав – прочитаю кілька книжок по 600 ст. і буду розробником, мене чекало розчарування, дійсно треба попрацювати над навчанням.
Шукайте проблему в собі а не в книжці.
дякую за розширений коментар! погоджуюсь по усіх пунктах.
ще одне додам: більшість історій яких я знаю, полягали у кількоразових спробах навчитись. з першого разу мало хто вигрібав, хіба у ВУЗі
именно поэтому прошов обучение порядка 150 часов, и поняв что топчусь на месте, учясь только по вечерам, я уволился с работы, накопив денежные средства на собержание семьи на 5-6 месяцев и теперь погрузился в пучину обучения по книге Виталия и прочей доступной информации , никаких отвлекающих факторов, или стану джуниором или даже не знаю что будет 🙂 … но уверен что стану.
И как вам книга, что сейчас делаете?
успіхів!
Вот это – смелость! Сжёг мосты. Успехов Вам!
Пройшло більше, ніж пів року. Цікаво, який результат 🙂
Люблю коли у таких мотивуючих статтях є приклади! Дякую! 🙂