815

Як навчитися кодити без болю: 3 ефективні способи

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

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

Наприклад наведемо ситуацію з життя. Припустимо, ви вирішили зайнятися вивченням англійської мови – просто для себе, для загального розвитку. Через кілька років можна помітити, що знання залишилися приблизно на тому ж рівні, хіба кілька виріс словниковий запас. Якщо змінити контекст: ви приїхали до англомовної країни, грошей у кишені на пару місяців, а щоб влаштуватися на роботу потрібні знання мови — у мозку з'являється чіткий аргумент, і він фокусується на навчанні. У такому разі результативність буде на порядок вищою.

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

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

Чому мозок страждає під час навчання

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

Спочатку проведемо невелику ретроспективу. Уявіть дитину, яку вчать розмовляти, і показуючи картки просять назвати зображені на них предмети. Допустимо, там намальовано дерево. При цьому відбувається таке:

  • Дитина бачить зображення, після чого сигнал від зорового центру надходить на згадку.
  • З пам'яті мозок отримує інформацію, що на малюнку намальовано дерево.
  • Дитина згадує, що побачивши схожого предмета батьки називали слово «дерево».
  • Мозок малюка аналізує інформацію та вирішує відтворити схожі звуки.
  • Вмикається розмовна моторика і дитина намагається відтворити слово.

Якщо багато разів поспіль показувати малюкові картки із зображенням різних дерев, поступово його мозок пристосується та зменшить кількість кроків для вирішення завдання. Простіше кажучи, візуальний образ зв'яжеться з потрібним словом, і процес вимови спрацьовуватиме автоматично, з мінімальним споживанням енергії: «бачу дерево — кажу дерево». Саме так відбувається формування нейронних зв'язків.

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

Модель Колба: ефективний метод навчання для дорослих

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

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

Існують різні методи навчання на практиці, але один із найефективніших — цикл Колба чи модель контрольованої помилки. Щоправда, він підійде людям, які вже мають уявлення про програмування хоча б на мінімальному рівні. Його суть зводиться до чотирьох етапів, де ви виконуєте проект, припускаєтеся помилок, отримуєте зворотний зв'язок, а потім вносите виправлення, поступово накопичуючи потрібні знання:

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

Щоб було зрозуміліше, як це працює на практиці, розглянемо приклад із реального життя. Допустимо, ви купили нову відеокамеру і намагаєтеся з нею розібратися. Навчання за циклом Колба виглядатиме так:

  • Ви знімаєте перший ролик як вийде, намагаючись розібратися самостійно, як то кажуть «по ходу справи».
  • Якщо відео вийшло, намагаєтеся розібратися, чому: які кнопки ви натискали, що включали, як налаштовували об'єктив і так далі.
  • Якщо ролик не вийшов або його якість не відповідає очікуванням, ви відкриваєте інструкцію і намагаєтеся зрозуміти, що було зроблено не так.
  • Коли достатньо інформації, ви намагаєтеся перезаписати ролик знову, але вже з урахуванням знань, отриманих на попередніх етапах.
Модель Колба

 

Як не потонути в обсязі інформації

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

Кожна людина встановлює власні контрольні точки, на які орієнтуватиметься, проте вони повинні відповідати рівню підготовки до початку навчання:

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

Щоб контрольні точки сприяли досягненню мети їх потрібно правильно використовувати. Ми підготували невелику пам'ятку, яка допоможе новачкам розібратися у цьому питанні:

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

Як правильно вивчати програмування новачкам

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

  • Поклавшись на обіцянку реклами, маркетингових статей та інших інформаційних факторів, новачок очікує, що процес навчання буде легким, і через 1-2 місяці він зможе змінити професію на високооплачувану.
  • Вже в перші тижні навчання людина стикається з реальністю — вчити треба багато і не буде легко. Слідом за цим виникає розчарування, адже посилені старання щодо освоєння матеріалу не дали очікуваного результату.
  • Зрештою, у більшості новачків виникає думка, що програмування — лише для обраних. Це призводить до того, що багато хто відмовляється від подальшого розвитку і залишається недоучками, з поверхневими знаннями технології.

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

Як розпочати ефективне навчання із самого початку

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

Також на початковому етапі встановіть контрольні точки. Ось деякі з них, які слід визначити насамперед:

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

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

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

Як продовжити вивчення програмування, якщо потонув у теорії

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

Є різні причини, чому людина схильна не вірити у власні сили, але психологи виділяють дві основні. Перша – це ретроспектива шкільних років, коли уроки тривали по 45 хвилин. Це привело нам помилкове відчуття, що будь-яке завдання має вирішуватися в короткий термін, і якщо цього не відбувається, ми починаємо турбуватися. Насправді, у програмуванні час — це досить умовна величина. Ви можете розбирати проблему кілька днів, а потім реалізувати рішення за кілька секунд парою рядків коду. Тому намагайтеся себе привчати до того, що поспіх це ваш ворог, і перш ніж зневірятися потрібно запастися терпінням і думати довше.

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

На практиці це виглядає так: новачок, що вивчає фронтенд, вже через пару місяців може самостійно створити сайт за допомогою HTML, CSS і деяких JS-функцій. 

Порівняно з тим, що раніше він взагалі нічого не знав про технології — це величезний прогрес, через що у нього зростає впевненість у своїй компетенції. Такий стан називається "Піком дурості". Людина впевнена у своїх силах і думає, що вже багато знає, хоча об'єктивно це не так. Через якийсь час до нього приходить усвідомлення, що попереду ще багато матеріалу, питань та помилок, через що його ентузіазм та мотивація різко знижуються. Цей етап називається «Долиною розпачу». Якщо людина зможе себе подолати і продовжить навчання, у неї відкривається друге дихання, а навчання знову починає приносити задоволення. 

Таким чином ви вибираєтеся з «Долини відчаю» та потрапляєте на «Схил просвітлення», а потім на «Плато стабільності», і починаєте працювати у звичайному режимі. Щоб пройти ці стадії швидко та максимально «безболісно», рекомендуємо перейти на практику. При цьому просто взяти приклад із підручника та повторити його виконання за автором — не найкраща ідея. Натомість спробуйте знайти досить складний проект, який ви ще не знаєте як реалізувати, де доведеться розбиратися з технологіями у процесі та шукати додаткову інформацію.

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

dunning-kruger-effect-presentation-slide

 

Навчання в SpaceLAB

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