Магия и муск… программирование
Предисловие
На связи @Menzorg Меня всегда вдохновляло программирование как способ создать что-то из ничего. Это похоже на древнее искусство магии — произнести правильные слова в правильном порядке, и вот уже пустой экран превращается в живую, функционирующую систему. Пустота заполняется смыслом, а хаос обретает структуру.
В детстве, когда я впервые увидел, как несколько строк кода превращаются в игру на экране компьютера, это казалось настоящим волшебством. Именно игры вдохновили меня заняться программированием. Каждый раз, когда я создаю новый проект, я чувствую себя волшебником, который творит реальность из абстракций.
IT — это современная магия, доступная каждому, кто готов изучить её язык и ритуалы.
Это - первая статья из цикла, в котором я буду облекать свой более чем 10-летний опыт разработки в аллегории и метафоры магического искусства. Я надеюсь, что эти статьи смогут вдохновить начинающих разработчиков, поддержать тех, кто столкнулся с трудностями, и, возможно, помочь кому-то найти решения проблем, с которыми я уже сталкивался на своем пути.
В этой статье я хочу ввести параллели между искусством магии и современным программированием, показать, как магическое мышление может иллюстрировать разные аспекты работы разработчика, чтобы в следующих статьях использовать эти метафоры для более полного расскрытия отдельных аспектов.
Стихийная магия в разработке ПО
Стихийная магия — это основа всех более сложных магических практик. Начнём наше путешествие с изучения этих фундаментальных элементов. Как и в магии, в разработке мы взаимодействуем с разными стихиями, каждая из которых имеет свою специфику:
🔥 Огонь — Мотивация и озарения.
- Внутренний огонь — мотивация напрямую влияет на нашу продуктивность. Загореться идеей, и строчить как из пулемёта код.
- Профессиональное выгорание — порой мотивация стухает, или мы слишком сильно заставляем её гореть когда нам уже не хочется на самом деле, тем самым перегорая.
- Творческие вспышки — моменты озарения, когда решения приходят внезапно. Как некоторая искра жизни вдруг вспыхнет.
💧 Вода — Поток мыслей
- Поток разработки — Состояние потока, когда мы не задумываемся на что-то конкретное, и просто двигаемся вперёд, и часы пролетают незаметно.
- Нырять в глубину кода — разобараться последовательно по цепочке сначала с алгоритмами в изучаемом ПО, разделить всё на абстракции, роли, перемещаться между этими слоями и перебирать варианты плавая по абстракциям. Нырять в код, и плавать там, наверное знакомо многим.
🏔️Земля — Стабильность и надежность
- Принцип обоснованности — необходимо шаг за шагом, проверяя всё досконально, отпускать и идти дальше, оставляя за спиной уже проверенные основания, чтобы дойти до реальной проблемы и её решения.
- "Закопаться" в поисках проблемы — докопаться несмотря ни на что, разобрать всё по полочкам и деталькам. Как археолог, слой за слоем снимающий землю, чтобы добраться до истины.
- Стабильность и безопасность систем — Не брать на прод самые новые технологии? Озаботиться безопасностью протоколов? Предусмотреть шифрование? Бекапы? Обязательное наличие дев среды? Непоколебимый порядок. Надёжность гор, крепость камня!
💨 Воздух — Гибкость и эстетика
- Гибкость — Появился баг и за час не исправился? Ну тогда посмотрю другую версию библиотеки. Не помогло за пол часа перебрать разные версии? Ну тогда посмотреть другую библиотеку которая делает тоже самое. Нет других или они со своими минусами? А может можно заманкипатчить? Нет? А на сколько сложно загнать в нейронку чтобы та написала простое решение здесь и сейчас?
- Эстетика — Красота, она эфемерна как воздух. Не забывать что потребителями ПО являются тоже люди. Это и про дизайн, и про фронт, и про код, потому что код который ты написал возможно тебе же через пять лет читать, и пытаться разобраться, и иногда есть смысл написать не самым оптимальным образом но самым наглядным для того кто будет с твоим кодом потом работать.
🔮 Эфир (пятая стихия) — Интуиция и видение
- Интуитивные решения — необъяснимое понимание правильного пути. Сколько раз такое, что ну вот чую я что надо вот это и вот так!
- Видение архитектуры — способность видеть систему в целом, понимать настоящее и видеть будущее, третий глаз (на лбу).
- Аналитика — способность увидеть скрытые закономерности и связи между разрозненными данными, предсказать тенденции и направления развития. Как ясновидение, позволяющее заглянуть за пределы очевидного. Чем не предсказания?
Итоги
- Маги стремятся к балансу стихий, или оттачивают мастерство в чем-то одном — также и разработчики.
- Доминирование одной стихии ведет к дисбалансу — но работая в команде есть возможность сбалансировать систему не в рамках одной личности, а в рамках коллектива (или поругаться всем окончательно =О )
Каждая отдельная стихия на мой взгляд достойна своей отдельной статьи, и если бы вам было бы это интересно почитать, пожалуйста дайте знать об этом в комментариях.
Увидимся в следующий четверг. Cridendo Vides!