Рубрики сайта

Главная
Мои работы
Статьи
Услуги
Карта сайта
Контакты
Что делает программиста действительно великолепным?

Некоторые считают, что позитивный настрой. Или диета с высоким содержанием сахара, кофе и ветчины. Или темный угол и cтол, уставленный мониторами.

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

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

Пессимизм

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

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

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

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

От него часто можно услышать: «А что, если что-то пойдет не так?»

Лень

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

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

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

От него часто можно услышать: «Мы можем это автоматизировать».

Любопытство

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

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

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

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

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

От него часто можно услышать: «Возможно, есть другой способ».

Педантичность

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

Точно так же они будут придираться к мелочам в коммуникации, задавать казалось бы очевидные вопросы, просто чтобы быть уверенными, что их правильно поняли. Это особенно верно в таких вещах как отчеты об ошибках. Хотя общаться с ними не всегда просто, они всегда сумеют четко и эффективно донести идею. Эта четкость – огромное преимущество в любом коллективе разработчиков, особенно том, где поощряются обучение и самообучение.

От него часто можно услышать: «У меня есть ещё парочка вопросов…»

 

 
     Rambler's Top100