
Програмування для розваг: повторне відкриття радості написання коду
Крістофер Фірі досліджує програмування для розваг, написання коду заради чистого задоволення, а не кар'єри чи прибутку. Він описує п'ять стилів практики, поширені пастки та реальні приклади.
Що таке програмування для розваг?
Крістофер Фірі пояснює, що це написання коду заради задоволення від програмування, а не для роботи, грошей чи зовнішніх вимагань. Тобто збирання чогось з цікавості, пробування нових мов, вирішення проблем, які існують лише у вашій голові, і написання коду, який приносить радість.
Він наголошує, що це не побічне зайняття, не розвиток кар'єрних навичок, не розваги, не виклики для інтерв'ю або виконання чужих очікувань. Головне — внутрішня мотивація, а не зовнішній тиск. За словами Фірі, це звільняє від примусу, розвиває інтуїцію, залишає пристрасть і часто призводить до несподіваних проривів.
П'ять стилів
«Живий дослідник» публічно створює стріми або блоги і показує тупики, помилки та перезапуски; тема — це джерело його енергії. «Глибокий дослідник» вивчає, як усе працює, створює іграшкові версії складних систем і цінує навчання вище випуску. «Творчий технолог» використовує код як засіб мистецтва: генеративне мистецтво, синтез музики, інсталяції.
«Розв'язувач проблем» кодом ріже малі особисті проекти і створює «достатньо хороші» рішення для малих завдань. «Дослідник мов» досліджує нові мови та парадигми, пише одні й ті самі концепції різними мовами та обирає незвичайні мови.
Загальні пастки
Фірі бачить загальні пастки: дозвіл збирати «безкорисні» речі, де цікавість достатня, а ROI не діє; слідуй за енергією, а не за планами; покинуті репозиторії сприймай як дослідження, нудьгу — як дані; описуй подорож; і віддавай перевагу прогресу перед досконалістю.
Для початку він пропонує окрему папку для експериментів, без переживань про виробництво з контролем версій за бажанням. Варіанти: щотижневі експерименти від двох до чотирьох годин, виклики, зібрані з нуля, малі особисті проекти, проекти навчання та виклики між мовами. Мислення змінюється з «треба» на «що станеться, якщо».
Реальні приклади
Zikane Nierenda створює випадкові, але корисні інструменти: автоматизація браузера, організатори файлів і комунали для Git на Go, Rust, Python, Vue та React. Jeremiah Chienda досліджує архітектурні зразки та фреймворки, водночас створюючи інструменти для реальних проблем. Стріми Tsoding Daily тривають більше чотирьох годин на день і збирають з нуля текстові редактори, мови програмування та ретрайсери.
ThePrimeagen створює CLI-інструменти та плагіни для Neovim. Casey Muratori на стрімі збирає з нуля повну гру Handmade Hero і розбирає кожен рядок коду без бібліотек. Ben Eater збирає комп'ютери на макетних платах і розбирає роботу CPU, пам'яті та мереж. Dan Lu пише про таємниці продуктивності та проводить бенчмарки для клавіатур, терміналів і мов.
Підсумковий виклик вимагає від читача обрати один експеримент: найгірша версія щоденного інструмента, дві години з новою мовою, опис малої проблеми, форк цікавого проекту або живе кодування. Єдине правило: зупинись, якщо розвага завершилася.
Джерела: cphiri.dev
SiTech — веброзробка з підтримкою AI
Створюємо швидкі та сучасні сайти й інтегруємо AI у бізнес-процеси. Маєте проєкт чи запитання? Із задоволенням допоможемо.