Программисты тоже художники

Есть много разных определений искусства. Некоторые из них определены Мерриам Вебстер:

«Навыки, приобретенные опытом, изучением или наблюдением».

«Сознательное использование навыков и творческого воображения, особенно при производстве эстетических объектов».

Это определение с первой страницы поиска Google, вероятно, ближе к тому, что большинство из нас думает об искусстве:

«Выражение или применение человеческих творческих навыков и воображения, обычно в визуальной форме, такой как живопись или скульптура, создание произведений, которые следует ценить в первую очередь за их красоту или эмоциональную силу».

Великие художники - это те, кто может самым ясным образом передать свои внутренние мысли во внешнюю среду. Это состояние потока в том, как слова или штрихи переплетаются и танцуют, чтобы передать сообщение аудитории. В основном есть два разных вида потока. Один - это поток зрителя, а другой - поток художника. Поток зрителя измеряется как вовлеченность. Хорошо написанный роман или красивая картина легко воспринимаются, потому что все части сочетаются друг с другом как одно целое. Художественный поток - это ощущение нахождения в зоне, когда вы работаете над чем-то, что вас полностью поглощает, заставляет забыть о еде и меняет ваше восприятие времени. Вы думали, что потратили всего 2 часа, но на самом деле вы работали четыре часа. Чаще всего поток художника предшествует потоку зрителя.

Так зачем говорить о программном обеспечении и искусстве в одном предложении?

Если можно, я бы хотел рефакторировать определение искусства вот так ...

«Выражение или применение человеческих творческих способностей и воображения, создание произведений, которые следует ценить, прежде всего, за их простоту понимания и использования».

Леонардо да Винчи писал «Мону Лизу» или «Тайную вечерю» не потому, что знал, что эти картины сделают его знаменитым. Винсент Ван Гог был уволен с большинства выполняемых им работ и был известен как художник только в последние несколько лет своей жизни. Великие художники, какими мы их знаем сегодня, не пытались разбогатеть. Они пытались изобразить свои внутренние мысли и чувства на странице или холсте перед ними.

Для софтверных компаний программное обеспечение - это воплощение идеи продукта. Наша работа как программистов - полностью воспроизвести идею продукта в виде кода. Немного натянув воображение, IDE - это холст, язык программирования - это кисть, а используемые нами фреймворки - это цвета палитры. В голливудских фильмах и средствах массовой информации программисты часто изображаются как занудные и не творческие личности, которые проводят все свое свободное время, играя в видеоигры и питаясь пиццей и диетической колой. Как программист, позвольте мне развенчать миф о том, что программирование - это очень творческая область.

Программирование - это решение проблем, а решение проблем требует творческого подхода. Широту творческих способностей можно измерить по тому, сколькими способами можно решить одну и ту же проблему. Хорошие программисты - это те, кто работают над решением больших проблем масштабируемым и эффективным способом.

Как программистам нам посчастливилось работать в сфере с хорошей оплатой и в среднем довольно хорошим балансом между работой и личной жизнью. Размышления о том, как улучшить качество кода, который мы пишем, об архитектуре и модульности компонентов создадут это ощущение искусства в нашей работе.

Хорошо написанная программа мало чем отличается от хорошо написанного романа. Его легко читать и понимать, и есть поток, как части сочетаются друг с другом. Кроме того, хорошо написанное программное обеспечение делает идею продукта более масштабируемой. Багов будет меньше, и пользователям понравится им пользоваться. В нем есть как компоненты потока зрителя, так и потока художника.

Наиболее распространенная дилемма, возникающая у программистов: «У моего проекта есть крайний срок, и я хочу написать лучший код, но мой менеджер проекта хочет выпустить сейчас, а у меня мало времени». Это очень реалистичный сценарий, с которым все мы когда-то сталкивались. Я бы задала два вопроса:

1) Это жесткий дедлайн? Может ли ваш руководитель проекта не сдвинуть крайний срок даже на неделю?

2) Придерживается ли ваша организация передовой практики CI / CD?

Если у вас есть регулярные выпуски, что-то вроде еженедельных выпусков, то проблема будет меньше, если выпуск откладывается на неделю, потому что команда хотела создать лучшее программное обеспечение, которое в конечном итоге принесет пользу пользователям.

Если менеджер проекта не может сдвинуть крайний срок, и вы чувствуете, что отправленный код можно улучшить, создайте тикеты технического долга в программном обеспечении для управления проектами. Поговорите с техническим менеджером или техническим руководителем вашей команды, чтобы как можно скорее расставить приоритеты в этой работе.

Постоянное чувство апатии к своей работе приведет только к одному - вы уйдете из компании. И компании придется нанять кого-то нового, обучить их, и любые сроки, вероятно, придется отодвинуть. В интересах бизнеса предоставить разработчикам время для написания отличного программного обеспечения не только для того, чтобы у разработчиков был высокий моральный дух, но и для обеспечения того, чтобы функции, о которых еще не думали, было легче масштабировать и добавлять.

Наконец, помните, что никто не становится художником за один день. Требуются годы терпения и усилий, чтобы понять, какие шаблоны проектирования, архитектуру или структуры данных лучше всего использовать. Не бойтесь ошибаться, и ЭТО НУЖНО, если вы получите 50 комментариев по запросу на вытягивание от старшего инженера команды. В правиле 10 000 часов, чтобы стать экспертом в чем-то, есть доля правды, так что продолжайте откладывать деньги.

Забавный факт: исходя из того, с каким историком вы согласны, Леонардо да Винчи потребовалось где-то 3–13 лет, чтобы закончить Мону Лизу.

Если вам понравилось это читать, возможно, вам понравятся некоторые из моих других работ по программированию:







Вы можете связаться со мной на ленте @kitlovestech, чтобы поговорить о программном обеспечении, коде, программировании. 🤓