Если бы написание кода было наукой, все разработчики были бы примерно одинаковы.
Как и в искусстве, нет двух разработчиков с одинаковым мышлением, восприятием или субъективной правдой при написании кода для одного и того же результата.
В то время как некоторые изо всех сил пытаются добиться желаемого результата, для некоторых это происходит почти естественно, как если бы их поразило прозрение в тот момент, когда они сидели, чтобы создавать программы или решать проблему.
В Сообщение блога Стив МакКоннелл (цитируемый как эксперт в области разработки программного обеспечения) пишет, что первоначальное исследование, обнаружившее огромные различия в производительности индивидуального программирования, было проведено в конце 1960-х годов Сакманом, Эриксоном и Грантом. Они обнаружили, что соотношение начального времени кодирования между лучшими и худшими программистами было примерно 20: 1. Они не обнаружили взаимосвязи между объемом опыта программиста и качеством или производительностью кода.
Несмотря на то, что в этом исследовании были недостатки, даже после их учета данные по-прежнему показывают более чем 10-кратную разницу между лучшими и худшими программистами.
какой рост у джерри о коннелла
В Arkenea мы имеем более чем пятилетний опыт найма разработчиков, и отличить хорошего программиста от хорошего так же сложно, как и раньше.
Это не уникальная проблема. Мы видели, как многие крупные предприятия и компании из разных отраслей борются с одной и той же проблемой. Многие создали процесс фильтрации с помощью различных тестов, но можно ли действительно протестировать художника?
Прямой ответ - нет.
Написание хорошего кода - не единственный фактор при оценке того, является ли программист отличным ресурсом.
Но выход есть. Есть и другие показатели (помимо качества написания кода), которые отделяют хороших программистов от хороших.
Кристофер Берк, в ответ на Quora , подчеркнул, что любой, кто может писать рабочие программы для решения проблем, является программистом. С другой стороны, хороший программист - это тот, кто сотрудничает с другими для создания поддерживаемых, элегантных программ, подходящих для использования заказчиком, вовремя и с низким уровнем дефектов, с минимальными межличностными проблемами или без них.
Но отличным программистом становится тот, кто интуитивно понимает алгоритмы и архитектуры, может строить самосогласованные большие системы с минимальным контролем, изобретать новые алгоритмы, может реорганизовывать живые системы, не нарушая их, может эффективно и убедительно общаться с нетехническим персоналом по техническим вопросам. и нетехнические вопросы, понимает, как держать свое эго под контролем, и может научить других своим навыкам.
Однако по своему опыту я бы приравнял его определение программиста к определению хорошего программиста, а его определение хорошего программиста - к определению великого.
Я бы сказал, что тот, кого Кристофер называет отличным программистом, не обязательно будет писать код, достигнув этого этапа своей карьеры. Этот человек будет более стратегически работать с компаниями и их командами разработчиков, чтобы определять направления продукта - по сути, кто-то вроде технического директора.
Готовность оставаться с проблемой до тех пор, пока она не будет решена (не путать с сидением на проблеме), в сочетании со способностью творчески решать ее - это очень желаемый навык или способность, присущие только великим программистам.
какой рост у Мэгги Лоусон
Итак, типичный вопрос: как определить хорошего программиста? Этот человек сможет быстро найти корень вашей проблемы. Он или она может не сразу предложить решение, но может наметить путь к быстрому и эффективному достижению решения.