Я читаю « Coders at Work » Питера Сейбела, и много раз упоминалось, что программисты, которые не умеют писать, обычно делают плохих программистов - это утверждали Дуглас Крокфорд, Джошуа Блох, Джо Армстронг, Дейкстра (и я прочитайте только половину книги).
Что вы думаете об этом? Является ли невозможность выразить себя в письменной форме на естественном языке, таком как английский, помехой для написания хорошего кода?
Ответы:
В программировании гораздо больше, чем «написание кода». Большая часть успешного программиста включает в себя общение; Будучи в состоянии связаться с клиентами, понять их потребности, перевести их в техническую сферу, выразить их в коде, а затем объяснить результат обратно клиентам.
Программисты, которым трудно четко выражать свои мысли в письменной форме, могут не иметь возможности общаться в целом, в то время как те, кто хорошо разбирается в языке и письме, обычно могут преобразовать эти навыки в код, который они пишут.
Я думаю, что неспособность хорошо писать и, следовательно, хорошо общаться, помешает стать хорошим программистом.
Как говорят Джейсон Фрид и Дэвид Гейнемейер Ханссон (из 37 сигналов) в своей книге «Переработка»:
источник
Способность эффективно передавать ваши идеи - признак глубокого понимания. Это относится не только к области программирования.
источник
Я думаю, что если мы рассмотрим вопрос, мы получим ответ напрямую:
Что на самом деле означает писать хороший код?
Это означает выразить себя ясно, кратко, правильно и элегантно писать на языке программирования.
Единственная разница между умелым самовыражением на английском или языке программирования состоит в том, что английский гораздо более щадящий.
источник
Я не думаю, что это является основным препятствием для обезьяны кода (я предполагаю определенный базовый уровень / способность выражать себя на своем родном языке). Однако я думаю, что это может быстро стать серьезным препятствием, поскольку вы (разработчик) должны начать лучше формулировать проекты / архитектуру / планы для нетехнической аудитории. По моему опыту, мне легче донести что-то до кого-то, кто находится примерно на том же техническом уровне, что и я, и требует гораздо меньших (естественных) языковых навыков, чем то, что он формулирует для клиента и / или менеджера. В то же время, даже если это техническая аудитория, поскольку предмет становится менее конкретным, человек, который пишет об этом (или говорит по этому поводу), должен быть достаточно четко сформулирован.
источник
Это зависит от того, что вы подразумеваете под «хорошим кодом».
Если вы имеете в виду код, который просто работает, вряд ли есть какая-либо связь между способностью общаться с людьми и возможностью общаться с компьютерами.
Если вы имеете в виду код, который работает, является обслуживаемым и четко выражает намерение кода, то существует абсолютная связь между написанием хорошего кода и написанием на языке, предназначенном исключительно для людей.
Хотя для написания понятного кода вам не понадобятся все разные навыки, необходимые для того, чтобы быть хорошим писателем, все же есть некоторые элементы, которые должны присутствовать, поскольку оба они будут прочитаны людьми. В некотором смысле, написать хороший код еще сложнее, так как он должен описывать намерения с помощью кода, не используя конструкции, которые будут плохо работать при выполнении компьютером.
источник
Дело в том, что кодирование - это тоже навык общения. Джек Гэнсл в своем электронном бюллетене Embedded Muse недавно процитировал Дуга Эббота:
Программисты, которые не знают, как писать прозу, вероятно, тоже не знают, как писать код.
Подробнее об этой интересной статье:
Плохое письмо отражает плохие навыки программирования?
источник
Это в целом анекдотично, но:
Один из лучших программистов "рок-звезды", с которым я когда-либо работал, был очень плохим писателем. И когда я говорю «очень бедный», я имею в виду тип, который встречался, как будто он был либо чрезвычайно пьян, либо едва грамотен - когда вы видели его электронные письма. Опечатки, отсутствие знаков препинания, трудности с четким выражением идей и распространенные орфографические ошибки («их / они» и т. Д.) - все было в изобилии - иногда почти мучительно. Читая некоторые из его электронных писем - я бы беспокоился о том, чтобы он отправлял электронные письма клиентам напрямую (нам не нужно было делать это в этой компании), - потому что это заставило бы компанию выглядеть плохо!
Тем не менее, он был супер звездным программистом. На порядок более производительный и включенный, чем в среднем.
Я не уверен, что с этим делать. Я видел это несколько раз с разными людьми. У некоторых просто не хватает умения сидеть и писать вещи. И часто это, кажется, не влияет на их таланты в других областях (даже относительно, казалось бы, схожих, талантов «работы с знаниями», таких как программирование). Вы могли бы подумать, что это будет связано, но я видел несколько живых примеров, подобных этому, где это не так. Хотя я предполагаю, что вполне возможно, что они являются « исключениями, которые подтверждают правило » - я, вероятно, просто никогда не думал, что замечу плохих писателей, которые не являются программистами, и хороших писателей, которые являются .
источник
Если они не умеют хорошо писать, как они могут убедить вас, что они хорошие программисты?
источник
Может ли кто-то, кто не может точно выразить системную организацию или идею, написав это, сможет написать код, то есть точные инструкции, правильно интерпретированные (очень) тупым компьютером?
источник
Я думаю, что для программиста очень важно уметь хорошо общаться, как с устным, так и с письменным языком. Умение перевести идею в слова является обязательным условием написания кода.
Независимо от того, общаемся ли мы с компьютером или человеком, мы должны привести слова в порядок, который имеет смысл, следуя правилам грамматики. Мы должны правильно произносить слова или правильно их произносить, чтобы другая сторона разговора могла их понять. Компьютеры будут выдавать синтаксические ошибки, коллеги будут говорить "ЧТО?" или обесценить то, что говорят как бессмысленное лепетание или, что еще хуже, раздражающее отвлечение.
Я настоятельно не поощрял наем кандидатов, потому что они не могли закончить мысль или остаться на предмете. В любом случае наш начальник нанял одного человека, и оказалось, что он не может выполнить простое задание вовремя, потому что его отвлекли какие-нибудь яркие и блестящие новые технологии или игрушки, попавшие ему на глаза.
Так что, да, важно, чтобы программисты могли хорошо общаться. Если они не могут эффективно общаться с человеком, они не могут делать это с компьютером.
источник
Бедные писатели делают плохих писателей, и ничего больше. Плохие навыки письма не означают, что они вообще не могут общаться, но они просто не умеют хорошо писать или выражать свои мысли. Конечно, любой может сказать, что навыки общения важны и важны в компании и так далее, и тому подобное, но это не значит, что программист с плохими навыками общения не может хорошо выполнить свою работу. Программирование и письмо - это искусство, но совершенно другого рода. Письмо о том, как заставить другого человека понять, что вы говорите, и / или действовать соответствующим образом, но программирование не заставляет компьютер понимать ваше требование, потому что ни один компьютер не будет понимать никаких требований пользователя (по крайней мере, в течение 100 лет после IMO). Программирование заключается в том, как перевести требование на язык программирования, и поэтому навыки письма не так уж связаны.
источник
Точно нет!
Хороший писатель - не более чем хороший писатель. Попросите хорошего писателя описать концепцию базы данных нетехническому человеку. Как вы думаете, что вы получите ...?
Хороший писатель, пишет. Хороший программист пишет хороший код.
Я собирался продолжать и продолжать, но я бы скорее потратил свое время, отвечая на другие сообщения. Я в значительной степени думаю, что вы, ребята, знаете, где я стою в этом вопросе.
источник