Что значит быть ленивым программистом?

Билл Гейтс якобы сказал:

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

На самом деле, цитата, вероятно, исходила от Фрэнка Б. Гилбрета-старшего и касалась каменщиков, а не разработчиков программного обеспечения. Тем не менее, это отличная цитата, которая заставляет задуматься о природе хорошей работы.

Итак, что значит быть ленивым программистом? И ты должен быть одним из них?

Разве я не должен усердно работать?

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

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

Но выбирать битвы нужно с умом. Умный труд так же важен, как и тяжелый труд. А чтобы усердно работать над одними вещами, нужно быть ленивым в других областях.

Самое сложное в работе разработчика программного обеспечения - это думать. Вы не хотите лениться в этом отделе; на самом деле, вам следует активно искать новые вызовы. Тебе нужна твоя лень в другом месте.

Что значит быть ленивым программистом?

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

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

Ленивый программист любит безопасность и знает, что подвержен ошибкам. Она понимает, что машинные ошибки легче найти, чем человеческие.

Ленивый программист ценит время ее и своего клиента, поэтому он сосредотачивается на жизненно важной работе, а не на количестве часов. Она посвящает свое время задачам, которые приносят пользу клиенту.

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

Примеры ленивых программистов

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

Ленивые программисты не хотели тратить время на форматирование кода, поэтому они создали Prettier.

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

Ленивые программисты устали набирать один и тот же код снова и снова, поэтому они создали Эммета.

Ленивые программисты создали все инструменты разработчика, которые мы используем, потому что они хотели облегчить жизнь. Будьте ленивым программистом; изменить мир к лучшему.

Как стать более ленивым программистом

Представьте, что вы можете выполнять повседневную работу одним щелчком мыши. Чувствуешь себя бесполезным? Что ж, твоя задача - сделать так, чтобы это произошло. Лучший способ избежать ошибок - ничего не делать. Так что вам нужно максимально автоматизировать и упростить свою работу.

Чтобы стать ленивым программистом, используйте другие инструменты. Я упоминал некоторые ранее (Prettier, Emmet, инструменты CI / CD), но вы можете найти множество других. Ищите фрагменты кода и расширения для своей среды IDE, которые помогут вам найти ошибки и включить автозаполнение. Используйте линтеры для анализа вашего кода и дополнения для автоматического закрытия скобок.

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

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

Вы когда-нибудь слышали о тестировании? Все говорят, что это отлично, и все правы. Но многие ли из нас пишут тесты? Кажется, что тесты отнимают время от «настоящей работы». Но они экономят время, которое вы тратите на отладку. Так что будь ленивым программистом и пиши тесты.

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

Время, которое вы тратите на оптимизацию своей работы и ее упрощение, является наиболее продуктивным временем дня. Итак, сделайте это приоритетом.

Разве это не опасно?

Вы можете спросить: А разве автоматизировать свою работу не опасно?. Если кто-то может выполнить вашу работу одним щелчком мыши, разве вы не устарели? Нет, это не так.

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

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

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