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

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

Отже, блок номер 1:

Блок 1: Проблема вибору

Що буде, якщо я виберу не ту мову програмування? Який напрямок в програмуванні, чи загалом в IT обрати? А чи знайду я роботу, якщо виберу цю мову? Я не можу визначитись між мовами Python i Java, ще буду думав… Краще навчатись у ВУЗі чи на курсах при фірмі, а чи можливо самому? Коли саме шукати ментора, зараз чи краще пізніше, коли матиму більше практики?

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

Рішення

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

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

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

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

На більшість популярних запитань початківців я відповів у курсі Програміст Початківець. Тієї інформації є більше, ніж достатньо, щоб зробити для себе правильний вибір по кожному із вищезгаданих запитань. Читаєте, складаєте план, визначаєте максимально допустиму дату для кінцевого рішення і рухаєтесь далі. І не варто відкладати на більше, ніж 1-2 тижні. Якщо за 2 тижні не нагуглили і не напитали, то за 4 тижні не думаю, щоб щось змінилось.

Блок 2: Відтермінування практики

Часто отримую запитання типу: “Прочитав Кнута по Python. Що далі ще можна почитати?” Замість того, щоб радити додаткові книги, зазвичай, питаю, а для чого ще одна книга? Яка кінцева ціль?

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

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

Рішення

Так само і з програмуванням. Книга добра лише у поєднанні з практикою. В більшості випадків (звісно, якщо ви не освоюєте як першу мову одну із старіших низькорівневих мов програмування, які вимагають добрячої теоретичної бази і розуміння принципів функціонування комп’ютера загалом), щоб почати писати простий код (а таким він буде на початку, ніхто не пише складний код одразу!) не потрібно читати книг взагалі. Достатньо пройти один-два безкоштовних онлайн курси по обраній вами мові програмування і одразу паралельно відкривати свій редактор тексту і пробувати писати та розв’зувати нескладні завдання.

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

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

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

Блок 3: Не можу знайти курси, ментора, і т.д…

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

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

Також я розписав як працювати із ментором, як, коли і для чого поступати на курси чи у ВУЗ. Тим не менше і далі отримую питання типу: “Не можу знайти ментора, підкажіть де можна знайти. Може маєте когось на прикметі?”

На що відповідаю запитанням: “А що ви уже спробували на даний момент, щоб знайти ментора?”. В 90% отримує відповідь – “Поки нічого”. Або в кращому випадку: “Запитав 2х знайомих програмістів. Відмовили.”.

Рішення

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

Досить часто ми відмовляємось від спроб в момент, коли були уже дуже-дуже близькі до результату. Тому, якщо ви таки пробуєте і робите необхідні дії, якщо вже думаєте про те, щоб здаватись – заставте зробити ще 10 спроб. Результат неодмінно буде.

Якщо ж ви ще нічого не робили, тоді не дивно, що немає результату.

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

Програєте не тоді, коли щось не вдалось, а коли перестаєте пробувати.

Тому, можете сміливо заявляти, що не знайшли ментора, якщо:

  • сконтактували особисто усіх друзів та знайомих програмістів і отримали відмову (мінімум 20 контактів, немає стільки знайомих програмістів? – заведіть);
  • у всіх своїх соцмережах публічно повісили оголошення, що шукаєте ментора;
  • так само в рубриці Шукаю Ментора на replace.org.ua та dou.ua форумах;
  • відвідали хоча б 5 подій з тусовками програмістів і там, з власної ініціативи, познайомились із 10-ма програмістами на кожній із подій; і отримали від усіх відмови;
  • відвідали у вашому місті усі IT коворкінги, познайомились із людьми та дали знати, що шукаєте людину, яка б вам допомогла у освоєнні програмування;
  • онлайн або оффлайн сконтактували 10-20 незнайомих вам людей і спитали чи не захочуть бути вашими наставниками.

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

Блок 4: Не можу знайти роботу

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

Інший випадок, який є більш цікавим для нас в даний момент, – людина подається на роботу і не отримує відповіді, або отримує негативну відповідь.

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

Тому, щоб пробитись треба неабияк постаратись, або набратись самостійно практичного досвіду.

Рішення

Впершу чергу потрібно брати спочатку кількістю, яка переходитиме повільно у якість. Поставте собі за ціль пройти 40 інтерв’ю перед тим як здавати позиції. Ось живий приклад людини, яка пройшла 40 інтерв’ю за рік і отримала свою першу роботу. Якщо ваша кількість буде такою ж, тоді можете сміливо заявляти: “Я зробив усе, що міг. Я здаюсь!”.

Головне при цьому розпитувати про причини відмови і враховувати їх при наступному інтерв’ю. Пам’ятаємо про СВІДОМУ практику.

Також після кожного невдалого інтерв’ю можете запитати чи можна податись до цієї ж фірми повторно за деякий час.

У випадку, якщо по вашому обраному профілю не вистачає позицій – контактуйте фірми, які не мають позицій для початківців. Хто-зна, можливо попадете у потрібний час, у потрібне місце, де оцінять вашу про-активність. Багато фірм не публікує таких позицій, а шукає між своїми. Тому просто шукаєте список фірм, заходите на їхні сайти, контакт форма і оформляєте гарний лист. Це не боляче 😉

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

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

Блок 5: Робота над особистими якостями

Мій рекорд персонального менторства: людина за один місяць спільного зі мною навчання отримала свою першу роботу.

Думаєте це я такий чарівник, що зміг масу знань по Python, веб-розробці, Django фреймворку і т.д. “запихнути” в голову людини за один місяць та ще й набити руку на реальному програмуванні? Звісно ні! Людина уже володіла необхідними знаннями та мала деяку практику кодування.

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

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

Рішення

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

Тому той, хто впертіший, товстошкіріший і самовпевненіший, доволі часто швидше досягає успіху. Навіть, якщо знань і практики у нього менше. Світом керують не найрозумніші, а найвпертіші і ризикові (Bold rules the world).

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

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

Ось список конкретних щоденних дій для досягнення конкретних цілей. Якщо введете їх на рівень щоденних звичок, вони працюватимуть на вас навіть у періоди стресів та серйозних “напрягів”:

  • щоб навчитись програмувати: 120хв кодування, 60хв теорії, 30хв англійської;
  • щоб знайти ментора: контактувати 5 незнайомих людей за інтересом програміст;
  • щоб знайти роботу: 15хв на складання і покращення резюме, 60хв на пошук фірм/вакансій та розсилку 5 листів; одне інтерв’ю на 1-2 тижні.

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

 ***

Якщо слідуватимете вищенаведеним рекомендаціям, тоді ваш шлях до першої роботи пришвидшиться в рази. Життя занадто коротке, щоб через відчуття “дискомфорту” і надумані проблеми скидувати швидкість свого навчання 😉

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