Что делает одного программиста лучше другого? Разве они не все равны?

338
49
1
Лучший ответ
355

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

Вы понимаете, как ваша система решает проблемы, а ваш бизнес зарабатывает деньги. Вы потратили на это время? Если нет, то вы просто не в классе хороших разработчиков в своем бизнесе. Вы должны понимать, как ваш код создает ценность и, следовательно, как ваша работа приносит деньги компании. Понимать особенности запросов и пользователей. Вы действуете как официант в ресторане, просто принимая заказы, или вы согласовываете запросы функций, чтобы все пользователи могли получить ценность из запроса? Не пишите самый крутой код. Напишите код, который понятен. Вы можете быть сбиты автобусом, и кто-то другой должен будет принять ваш код. Не включайте много библиотек в ваш код. Почему? Не у всех такое же стремление к этой симпатичной js-библиотеке, которую вы загружаете всего 9 раз. Держите внешние библиотеки к минимуму. Когда вы используете внешнюю библиотеку, используйте популярные, не используйте пятую по популярности библиотеку в классе. Программисты любят использовать классные вещи, которые другие не используют. Если вам нужна функциональность jQuery, используйте jQuery, не используйте четвертый по популярности инструмент для манипулирования html dom. Понять, как система работает вместе. Например, мне все равно, что ORM скрывают базу данных, так что вам не нужно ее понимать. Узнайте о базах данных и узнайте о таких вещах, как индексы, хранимые процедуры, ключи, функции, безопасность и тому подобное. Если вы не знаете базы данных, вы не лучший разработчик в мире, в котором я работаю. Поймите узкие места и поймите, как их обрабатывать. Не поддавайтесь широко распространенным убеждениям. «Windows не будет масштабироваться», «Реляционные базы данных не будут масштабироваться», << вставьте убеждение здесь >>. Реальность часто отличается от того, что просто повторяется без данных, подтверждающих утверждение. Корабль, корабль, корабль. Напишите код и отдайте его в чужие руки. Они это понимают? Это решает проблему? Может ли этот человек действительно использовать это? Не вините технологии, когда что-то идет не так. Проблема, скорее всего, в коде, который был написан. Ищите лучшие способы ведения дел. Существует более одного способа кожи кошки. Могут ли они сочувствовать пользователю? У вас может быть список дел, но действительно ли это то, что хочет пользователь? Скорее всего, список требований является лишь отправной точкой для дискуссий, особенно с запусками. Можете ли вы сделать акцент с пользователями и решить бизнес-задачу перед вами / ними? Можете ли вы сделать пользователей более продуктивными?

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

****************************************************************

Правда, это довольно грубая история. Я прошу прощения за это. Я слышал, как однажды кто-то сказал: «Программисты похожи на проституток, они все делают одно и то же, платят им немного, платят им много, вы получаете то же самое, несмотря ни на что». Я ответил: «Вы берете 50 долларов и идете сегодня вечером на улицу XYZ. Я возьму 500 долларов, а утром мы сравним записи, чтобы узнать, кто лучше провел время».

Я слышал еще одну аналогию: «Нет таких вещей, как плохие рядовые, только плохие генералы». Между людьми явно есть разница.

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

ответил(а) 2019-12-23T18:14:50+03:00 11 месяцев, 1 неделя назад
160

Можете ли вы вспомнить * любую * профессию, где все люди, которые делают это, равны в мастерстве?

Я не могу

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

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

ответил(а) 2019-12-23T18:14:50+03:00 11 месяцев, 1 неделя назад
148

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

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

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

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

ответил(а) 2019-12-23T18:14:50+03:00 11 месяцев, 1 неделя назад
115

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

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

ответил(а) 2019-12-23T18:14:50+03:00 11 месяцев, 1 неделя назад
97

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

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

ответил(а) 2019-12-23T18:14:50+03:00 11 месяцев, 1 неделя назад
89

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

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

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

Пост Уоллеса Б. МакКлюра суммирует остальные черты.

ответил(а) 2019-12-23T18:14:50+03:00 11 месяцев, 1 неделя назад
80

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

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

ответил(а) 2019-12-23T18:14:50+03:00 11 месяцев, 1 неделя назад
72

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

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

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

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

ответил(а) 2019-12-23T18:14:50+03:00 11 месяцев, 1 неделя назад
63

Нет. Вы можете сказать, кто лучше программист, просто читая код.

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

РЕДАКТИРОВАТЬ: После еще нескольких размышлений над этим вопросом, вот обновление:

Есть 2 типа программистов.

1. Проактивен.
2. Реактивный.

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

# 2 выполнит работу в соответствии с просьбой.


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

ответил(а) 2019-12-23T18:14:50+03:00 11 месяцев, 1 неделя назад
51

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

Кроме того, есть те, кто может взять идеи из книги и написать стихи на другом языке.

ответил(а) 2019-12-23T18:14:50+03:00 11 месяцев, 1 неделя назад
51

Вот ссылка на статью, в которой рассматриваются различные мифы о высокоэффективных программистах по сравнению с «средними» программистами. [Три мифа об эффективности разработчиков].
Обобщая, я бы сказал:

Плохой программист может создать программу из 1000 строк, которую сложно поддерживать с 100 ошибками, и никогда не устранять их все.
Хороший программист может создать хорошо документированную программу с 300 строками, которую легко обслуживать с 2 или 3 ошибками, и быстро их решить.

ответил(а) 2019-12-23T18:14:50+03:00 11 месяцев, 1 неделя назад
51

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

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

ответил(а) 2019-12-23T18:14:50+03:00 11 месяцев, 1 неделя назад
51

По моему опыту, 90% из них сводятся к трудовой этике и сочувствию / сочувствию.

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

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

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

ответил(а) 2019-12-23T18:14:50+03:00 11 месяцев, 1 неделя назад
36

Некоторые кодеры могут быть лучше других, если они знают больше об определенном языке программирования, таком как C ++ или JAVA. Конечно, кодеры могут быть равны!

ответил(а) 2019-12-23T18:14:50+03:00 11 месяцев, 1 неделя назад
36

Все программисты не равны, никогда не может быть. У каждого разный опыт, разный опыт. Другой набор значений программирования.
Хотя основная цель - это то же самое «решить проблему под рукой», но некоторые программы в стиле, а некоторые программы для обозначения их доминирования (вроде). Также, основываясь на своем опыте и воздействии, они могут решить проблему, но с разным дизайном.

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

ответил(а) 2019-12-23T18:14:50+03:00 11 месяцев, 1 неделя назад
36

Программисты - писатели. Как и у всех писателей, у вас может быть любимый, а кто-то другой - за другого. У вас обоих есть свои причины. Некоторые могут предпочесть Хемингуэя Шекспиру, но трудно сказать, почему один лучше другого или лучше в другой ситуации.

ответил(а) 2019-12-23T18:14:50+03:00 11 месяцев, 1 неделя назад
37

Начните читать книги: программисты не читают книги - но вы должны :)

ответил(а) 2019-12-23T18:14:50+03:00 11 месяцев, 1 неделя назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема