Я пишу программы днем, а фантастику ночью (или, по крайней мере, днем). Люди спрашивали меня, есть ли здесь какое-то совпадение, и это заставило меня задуматься о некоторых уроках, которые я извлек из написания прозы, и можно ли их применить и к написанию кода. Вот краткий список того, что я придумал, что, по моему мнению, применимо к обеим областям (с небольшим количеством воображения).

Письмо — это перформанс — Брэндон Сандерсон

Брэндон Сандерсон — один из моих любимых писателей, и единственная причина, по которой я не читал все его работы, заключается в том, что он чертовски много пишет. Как он еще успевает учить писать, я не знаю (плюс у него есть крутой подкаст о — как вы уже догадались — писательстве). Но я потратил некоторое время на просмотр видеозаписей его лекций и первым делом наткнулся на приведенную выше цитату (видео и транскрипция).

Странный взгляд на писательство. Легко отличить формы искусства, в которых вы потребляете перформанс (концерт, спектакль), от тех, в которых вы этого не делаете (альбом, фильм). Книги попали бы во вторую категорию. Но то, что люди не имеют прямого доступа к представлению, не означает, что его нет.

Сандерсон считает, что писательство важно, потому что оно требует умения, и это умение оттачивается практикой. Думаю, то же самое верно и для написания кода. Когда хорошо разбираешься в этом, становится легче. И лучший способ стать хорошо осведомленным — это сделать это. Лучший способ научиться программировать — это не просто читать книги, а пачкать руки. Конечно, вы будете совершать ошибки (я дойду до этого), но чтобы стать лучше, нужны практика и тренировки.

Мне также нравится интерпретировать производительность письма по-другому. Момент, в который вы пишете, важен. Ваше душевное состояние влияет на то, как вы пишете. Это, в свою очередь, влияет на качество и, наконец, на конечный продукт того, что вы делаете. В программном обеспечении это сводится к удовольствию пользователя при его использовании. Счастливый разработчик, который находится на вершине своей игры, с большей вероятностью напишет удобное в сопровождении программное обеспечение, что приведет к более быстрому исправлению ошибок и более легкой разработке новых функций для пользователей. Оптимизация для счастья разработчиков — это не роскошь, если смотреть на это с такой точки зрения. Это означает, что вы оптимизируете также и лучший пользовательский опыт.

Если у вас нет времени читать, у вас нет времени и писать — Стивен Кинг

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

Во-вторых, наблюдение за тем, что вас окружает, — отличный инструмент обучения. Один из лучших способов научиться сочинять истории — посмотреть, что сработало у других. Если вы переведете это в код, вы сможете начать работу на Github. Это отлично подходит для того, чтобы вы могли видеть, что другие люди делают в мире с открытым исходным кодом. Рабочие процессы запросов на вытягивание заставляют вас смотреть на код других людей и позволяют вам спросить, почему они решают проблему определенным образом, или заставляют вас думать о том, почему вы сделали бы это по-другому. Есть тонны видео и слайдов с докладами о программировании. Дайте себе время изучить все это и стать лучше.

Позвольте себе сосать — Все

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

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

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