Найти тему

Самое важное качество хорошего программиста

Оглавление

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

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

Вредная лень

Бич человечества, с которым нужно неустанно бороться. Мне нравится другое название – прокрастинация. Это такое состояние человека, при котором он не делает ничего полезного, откладывает все дела и задачи на потом. А вместо этого занимается просиживанием штанов за каким-нибудь не сильно напрягающим мозг занятием (просмотр сериала, игра в компьютерные игры или даже чтение «пустой» литературы).

Борись с прокрастинацией! Залипать в телефон будешь, когда нечего делать.
Борись с прокрастинацией! Залипать в телефон будешь, когда нечего делать.

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

Полезная лень

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

Зачем делать что-то самому, если за тебя это могут сделать другие? Вот это уже куда более правильный подход. И в IT сфере он применим, как ни где. Почему? Потому что у нас есть огромный плацдарм для автоматизации. Да, всегда можно пойти на крайние меры и отдавать все свои задачи на аутсорс в Китай, а самому смотреть видео с котиками, но далеко не факт, что это продлится долго.

Зачем работать самому, если за тебя это может делать компьютер?
Зачем работать самому, если за тебя это может делать компьютер?

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

Научись работать в «потоке»

Фокусируйся на одной задаче максимально обособившись от отвлекающих факторах. Убери телефон, закрой социальные сети, заткни уши наушниками и начинай работать только над одной задачей на протяжении часа (если успеешь раньше – хорошо). После часа работы сделай небольшой перерыв (5-15 минут) и приступай дальше. При переключении внимания ты уменьшаешь свою скорость работы на 40%. Да, в начале это достаточно сложно, но со временем привыкаешь. Лично я очень люблю писать код в «потоке» и если кто-то прерывает, то восстановить мысли становится очень сложно.

Автоматизируй рутину

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

Автоматизация - путь к свободе человека от рутины. Или путь к рабству под роботами (привет, Скайнет)
Автоматизация - путь к свободе человека от рутины. Или путь к рабству под роботами (привет, Скайнет)

А для нас программистом есть еще несколько советов по избавления от рутины:

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

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

Некоторые IDE предоставляют возможность написание кода за вас. Например, в используемой мной Visual Studio 2017 Ultimate есть функция написания модульных тестов. Да, качество их оставляет желать лучшего, но это лучше, чем ничего. Точно также и Database First приложения с Entity Framework. Автоматическое создание контроллеров в MVC. Позвольте машине писать код за себя, а потом просто подправьте готовый результат. Это сэкономит уйму времени и сил.

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

Ну и расскажи в комментариях какие подходы к автоматизации используешь ты? Мне и другим читателям будет очень интересно узнать твой опыт.

Большое спасибо за прочтение! Пожалуйста, поставьте лайк и подпишитесь на канал, чтобы не пропустить свежие статьи. Этим Вы очень поможете в развитии блога!
Также рекомендую прочитать статью Как распознать хорошего программиста?