На сторінках мого блогу я зазвичай готую статті, кожна з яких відповідає на одне конкретне запитання, яке виникає у більшості початківців програмістів. Також у курсі Програміст Початківець я висвітлюю основні кроки на шляху початківця. Але ніде немає коротенької витяжки, покрокової інструкції, як зв’язати усі ці кроки докупи. Починаючи з нуля і закінчуючи успішним пошуком своєї першої роботи.
В цій статті я спробую резюмувати усю інформацію, якою володію, і надати покрокову інструкцію починаючи з нуля і аж до посади джуніка. Якщо ви уже далеко не нуль, але ще не маєте заповітної роботи програміста (або загалом IT спеціаліста), тоді інструкцію можете почати опрацьовувати із потрібного вам місця, взалежності від етапу, на якому знаходитесь.
На кожному із етапів я також надам приблизні часові рамки, необхідні для його проходження. В кожного даний період відрізняється. Комусь вдається опанувати програмування з нуля до першої роботи за 3 місяці (такий рекорд у одного із моїх знайомих), а комусь для цього треба навіть 2-3 роки.
У кожного з нас є свій унікальний шлях і він, звичайно, може відрізнятись від того, що опишу нижче. Проте, спробую надати ті кроки і в тій послідовності, як це траплялось у більшості випадків із моїми студентами та людьми, яких знаю особисто. Впевнений, що дана інструкція дасть декому із вас хороше пришвидшення у нашому нелегкому ремеслі.
1. Хочу стати програмістом. Що далі?
Коли до мене приходять із подібним запитання, тоді перше, що рекомендую зробити – підписатись на мій безкоштовний емейл курс Програміст Початківець. Завдання даного курсу полягає у тому, щоб дати загальне розуміння усіх необхідних кроків і допомогти початківцю скласти загальну картину про професію програміста.
Але, що є ще важливішим на даному етапі, це зрозуміти чи потрібно вам це програмування взагалі.
В даний момент, коли маємо в країні добрячий економічний спад, значно збільшились випадки, коли люди пробують перейти в IT із інших сфер. У багатьох випадках єдиною їхньою мотивацією є висока зарплата. Гроші, хоч і мотивують, проте зовсім недовго. І якщо, в кінцевому результаті, немає задоволення від процесу, відповідно, користі буде небагато як працівнику, так і роботодавцю. В перспективі, протягом навчання, студент повинен знайти додаткові причини для освоєння програмування, ніж лише гроші.
Тому в даному курсі я неодноразово наголошую на важливості правильної мотивації та причин для освоєння програмування.
Курс складається із 10 уроків, які приходять через день, щоб був час на опрацювання домашніх завдань. Ось завдання студента протягом курсу:
- переконатись, що програмування не йде в розріз із основними цінностями та природніми нахилами;
- розібратись із тим, які методи навчання підходять саме йому;
- зрозуміти краще суть професії програміста, а також знань та навичок, якими володіє програміст;
- зорієнтуватись у сучасних мовах програмування та напрямках;
- сформувати план наступних дій щодо навчання та отримання першої роботи.
Я не рекомендую обирати мову чи напрямок уже на даному етапі. Чому – поясню далі. Два основні завдання:
- переконатись, що ваш характер і цінності не суперечать можливій новій професії;
- та сформувати наступний план дій.
На даному етапі відсіюється невелика частина студентів. В основному ті, хто зрозуміли, що сидіти за комп’ютером цілими днями – не для них. Як показує курс Програміст Початківець – 5% студентів відписуються від курсу уже після перших 2х уроків.
Часові рамки: 20 днів
2. Швидка проба
Якщо стандартний день програміста вас не лякає, а навпаки приваблює, тоді час зробити швидку пробу.
Перед тим, як шукати курси, ВУЗи, наставника, проекти, я рекомендую (для тих, хто ще зовсім нічого ніколи не програмував) пройти будь-який безкоштовний онлайн курс з однієї із сучасних мов програмування. Це може бути мова Python, Java, Php, Ruby, C#. Особливої різниці немає для того, щоб просто спробувати. Курсу Програміст Початківець вам вистачить, щоб зробити вибір мови для швидкої проби.
Існує маса онлайн сервісів з безкоштовними курсами, як англомовних так і російськомовних, і навіть україномовних, де можна спробувати свої сили.
Проходите один курс, розв’язуєте задачі, набираєтесь теорії, пробуєте розібратись самостійно з основами обраної мови програмування.
Основна задача даного етапу: перевірити чи вам це все діло пішло і чи сподобалось. Якщо так, тоді це означає, що ви можете самостійно шукати та отримувати інформацію. А також те, що ваші шанси на успіх в освоєнні програмування значно зросли. В такому випадку наступний етап пропускаєте.
Якщо ж курс пішов досить складно, інформацію сприймаєте важко, бракує розуміння, тоді два варіанти:
- здаєтесь і шукаєте кращої професії для себе 🙂
- або рухаєтесь до наступного етапу і робите ще одну, але вже не таку швидку, пробу.
На даному етапі відсіюється значно більше людей, ніж на попередньому, адже ми вплотну підійшли до програмування і треба освоювати масу інформації. Тут, зазвичай, відсіюються люди, яким важко дається вивчення нових речей i які не отримують кайфу від постійного навчання.
Часові рамки: 2-5 тижнів
3. Навчальні курси – набираємось теорії
Якщо ніколи не було справи з програмуванням, то, швидше за все, самому нагуглити теоретичні знання і освоїти їх – буде непростим завданням. Проте, якщо ви із тих, хто кайфує від щоденного вивчення чогось нового, є шанси, що ви самі справитесь із попереднім етапом і зможете навчитись самостійно всього того, що вас навчать у ВУЗі чи на курсах.
Я, особисто, теоретичну частину освоював самостійно. Не скажу, що було легко. Просто в той момент навчався на стаціонарі (не по професії програміста) і поєднувати із ще одними курсами чи ВУЗом не було можливості.
Якщо швидка проба не пройшла, тоді, перед тим, як здаватись, рекомендую спробувати піти на навчальні курси. Якщо ж вік і час дозволяє, можна, звичайно розглянути навіть ВУЗ, якому присвятити цілих 5 років навчання. У кожного своя унікальна ситуація, відповідно обирає під себе. Ось стаття, де я описав де краще навчатись і як робити вибір.
В будь-якому випадку, основна задача даного етапу – присвятити більше часу, щоб отримати теоретичні знання і необхідний мінімум, щоб переходити до практики. Якщо навіть після цього вам не пішло – серйозно задумайтесь чи дійсно воно вам потрібно.
На даному етапі, при навчанні у ВУЗі, відсіюється більше, ніж половина студентів. Нажаль ті, хто поступає “на програміста” у ВУЗ, далеко не завжди закінчує свій шлях роботою в IT. В більшості випадків ВУЗ дає, як мінімум, розуміння чи потрібно воно вам. Натомість, відповідь на дане запитання можна значно швидше перевірити з допомогою попередніх етапів і не тратити 5 років свого життя.
Курси чи ВУЗ, в більшості випадків, дадуть вам лише теорію. Практику ж отримати можна на наступному етапі.
Часові рамки: 2 місяці – 5 років (дуже залежить від типу курсів, ну і ВУЗ звичайно 5 років)
4. Практика – основа основ
Якщо розібрались базово хоча б з однією мовою програмування, основами алгоритмів, а ще краще і з додатковими технологіями обраного напрямку, тоді час переходити до найважливішої і найскладнішої частини нашого шляху – отримання практики програмування.
Тут не йде мова про рішення задачок чи прикладів теоретичного курсу, а швидше про цілі проекти, наближені до реальних. Без них у вас просто не буде що додати у ваше резюме. Подібні проекти дадуть вам досвіду, без якого рекрутери не хочуть брати навіть на посади джуніків.
Таким чином, маємо замкнуте коло, коли без досвіду не знайдеш роботу, а щоб отримати досвід, потрібно працювати. В таких умовах початківець потрібен пробувати усі можливі методи отримання досвіду і практики ще до своєї першої роботи.
В даній статті я окреслив більшість відомих мені методів з детальним описом по кожному із них. Найкращими і найпростішими для початківця я вважаю менторство (шукати наставника) та спеціалізовані курси при програмістській фірмі.
Як один, так і другий метод є досить непросто організувати для себе. Тому, щоб ще більше не ускладнювати задачу, я рекомендую на даному етапі, не прив’язуватись до мови програмування чи напрямку. Натомість, погоджуватись і займатись тим, де знайдете допомогу ззовні. І не думайте, що ті теоретичні навики, які ви набули на попередніх етапах пропадуть намарне. Вони заклали вам базове розуміння програмування як такого, і все це вам пригодиться при освоєнні кожної наступної мови чи технології.
Саме так. Якщо вивчали половину року мову Python, а знайшли наставника чи курси (після яких можуть взяти на роботу) по Php – хапайтесь за них поки не пізно 😉 Допомога ззовні в рази пришвидить ваше навчання та підвищить шанси на успіх. Далі, протягом своєї кар’єри ви ще не один раз вивчатимете нову мову програмування. Немає змісту на самому початку ускладнювати собі завдання, воно і так досить складне.
Отже, основна задача даного етапу: здобути практику та досвід працюючи над близькими до реальних проектами. Так ви і здобудете необхідні навички і отримаєте суперовий запис у власне резюме.
Також, під час даного періоду я рекомендую читати паралельно книги по технологіях і мовах, якими займаєтесь у проекті. Книги допоможуть сформувати загальну картину із тих кусочків, що складатимуться у вашій голові під час роботи на конкретними завданнями. Тут описав, як краще початківцю освоювати книги і коли.
Цей етап є найважчим. Його проходять одиниці. І що є найцікавішим, проходять не ті, хто розумніші, швидші, більш придатні до програмування, а ті, хто має більше терпіння, самодисципліни, віри в себе, оптимізму та міцніші горішки 😉 Як показує мій особистий досвід тим, кому дуже повільно все йшло, зазвичай, хоч і пізно, але таки доходив до своєї цілі.
Часові рамки: 2 місяці – 1 рік
5. Вчимо ще одну мову – англійську
Навіть початківцю бажано знати англійську мову на початковому, або, ще краще, на середньому рівні. Вона дасть доступ до більшого об’єму навчальних матеріалів, а також допоможе спілкуватись із партнерами та замовниками на місці роботи.
На скільки важливою є мова? Що саме вивчати спочатку? Як і коли? На усі ці запитання я уже дав відповідь у даній статті.
Якщо ж зовсім коротко, то впершу чергу рекомендую довести до потрібного рівня програмування. Якщо є вільний час, тоді займаєтесь англійською. Рекомендую займатись англійською паралельно із вивченням програмування. Базового рівня читання, письма та граматики в більшості випадків буде достатнім. Решту дізнаєтесь вже при проходженні інтерв’ю.
Не знаю людей, які освоїли програмування, але здались при пошуках роботи через брак англійської 🙂
Часові рамки: 3-6 місяців (для освоєння необхідного базового рівня)
6. Час на резюме
Після 5-го етапу у вас має бути досвід та практика розробки наближеного (а краще реального) до реального проекту. Це дасть вам ту заповітну нотатку у ваше резюме, на яку найбільше звертають увагу під час набору на роботу джуніків. Цей запис дасть вам значну перевагу над іншими кандидатами. А в більшість фірм без нього просто не візьмуть.
Також я присвятив кілька статей з правилами та підказами по складанню ефективного резюме. Там знайдете форму, секції та інструменти для створення резюме та супроводжувального листа.
Також рекомендую для кожної окремої фірми/посади підпасовувати своє резюме, щоб воно позитивно вирізнялось на фоні інших кандидатів та показувало роботодавцю, що ви класно підготувались і дізнались дещо про фірму, на яку хочете попасти.
Ціль даного етапу: підготувати конкуретне резюме, яке збільшить ваші шанси на отримання бажаної роботи.
Зрозуміло, що на даному етапі відсіювання немає. Усі долають даний етап упішно, адже результат буде лише на наступному етапі.
Часові рамки: 1-5 днів
7. Пошук роботи
Тепер у вас є все необхідне, щоб почати пошук роботи:
- знання,
- практика і невеликий досвід,
- англійська мова,
- резюме.
Шукаєте і збираєте список з перших 10 компаній, куди надсилатимете резюме. Для більшості напрямків і мов програмування вибір посад джуніорів досить обмежений, адже, як я вже згадував вище, усюди хочуть уже професійних програмістів.
Тому, якщо не знайшли готових вакансій на сайтах фірм чи порталі dou.ua, рекомендую пройтись по фірмах, що займаються технологією, яку ви вивчали, проявити ініціативу, та самим розпитатись про потребу у джуніках. Можна одразу вкласти своє резюме окрім супроводжувального листа. Про вас як мінімум згадають, якщо з’явиться перша необхідність в джуінорі.
Як готуватись та проходити інтерв’ю – все це описано в даній статті.
На даному етапі перемагає той, хто краще сприймає невдачі і з ще більшим азартом рухається далі. Тому, одразу налаштуйтесь на довгий шлях і далеко не одне інтерв’ю. Тоді буде приємною несподіванкою отримати першу роботу з першої спроби 😉
Алгоритм дій простий. Надсилаєте резюме 10-м фірмам і чекаєте до тижня часу. Проходите інтерв’ю у тих фірмах, які зацікавились вами. Якщо відмова – розпитуєтесь про причини. Далі допрацьовуєте свої слабкі сторони і на нове коло розсилки резюме. І так допоки не отримаєте першу роботу.
Основна задача даного етапу очевидна: отримати свою першу роботу.
Нажаль на ній досить багато початківців здаються, або принаймні тягнуть резину. Адже доволі важко пережити відмову. Тому варто запастись терпінням, проявити свою твердошкірість (або напряцювати її в процесі) і не здаватись допоки не пройдете 40 інтерв’ю.
Часові рамки: 2 тижні – 4 місяці
8. Постійне вдосконалення та вивчення нового
Цей етап я виокремив лише для того, щоб наголосити, що програміст – це людина, яка вивчає щось нове щодня і не припиняє свого навчання.
Будь-яка зупинка не просто затормозить ваше просування по кар’єрній драбині, але може і зовсім викинути за борт IT. IT – сфера надзвичайно динамічна і любить тих, хто любить розвиток та прорес.
Після першого року роботи джунік досить часто змінює своє перше місце праці. Адже розуміє, що знає значно більше, і відповідно запити до робочого місця, умов праці, оплати підвищуються. Також після першого року людина розуміє краще, чим хоче далі займатись: технології, проекти, команда. Все це призводить до пошуку нових можливостей.
***
У кожного свій шлях та свій відведений час на нього. Але ціль у всіх спільна – знайти першу роботу в IT. Велика кількість тих, хто починає, не доходить до свого результату. Це означає, що або зарано і треба буде зробити ще декілька спроб, або не його. В будь-якому випадку треба набратись терпіння і закатати добряче рукава. Кожна нова професія потребує не одну тисячу годин для опанування. Тому, хоч і не надійтесь на легку дорогу, у вас є дуже високі шанси досягнути цілі!
Надіюсь дана інструкція пришвидшить ваш особистий шлях. Успіхів!
Якщо ви вже пройшли даний шлях, тоді запрошую вас прокоментувати в двох словах, яка у вас інструкція?
Як на рахунок вікових обмежень? Чи у віці 33років є сенс починати навчання? Я саме з тих то свого часу зійшов з потягу IT тепер дійсно наздогнати дуже складно(
звісно що є сенс. кілька місяців тому ми випустили наш перший потік курсу Старт Дракона. і всі 25 учасників мали 30+. 40% завершили мінімальний план по домашніх. ось детальніше про вік почитайте тут: http://www.vitaliypodoba.com/2015/03/programmers-age/
Порекомендую хороший сайт https://ru.duolingo.com/ для изучения языка, а частности английского. Построен в игровой форме, что облегчает обучение и мотивирует.
Приєднуюсь до коменту вище. Стаття чудова. Обов’язково використаю поради, зазначені у статті.
P.S. По поводу вивчення інозмної мови, то англійські онлайн курси програмування (наприклад codecademy)
допомагають заставити себе прочитати і осмислити іноземний текст, проте високого скілу вони не нададуть
дякую!
так, це непоганий варіант з англомовними курсами
Гарна інструкція. Дякую