Напевно, найскладніше при навчанні програмуванню – зберегти мотивацію і зосередженість на протязі 8 місяців і більше. Ось кілька порад, які допоможуть вам не здатися на шляху до мети.
Пам’ятайте про кінцеву мету
Ніщо так не демотивує людину, як не розуміння того, куди вона йде, де кінцева мета, де точка, куди вона повинна прийти.
Я багато чув різних історій про те, як треба візуалізувати цілі: представляти, як купуєш сир за 500 гривень або їдеш на тракторі. А я б запропонував подумати про те, заради чого ви працюєте. Якщо вам подобається програмування, якщо ви хочете говорити про себе «Я програміст» – це і є мета.
Утримуйте свою мету в пам’яті. Пам’ятайте, що поки ви томитеся кілька днів з налаштуваннями оточення і у вас не коннектяться бази даних, кожна хвилина витраченого часу вас наближає до програміста. Не результат, а саме процес його досягнення.
Якщо у вас все вийшло з першого разу, це не робить вас кращим програмістом. Швидше за все, вам просто пощастило, і ви випадково наткнулися на правильне рішення. А може, ви і правда щось добре освоїли.
У міру того, як ви розбираєтеся, ви вчитеся. Час, витрачений на розбір ситуації, це і є навчання. Якщо ви щось зробили швидко, переходьте до наступного завдання і мучтеся там. Процес навчання це і є муки. Ви не безглуздо витрачаєте час, ви рухаєтеся до мети.
Ставтеся реалістично до своєї мети
Ніхто не народжується семи п’ядей у чолі і з вбудованим знанням всіх мов програмування і фреймворків. Всі проходять складний шлях. Ніхто не справляється з усіма завданнями без проблем. Люди завжди проходять через терни.
Ставтеся до навчання реалістично. Якщо ви ніколи не займалися програмуванням, а тільки представляли в мріях, як це буде, киньте думати, що за три місяці ви станете програмістом. Це займе рік, а може і більше, але мінімум півроку. Швидше не виходить. Вам потрібно перебудувати мозок на інший тип завдань. Вам потрібно звикнути, що немає нерозв’язних проблем. Що все можна полагодити, якщо крутити в руках достатньо довго.
У багатьох інших областях, зіткнувшись з нерозв’язною проблемою, можна відмовитися від завдання і знайти інше. У програмуванні, якщо ти зіткнувся з проблемою, верти. Рішення рано чи пізно знайдеться. Але для такого підходу потрібно чимало часу. Скільки саме – залежить від людини. В декого вийде швидше, у декого повільніше. Ставтеся реалістично до цього.
Вибирайте послідовність, а не швидкість
Чи не налаштовуйтесь на те, щоб вирішити якесь завдання за певну кількість часу. Краще плануйте так: коли я вирішу цю задачу, я перейду до наступної. Копайте цей город, рухайтеся крок за кроком.
Варіантів-то особливо і немає. Саме в процесі вирішення завдань ви і зростаєте як програміст. Спочатку ми робимо одну задачу, і робимо до тих пір, поки не зробимо. Після цього переходимо до наступної задачі. Все просто.
Так, потім дивишся на календар і думаєш – я розраховував, що це буде швидше. Ну і що? Вийшло, як вийшло. Вас це не робить поганим фахівцем. Ви довше провозилися – ви більше вивчили.
Нарощуйте м’язи в бою
Налаштовуйтеся на те, щоб працювати, долаючи свій страх того, що не вийде, і що вам не дано. Всім дано, і вам дано, на це і налаштовуйтесь. Все це – навички, результат витрачених годин. Ви витратили більше годин? Ви прокачались краще за того, хто витратив менше часу. Не здавайтесь.
Мій особистий лайфхак такий. У людини масу сил забирають роздуми: «Чи в ту сторону я йду? Чи своєю справою займаюся?». Тому я регулярно проводжу ревізію своїх цілей, що і вам рекомендую. Наприклад, раз на місяць плануйте день, коли ви сідаєте і роздумуєте кілька годин: «Чи правильно я йду, може, даремно я пішов в програмісти?».
Виписуйте плюси і мінуси на папірці, радьтеся з близькими. Якщо ви прийдете в результаті до того, що це ваше і ви дієте правильно, на найближчий місяць до цієї думки не повертайтеся. Не витрачайте сили на те, щоб заново перерішати вже вирішене.
Зосередьтеся на робочих завданнях.
Уникайте вигорання, відпочивайте
Якщо ваше єдине джерело радості – робота, це не провісник вигорання, а його перша стадія. У вас повинні бути різні джерела отримання радості. Проведення часу, яке приносить вам задоволення. Риболовля, самокати, гірські лижі, карткові ігри, спів в хорі. Головне, щоб воно не було пов’язано з сидінням за комп’ютером. Знайдіть своє заняття, яке приносить вам радість, і потратьте достатньо часу, щоб не вигоріти.
Ви можете витрачати весь час на навчання, але тоді досить швидко наступить вигорання. Ваш організм почне чинити опір. Є китайська приказка: «Швидко – це повільно, тільки без зупинок». Є незліченна кількість історій про те, як людина рухалася повільніше інших, але прийшла до фінішу раніше, тому що інші здалися, не дійшовши до фінішу.
Навчання – це не спринт. Ми не ставимо задачу все вивчити якомога швидше. Ви не на Олімпіаді, ви не можете собі дозволити прийти до фінішу і лягти в позу зірки. На фініші треба бути таким же свіженьким, як і на старті. Вам же йти влаштовуватися на роботу, проходити співбесіди – це теж тяжка праця. Потім ви потрапите на першу роботу, що теж непросто. Часу розслаблятися не буде.
Тому налаштовуйтесь на марафон. Висипайтеся, знайдіть хобі до душі, і вчіться з тією швидкістю, з якою вам комфортно. Не примушуйте себе, тому що організм вам помститься. У вас буде падати мотивація, поки ви це не покинете.
Не дозволяйте синдрому самозванця збивати себе з шляху
Синдром самозванця буде у всіх. Розумним людям властиво сумніватися в своїх цілях. Особливо якщо поруч є хтось, у кого виходить краще і швидше.
Пам’ятайте: у вас повинно вийти. Немає причин, чому б саме у вас це не виходило. Ви не виняток з людського роду. Всі люди здатні навчитися програмуванню, якщо хочуть.
Знайдіть однодумців
Гуртом і дядька бити простіше, так би мовити. Зберіться натовпом, так буде набагато цікавіше. Навіть один розуміючий співрозмовник допоможе вам розібратися з масою проблем. Обговорення того, як у вас щось виходить або не виходить, підніме вам дух. Ви прорветеся набагато швидше.
Де знайти таких людей? Якщо ви десь навчаєтесь, то спілкуйтеся зі своїми товаришами по навчанню. Пам’ятайте, що networking is a king. Спілкування з іншими людьми дуже важливо.
Уміння знайти інформацію за допомогою інших людей – така ж магічна кнопка для програміста, як уміння гуглити. Частенько виявляється, що ти не можеш Гуглу правильне питання задати. А іншим людям ти можеш передати інформацію, яку в пошукач не засунеш. І людина тебе зрозуміє і порадить, наприклад, зайти з іншого боку завдання. Люди – це важливо.
Не порівнюйте себе з іншими
Всі сучасні психологи кажуть, що порівнювати себе з іншими – шлях в нікуди. Кожен з нас середньостатистична людина, і завжди є люди, які щось роблять краще за вас. Починаючи від зав’язування краватки і закінчуючи програмуванням. Хтось із оточуючих буде краще. Ну і що?
Нехай ваші двоє-троє знайомих вчаться краще вас. І що? Якщо ви не опитали мільйон людей, ця вибірка не релевантна. Не порівнюйте себе з іншими, порівнюйте з собою.
Подивіться на себе. Ви зробили щось сьогодні краще, ніж учора. Ви молодець! А хтось вчиться повільніше.
Навіть ваш товариш, якщо перескакує якісь етапи, пропущене йому доведеться довчати на наступних етапах. Я часто стикався з тим, що навколо були крутіші програмісти, але мені це не заважало рухатися в моєму темпі.
Залишайтеся допитливим, отримуйте задоволення
Пам’ятайте, що 21 століття дозволяє займатися тим, що нам цікаво. Ви вибрали собі заняття програмуванням, devops, qa або дизайн. У будь-якому з них буде купа нудного, одноманітного. Але в будь-якому випадку буде і цікаве.
Не можна розраховувати, що будь-яке заняття буде цікавити завжди. Ви не маленька дитина, розважати вас ніхто не зобов’язаний. Так, звичайно, новачкові спочатку буває нудно, тому що він чогось не розуміє, в чомусь застрягне. Але це нормально.
Згадайте, як ви вчилися кататися на велосипеді, ковзанах або лижах. Як спотикалися і падали, як у вас не виходило. Тут рівно та ж сама ситуація. Коли у вас почне виходити, ви будете отримувати справжній кайф від цього заняття.
Звичайно, регулярно з’являтимуться нові челенджі і потрібно буде знову вчитися новому. Але хіба це погано? Який сенс жити так, щоб ніяких проблем не долати? В цьому ж і є інтерес, і зростання над собою.