2008-10-04 2 views
19

Я прочитал книгу Ричарда П. Габриэля «Образцы программного обеспечения» (pdf), в которой содержится эссе под названием «Написание Бродсайда», в которой он утверждает, что программисты должны развивать свою способность писать четко. Я обнаружил, что его предложения определенно улучшили мою способность писать технические спецификации и проектные документы.Должны ли программисты четко писать?

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

У нас уже есть система, в которой один раз в неделю член команды дает Pecha Kucha разговор по любой теме, чтобы улучшить нашу способность давать презентации.

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

У кого-нибудь есть рабочие семинары по месту их работы?

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

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

+0

@Rob, эй я не имею в виду, чтобы расшевелить, я только отчасти смущен. Вы говорите, что вы не говорите о коде, BUt в комментариях моего сообщения вы упомянули комментарий Митча (который был о коде) и сказал, что это то, о чем вы говорите. Что он? – mattlant

+0

@mattlant, пожалуйста, повторите ответ Митча. Элементы стиля - это библия на четкой записи. Не кодирование. Другой момент Митча касается именования переменных хорошо, и он указывает, если вы не можете выразить идеи хорошо, вы получаете переменные, такие как «x1», а не более desciptive «current_balance». –

+0

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

ответ

20

Обязательных Дейкстра цитата:

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

+1

Мастерство речи и мастерство написания - это две разные вещи, и один может быть выше на одном, а не на другом и наоборот. – mattlant

20

Да! Вероятнее всего.

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

Отличный ресурс для улучшения навыков письма: The elements of Style. Он маленький, краткий и легко читаемый.

6

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

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

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

-4

мои мысли:

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

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

C. Отчасти это зависит. Если они очень низкоуровневые программисты, работающие над компонентами кода, A + B, однако, если они находятся на высоком уровне или работают на большей части системы или всей системы, то да, умеют писать четко и правильно, но до некоторой степени.

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

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

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

EDIT: Я также должен добавить, хотя часть этого зависит от процесса, который вы используете, и от того, какие роли и обязанности может иметь разработчик. Очевидно, что если требуется, чтобы разработчики писали часть руководства пользователя, то да, писать ясно ОЧЕНЬ важно. Но это обычно не норма.

EDIT2: Ничего из этого не хотел сказать, что devloper не должен иметь каких-либо навыков письма, это было больше, чтобы сказать, что код письма является гораздо более важным, чем технологий/DOC письменной форме.

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

+1

Будучи способным писать четко и выразить идеи, необязательно означает написание документов. Он все еще пытается кодировать. –

+0

и, пожалуйста, скажите мне, что я сказал, что приписывает то, что вы сказали? «Самое главное, я думаю, что разработчик должен иметь возможность писать четкий, краткий, красивый, самодополнительный код». – mattlant

+0

ПРОЧИТАЙТЕ ВОПРОС! «Я обнаружил, что его предложения определенно улучшили мою способность писать технические и дизайнерские документы. » был частью этого, который говорит мне, что ОП подавал гораздо больше, чем код. – mattlant

2

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

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

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

+0

Aha, но технический лидер намного отличается, чем * программист *, обобщенный OP – mattlant

+0

Технический лидер несколько отличается от простого разработчика, но общая идея по-прежнему остается верной: если есть или хотят иметь идеи, за которыми последуют другие должны быть в состоянии сообщить об этом. Цитата из Фукидида в оригинальном вопросе ловит все. –

+0

Действительно, во многих крупных компаниях идеи * программиста не слышат. Это медленно меняется особенно с огромным количеством небольших организаций, но к этому я бы сказал, что они больше не программист. – mattlant

0

Здесь, в Аргентине, мы должны связаться с нашими друзьями в США, чтобы выполнить нашу работу.

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

Итак, да. Я думаю, что это очень важное.

3

@slashmais: Любой человек в любом профессиональном качестве должен иметь возможность четко общаться, будь то инженер, менеджер, тестер или что-то еще. Это не только личное предпочтение, я считаю это во благо организации или бизнеса. Вам не нужны программисты, единственной функцией которых является реализация и плохое оформление документа; вам нужны инженеры, которые могут глубоко задуматься над кодом и сообщить о намерениях других в среде, отличной от кода.

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

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

2

Да, программисты должны документировать свою работу; вы бы построили дом из модели с одной восьмой шкалой и верили, что чертежи не нужны?

Стоит прочитать: Code Complete Steve McConnell, особенно главы о функциях именования и написании документации. Если вы называете и комментируете свой код соответствующим образом, документы записываются сами.

2

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

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

+0

Это плохой пример. K & G были выше уровня «программиста», – mattlant

1

Задача программирования включает в себя две основные части. Первое - это сообщение с машиной о том, что вы пытаетесь сделать с вашим кодом. Это легкая часть, компилятор/интерпретатор/виртуальная машина делает большую часть работы там. Жесткая часть - это общение с другими программистами, что вы пытаетесь сделать с вашим кодом.

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

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

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

0

Да,


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

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

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

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

Помните все о том, насколько легко кому-то понять, что вы имеете в виду, а не как соответствовать им, как ваш стиль письма.

Безупречная грамматика не всегда является лучшим способом общения, например.

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

Смежные вопросы