Клайв Томпсон — технічний письменник, журналіст у The New York Times та Wired, автор книг «Coders» та «Smarter Than You Think». На думку колег, Клайв — найвідоміший автор публікацій про програмування та технології.
У статті «Programming Isn't Hard - But It's Frustrating» журналіст поділився особистою історією: як Клайв розчарувався у програмуванні та зрозумів причину. Головне — перетворювати невдачу на позитивний досвід.
Публікуємо авторський переклад статті Клайва.
Як я дійшов висновку: проблема розробника – розпач та невдачі
«Терпіть розчарування — тільки так ви навчитеся кодингу» |
Моє дитинство пройшло у 70-х. Я часто грав у Mattel Auto Race – приставку для однієї гри. У ній ви керуєте машиною (це точка на екрані, розміром з палець) і намагаєтесь не врізатися в інші автомобілі.
Приставка Mattel Auto Race. Справа — екран з машиною, а зліва — важелі керування. Під екраном — кнопка руху авто в сторони.
Через 50 років я згадав про цю гру. У суботу ввечері вирішив зробити версію гонки на P5 – фреймворку на Javascript.
У мене виходило: витратив годину на ігрове поле, проїжджаючих автомобілів та логіку руху. Проект здався легким, тому вирішив ускладнити. За задумом, автомобілі мали з'являтися не за алгоритмом, а будь-коли.
Виникла перша проблема — я не міг керувати новим алгоритмом. Машини не з'являлися як потрібно. Повозився з кількома варіантами і нічого не зрозумів. Я розчарувався та закинув проект.
Минуло 2 дні. Я не згадую про проект, бо сумніваюсь. Я не маю навичок професійного кодера — я любитель з основами програмування в рюкзаку. Якщо я досяг межі можливостей — не знаю, що вигадати далі і як виправити проблему. Іноді думаю, що знову зіткнувся із завданням, у якому немає рішення.
Я уникаю складних проектів, щоби не розчаруватися. А всім відповідаю: «Програмувати не важко. Важче – не розчаруватися після невдачі».
Чому програмування – це щоденне розчарування
Я усвідомив це після статті «What Does Saying That 'Programming Is Hard' Really Say, and About Whom?» Бретта Беккера зі школи комп'ютерних наук Дубліна. У публікації Бретт ставить під сумнів: «програмування — це складно».
Ви могли чути від викладачів, зі статей чи від знайомих розробників, що навчання програмуванню — неймовірно складне заняття. В статті Беккер не знайшов доказів, що кодити складніше, ніж працювати медсестрі, адвокату чи шеф-кухарю.
«Програмувати важко» — культурна традиція. Люди не можуть пояснити, чому це так. Вони прийняли судження за правило. Тож новачкам складно розпочати, бо вірять: стати програмістом — складно.
Коли писав книгу «Coders», я опитав 200 програмістів. Часто люди повторювалися: навчитися програмувати не складно. Успіх залежить від уважності до деталей.
Для кодингу потрібна психологічна установка – ви щодня можете розчаровуватись. Це потрібно терпіти.
Чому ми розчаровуємось у кодингу
Програміст створює код, який має працювати. Написати його мало. Потрібно прогнати через налагодження – знайти та виправити помилки. У цьому головна причина, чому програміст розчаровується.
Розглянемо на прикладах:
-
Написали функцію – вона не працює.
-
Забули поставити кому в рядок коду або помилилися в змінних — код не працює.
-
Функція підтягує дані із сторонньої бібліотеки. А ви не розумієте, де помилилися.
-
Команда писала код кілька років. Проект закрили, а потім передали вам. Робіть із програмою все, що хочете. Але вона має працювати.
Ось що я написав у «Coders» щодо розчарування:
«У липні 1949-го вчений Моріс Вілкс піднімався сходами, коли зрозумів: «Я витратив більшу частину життя, щоб знайти помилки у власних програмах». |
Розробник не пише код щодня. Він слідкує, як працює система. Хапається за голову від помилок і намагається виправити ситуацію. І вирішити проблему виходить не в кожному випадку.
Від чого розробник може стати божевільним
Він не знає, скільки часу витратить на програмні помилки. Кілька хвилин, годину чи дві. Можуть пройти тижні чи місяці, а розробник не розбереться із проблемою. Тоді він знайде нове рішення і сподіватиметься, що код не дасть нових сюрпризів.
Коли запитують: «Чи можу я навчитися програмувати?» — я відповідаю: «Звичайно. Кожен зможе, поки ви змагаєтесь з розчаруванням».
Програмування – не єдине заняття із розчаруваннями. Робота з людьми у маркетингу, медицині чи готельному бізнесі засмучує. Люди суперечливі, не люблять говорити і не завжди привітні.
Гра на музичних інструментах чи баскетбол може розчарувати. Ви практикуєтесь щоразу, але не досягаєте результату. Мені знайоме почуття, бо працюю з людьми – пишу статті. А ще я музикант і часто намагаюсь відточити нову техніку гри на гітарі.
У програмуванні процеси мають пояснення. Ви навчаєте методологію — базові поняття та техніки. Вивчаєте мови, фреймворки, нові бібліотеки. А коли застряєте на проблемі, це схоже на особисту невдачу — бо правила не працюють.
Рішення приходить по-іншому: пробуєте нові методики, робите перерву, радитесь з колегами та перевіряєте на практиці. І це не обов'язково складно. Але пошук проблеми засмучує, і з цим треба впоратися.
Люди програмують у 18 років або після 30. З процесором на 2 ядра або на 10. Самостійно або з готовою навчальною програмою.
У Комп'ютерній Академії IT STEP Київ студенти не мають часу на розчарування. Кожну проблему потрібно перетворювати на вирішення. Учні знаходять помилки разом із викладачами. І так поповнюють портфоліо завданнями рівня Amazon, Cisco або криптовалютної біржі Binance з перших тижнів навчання.
В Академії виводимо ваші навички та знання не наступний рівень. В результаті ви — розробник, дизайнер, фахівець з кібербезпеки, який вміє працювати над труднощами. Знаєте, як вирішувати проблеми компаній та в чому корисні. Залишиться останній крок — успішно закрити співбесіду та отримати першу роботу.
Спробуйте! Перейдіть за посиланням, щоб дізнатися про навчальні програми ITSTEP більше.
Хтось думає, хтось так і не наважується. Ви ж робите перший крок. Ви попереду 9 із 10 новачків, які залишаються зі своїми думками та не рухаються далі.