Что Делает Хорошего Программиста Хорошим?

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

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

Это связано с тем, как вы действуете и, более конкретно, с тем, как вы думаете.

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

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

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

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



Они проводят собственные исследования
Или «Семь раз отмерь, один раз отрежь».

Или «Погуглите это».

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

В виде библиотек на Github, постов в блогах или просто контактов с опытными людьми.

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

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

И, к сожалению, позже они расплачиваются за свои ошибки.



Они читают сообщения об ошибках (и отвечают на них).

Сюда входит работа со стеком вызовов.

Да, это сложно и некрасиво – но если вы не хотите этого делать, как вы планируете выяснить, в чем проблема? Самые эффективные программисты, которых я знаю, не боятся докопаться до корня проблемы.

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

(Это звучит смешно, но вы удивитесь, как часто мне приходится с этим сталкиваться.

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

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

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

Они действительно несут ответственность.



Они возвращаются к источнику
Документация, тесты, люди: все это ложь.

Не намеренно, конечно.

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

Да, вы можете ничего не получить.

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

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



Они просто делают это
Хорошие программисты готовы действовать.

У них есть особенность, которую сложно контролировать: они внедряют решение, как только обнаруживают проблему или видят запрос на новую функцию, иногда слишком рано, а иногда слишком агрессивно.

Но их инстинктивная реакция на проблему — немедленное ее решение.

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

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

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

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

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

Они позволяют своим эмоциям взять над собой верх, доверяя своей интуиции, а не тщательному и подробному анализу.

Если вы торопитесь решать проблемы (или даже рассматриваете каждую проблему как глобальную катастрофу), то вы, скорее всего, совершите ошибки или не решите основные проблемы.

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

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

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



Они хорошо общаются
В конце концов, программирование — это форма общения.

Умение выражать свои мысли кратко и выразительно так же важно при написании кода, как и при написании прозы.

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

чем тот, кто не может этого сделать.

Это относится и к коду.

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



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

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

Великие программисты всегда программируют. Их коллеги будут работать по 8 часов в день — не только на работе, но и в сфере программирования в целом.

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

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

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

Я думаю, именно это делает хороших программистов такими, какие они есть.

Для них программирование — это способ изменить мир.

И я считаю это достойным уважения и восхищения.

Теги: #программирование #советы разработчикам #разработка сайтов #программирование

Вместе с данным постом часто просматривают:

Автор Статьи


Зарегистрирован: 2019-12-10 15:07:06
Баллов опыта: 0
Всего постов на сайте: 0
Всего комментарий на сайте: 0
Dima Manisha

Dima Manisha

Эксперт Wmlog. Профессиональный веб-мастер, SEO-специалист, дизайнер, маркетолог и интернет-предприниматель.