Вопрос напрашивается сам собой
Сколько человек в аудитории пришли в программирование потому, что это было интересно?
Часть 1
Что такое развлекательное программирование?
Определение
Программирование ради удовольствия от самого процесса — не ради работы, не ради денег, не ради внешних требований.
На практике это выглядит так:
- Строить вещи из любопытства, как они устроены
- Исследовать новые языки просто ради ощущения
- Решать проблемы, которые существуют только в голове
- Создавать инструменты для проблем, которых нет в реальности
- Писать код, который вызывает улыбку
А это НЕ развлекательное программирование:
- Подработки или потенциальные стартапы
- Развитие навыков для продвижения по карьере
- Пошаговое следование туториалам
- Решение задач на собеседование
- Построение того, что ждут от тебя другие
Главное отличие: внутренняя мотивация против внешнего давления
Почему это имеет значение:
- Предотвращает выгорание через восстановление внутренней мотивации
- Развивает интуицию через низкостатусное исследование
- Сохраняет долгосрочную страсть к ремеслу
- Часто приводит к неожиданным прорывам и открытиям
Часть 2
Спектр развлекательного программирования
Стиль 1: Живой исследователь
- Строит в открытом доступе через стримы или блоги
- Показывает беспорядочный процесс: тупики, ошибки, рестарты
- Сообщество становится источником отчётности и энергии
- Проекты варьируются от практических инструментов до чистых экспериментов
Стиль 2: Глубокий аналитик
- Одержим пониманием, как на самом деле всё работает
- Строит игрушечные версии сложных систем
- Ценит обучение больше, чем выпуск продукта
- Часто имеет несколько «образовательных» реализаций одного и того же
Стиль 3: Творческий технолог
- Использует код как художественный медиум
- Генеративное искусство, синтез музыки, интерактивные инсталляции
- Технология служит творческому видению
- Часто сочетает программирование с другими дисциплинами
Стиль 4: Решатель проблем
- Чесать свой зуд с помощью кода
- Инструменты для решения крошечных раздражающих проблем
- Решения «достаточно хорошо» для собственного использования
- Часто случайно создаёт полезные вещи
Стиль 5: Исследователь языков
- Постоянно пробует новые языки и парадигмы
- Реализует одни и те же концепции на разных языках
- Привлечён необычными или экспериментальными языками
- Код как интеллектуальное любопытство
Часть 3
Общие паттерны во всех стилях
Разрешение строить «бесполезные» вещи
- Бизнес-кейс не требуется
- Любопытства достаточно как оправдания
- Неудачные эксперименты всё равно учат ценным урокам
Ключевой вывод: ROI не применяется к развлекательному программированию
Следи за энергией, а не за планами
- Переключайся между проектами, когда выстраданность исчезает
- Множество заброшенных репозиториев — это исследование, не провал
- Скука — это данные о том, что тебя интересует
Ключевой вывод: скука — это информация, не поражение
Документируй путешествие
- Делись процессом, не только результатами
- Обучение заставляет глубже понять материал
- Создаёт связь с другими людьми на похожем пути
Ключевой вывод: рассказывай о своих решениях
Воспринимай процесс обучения
- Ум новичка в новых областях
- Комфортно с неведением
- Процесс важнее продукта
Ключевой вывод: развитие важнее совершенства
Часть 4
Твоя личная программистская площадка
Окружение
- Отдельная папка/репозиторий для экспериментов
- Без забот production: минимум настройки, без CI/CD давления
- Быстрые скрипты инициализации проекта
- Контроль версий опционально
Подходы, которые можно попробовать
- Недельные эксперименты (2-4 часа исследования одного нового аспекта)
- Самодельные челленджи (Построй игрушечные версии инструментов, которые ты используешь)
- Проекты «почес личный зуд» (Реши свои собственные раздражающие проблемы)
- Обучающие проекты (Строй что-то, объясняя в процессе)
- Кросс-языковые челленджи (Одна задача, разные языки)
Сдвиги в мышлении
- «А что если...» вместо «Я должен...»
- Развитие важнее совершенства
- Обучение важнее выпуска продукта
- Любопытство важнее продуктивности
Часть 5
Реальные примеры в природе
Zikani Nyirenda — Практичный экспериментатор
- Создаёт случайные, но полезные инструменты: автоматизацию браузера, организаторы файлов, утилиты для Git
- Экспериментирует на Go, Rust, Python, Vue и React
- Подход «Какую маленькую проблему я могу решить сегодня?» к кодированию
- Идеальный пример почесывания личного зуда через код
Jeremiah Chienda — Полнофункциональный экспериментатор
- Исследует разные архитектурные паттерны и фреймворки
- Строит инструменты, решающие реальные проблемы, одновременно изучая новые технологии
- Показывает, как развлекательное программирование может охватить весь технологический стек
Tsoding Daily — Живой исследователь
- Стримит 4+ часа в день, строя случайные проекты с нуля
- Построил свои собственные текстовые редакторы, языки программирования, трассировщики лучей
- Показывает полный процесс включая ошибки и отладку
- Подход «Посмотрим, что произойдёт, если...» ко всему
ThePrimeagen — Высокоэнергичный решатель проблем
- Создаёт CLI-инструменты и плагины Neovim для оптимизации личного рабочего процесса
- Заразительный энтузиазм к dev tools и оптимизации
- Реагирует и критикует код и подходы других разработчиков
- Делает оптимизацию и инструментирование похожим на экстремальный спорт
Casey Muratori — Системный глубокий аналитик
- Handmade Hero: построение полной игры с нуля в эфире
- Объясняет каждую строку кода и решение по проектированию системы
- Никаких библиотек, понимание всего с первых принципов
- Демонстрирует, что можно строить современное ПО без фреймворков
Ben Eater — Образовательный строитель
- Собирает компьютеры на макетных платах, объясняет каждый компонент
- Создаёт видеосерии о том, как на самом деле работают процессоры, память и сети
- Тратит месяцы на сборку того, что можно купить за $5
- Делает фундаменты hardware доступными и захватывающими
Dan Luu — Глубокий технический исследователь
- Пишет подробные блог-посты, исследующие производительные загадки
- Бенчмаркирует всё: клавиатуры, терминалы, языки программирования
- Превращает любопытство «почему X медленно?» в исследование на тысячи слов
- Демонстрирует, как развлекательное расследование может раскрыть проблемы индустрии
Каждый представляет разный путь назад к программистской радости
Завершающий челлендж
Выбери один эксперимент:
- Построй худшую возможную версию инструмента, который ты используешь ежедневно
- Потрать 2 часа с языком, которым ты давно интересуешься
- Задокументируй себя решающим маленькую проблему
- Сделай форк интересного проекта и поиграй с ним
- Попробуй прямое кодирование или стриминг своего процесса
Единственное правило: останови, если это перестанет быть весёлым.
Финальная мысль
«Цель не в том, чтобы стать одним из этих программистов. Цель — вспомнить, почему ты вообще начал кодировать, и поддерживать это любопытство наряду с карьерой.»