Длинная цитата из книги "ВЕРЕВКА ДОСТАТОЧНОЙ ДЛИНЫ, ЧТОБЫ ВЫСТРЕЛИТЬ СЕБЕ В НОГУ"
6. Если вы не можете сказать это по-английски, то вы не сможете выполнить это и на Си/Си++
Это правило с последующим также относятся к правилам пользовательского интерфейса, но здесь под "пользователем" уже понимается программист, использующий написанный вами код — часто это вы сами.
Акт записи на английском языке описания того, что делает программа, и что делает каждая функция в программе, является критическим шагом в мыслительном процессе. Хорошо построенное, грамматически правильное предложение — признак ясного мышления. Если вы не можете это записать, то велика вероятность того, что вы не полностью продумали проблему или решение. Плохая грамматика и построение предложения являются также показателем небрежного мышления. Поэтому первый шаг в написании любой программы — записать то, что делает программа, и как она это делает.
Есть разные мнения о возможности мышления вне языка, но я убежден, что аналитическое мышление того типа, который нужен в компьютерном программировании, тесно связано с языковыми навыками. Я не думаю, что является случайностью то, что многие из знакомых мне лучших программистов имеют дипломы по истории, филологии и схожим наукам. Также не является случайностью то, что некоторые из виденных мной худших программ были написаны инженерами, физиками и математиками, затратившими в университете массу энергии на то, чтобы держаться как можно дальше от занятий по языку и литературе.
Сущность заключается в том, что математическая подготовка почти не нужна в компьютерном программировании. Тот тип организационного мастерства и аналитических способностей, который нужен для программирования, связан полностью с гуманитарными науками. Логика, например, преподавалась на философском факультете, когда я был в университете. Процесс, используемый при проектировании и написании компьютерных программ, почти полностью идентичен тому, который используется, чтобы сочинять и писать книги. Процесс программирования совсем не связан с теми процессами, которые используются для решения математических уравнений.
Здесь я делаю различие между информатикой (computer science) — математическим анализом компьютерных программ — и программированием или разработкой программного обеспечения — дисциплиной, интересующейся написанием компьютерных программ. Программирование требует организационных способностей и языковой подготовки, а не абстрактного мышления, необходимого для занятий математическим анализом. (В университете меня заставили проходить год на лекции по математическому анализу, но я никогда из него ничего не использовал ни на занятиях по информатике, хотя для них матанализ был необходимым условием, ни в реальной жизни).
Я как-то получил открытую рецензию на книгу, посвященную мной предмету проектирования компиляторов, в которой рецензент (который преподавал в одном из ведущих университетов) заявил, что он "считает абсолютно неуместным включение исходного кода компилятора в книгу о проектировании компиляторов". По его мнению, необходимо учить "фундаментальным принципам" — лежащей в основе математике и теории языка, а детали реализации — "тривиальны". Первое замечание имеет смысл, если у вас создалось впечатление, что книга написана ученым-специалистом по информатике, а не программистом. Рецензент интересовался лишь анализом компилятора, а не тем как его написать. Второе замечание просто показывает вам, насколько изолировала себя научная элита от реального труда программирования. Интересно, что основополагающая работа по теории языка, сделавшая возможным написание компиляторов, была выполнена в Массачусетском технологическом институте лингвистом Наумом Хомским, а не математиком.
На нескольких примерах я наблюдал однозначную тенденцию. Если человек пишет с грамматическими ошибками (не путать с опечатками), то и его код так же небрежен. Пресловутое "извените" — это вообще клиника. Причем человек может быть замечательным специалистом и ходячей энциклопедией по программированию, но при написании кода постоянно возникают несуразности. То грабли, разложенные не со зла, а чисто по халатности, то имя кривое и непродуманное, то инетерфейс неудобный, то с форматированием беда (типа строки по 200 символов). В общем, я здесь согласен с Аланом, что натуральным, родным языком программист обязан владеть в совершенстве. Думаю, что под "Английским" автор подразумевает именно "родной" язык (за шовинизм ему минус ). Другое наблюдение — если язык не родной, то плохая грамматика еще не является критерием. Просто человек оперирует грамматикой в пределах своего поля знаний. Критерием является стремление к улучшению. Если нет такого стремления, то где-то рядом бродит и небрежность с халтурой.
McSeem
Я жертва цепи несчастных случайностей. Как и все мы.
...
MS>Есть разные мнения о возможности мышления вне языка, но я убежден, что аналитическое мышление того типа, который нужен в компьютерном программировании, тесно связано с языковыми навыками. Я не думаю, что является случайностью то, что многие из знакомых мне лучших программистов имеют дипломы по истории, филологии и схожим наукам. Также не является случайностью то, что некоторые из виденных мной худших программ были написаны инженерами, физиками и математиками, затратившими в университете массу энергии на то, чтобы держаться как можно дальше от занятий по языку и литературе.
...
MS>Здесь я делаю различие между информатикой (computer science) — математическим анализом компьютерных программ — и программированием или разработкой программного обеспечения — дисциплиной, интересующейся написанием компьютерных программ. Программирование требует организационных способностей и языковой подготовки, а не абстрактного мышления, необходимого для занятий математическим анализом. (В университете меня заставили проходить год на лекции по математическому анализу, но я никогда из него ничего не использовал ни на занятиях по информатике, хотя для них матанализ был необходимым условием, ни в реальной жизни).
Согласен, хоть и не столь категорично
MS>На нескольких примерах я наблюдал однозначную тенденцию.
На нескольких примерах можно доказать любое утверждение
MS>То грабли, разложенные не со зла, а чисто по халатности, то имя кривое и непродуманное,
А каким образом это связано с языком? Рассеяности и невнимательности у "складно говорящих" тоже хватает.
MS>В общем, я здесь согласен с Аланом, что натуральным, родным языком программист обязан владеть в совершенстве.
Письменное и устное "владение" могут достаточно сильно различаться даже у одного и того же человека.
MS>Критерием является стремление к улучшению. Если нет такого стремления, то где-то рядом бродит и небрежность с халтурой.
Не думаю, что само по себе стремление может искоренить обычную невнимательность и рассеяность
Кроме того, Голуб по большому счету хотел сказать не о грамматических ошибках в текстах программистов (что само по себе, конечно, является далеко нехорошим показателем), а о более серьезном явлении: о неумении правильно, грамотно и доходчиво изложить возникшую проблему и пути ее решения на родном (McSeem2 ) языке.
Нет, конечно. Судя по тексту, автор -- типичный ваятель формочек и о настоящем программировании он мало что знает.
Для того чтобы быть хорошим программистом необходима серьёзная математическая подготовка. Поскольку только она учит человека хорошему концептуальномы мышлению и умению доказывать.
Без умения доказывать писать правильные программы невозможно. Без хорошо развитых аналитических способностей невозможно делать хорошую архитектуру.
Что касается естественных языков. Они плохо приспособлены для описания логических систем. Именно поэтому были изобретены другие языки, включая математические языки и языки программирования.
Способность хорошо программировать никак не связана, во всяком случае напрямую, со способностью хорошо писать по-английски (или по-русски).
Здравствуйте, 9Val, Вы писали:
MS>>На нескольких примерах я наблюдал однозначную тенденцию.
V>На нескольких примерах можно доказать любое утверждение
Кто кому и что пытается доказать?! Не вижу ни малейшей попытки что-либо доказать ни у Алана ни у себя. Это не более чем наблюдения, имеющие совершенно четкую закономерность (ниже).
MS>>То грабли, разложенные не со зла, а чисто по халатности, то имя кривое и непродуманное,
V>А каким образом это связано с языком? Рассеяности и невнимательности у "складно говорящих" тоже хватает.
Специально для тех, кто любит читать между строк, вместо того, чтобы просто читать то, что написано текстом.
Наблюдение:
Если программист пишет безграмотно на естественном языке, то и код у него как правило (подчеркиваю — как правило) небрежный. Причем это как правило не систематически, а время от времени, то там, то сям, но обязательно присутствует. Обратное не верно, то есть, (опять же, согласно наблюдениям), если программист владеет в совершенстве своим родным языком, то это еще ни о чем не говорит о качестве его кода. Другими словами, естественный язык является необходимым, но не является достаточным условием.
MS>>Критерием является стремление к улучшению. Если нет такого стремления, то где-то рядом бродит и небрежность с халтурой.
V>Не думаю, что само по себе стремление может искоренить обычную невнимательность и рассеяность
Никто не говорит о невнимательности или рассеяности. Речь о небрежности и халтуре. Учится читать внимательнее. Именно стремление к совершенствованию и является главным и необходимым (но конечно же не достаточным) критерием мастерства.
McSeem
Я жертва цепи несчастных случайностей. Как и все мы.
Здравствуйте, Шахтер, Вы писали:
Ш>Здравствуйте, McSeem2, Вы писали: ...
Ш>Нет, конечно. Судя по тексту, автор -- типичный ваятель формочек и о настоящем программировании он мало что знает.
Хоть разузнал бы для приличия кто он такой, прежде чем чушь говорить. http://www.holub.com/
Он как раз практик, в отличие от всяких градиБучей()
Ш>Что касается естественных языков. Они плохо приспособлены для описания логических систем. Именно поэтому были изобретены другие языки, включая математические языки и языки программирования. Ш>Способность хорошо программировать никак не связана, во всяком случае напрямую, со способностью хорошо писать по-английски (или по-русски).
Связана, при чем в одностороннем порядке. Безграмотность говорит о низкой культуре вообще и в программировании в часности. Обратное не верно.
McSeem
Я жертва цепи несчастных случайностей. Как и все мы.
Здравствуйте, McSeem2, Вы писали:
MS>Хоть разузнал бы для приличия кто он такой, прежде чем чушь говорить. MS>http://www.holub.com/ MS>Он как раз практик, в отличие от всяких градиБучей()
Не надо никого поливать грязью, тем более не очень зная что к чему. Гради Буч очень даже практик... Он не программист, а это не означает, что он теоретик.
А теперь насчёт Алана Голуба. Я читал его книгу от корки до корки и согласен буквально с одной (может двумя главами) причём это только те главы, которые связаны с правилами форматирования кода и расстановки комментариев. Все технические вещи, предложенные им, в корне отличаются от аналогичных, предложенных Скотом Мейерсом. Последний для меня больший авторитет, нежели Голуб.
А теперь насчёт именно этого отрывка. Боюсь показатсья банальным, изьясняясь забитыми фразами, но этот отрывок возмутил и обидел меня, что называется до глубины души (формально по диплому у меня именно математическое образование). Мой опыт показывает, что именно люди именно с математическим образованием становятся очень хорошими программистами. Потому как именно математика развивает в людях такие способности как абстрактное мышление и аналитический подход. А без этих навыков и переменная — это 2 байта в памяти, и объект — это нечто предварённое ключевым словом class. Откуда я это взял? Наблюдал воочию:
1) я не видел ни одного хорошего программиста с гумманитарным или экономическим образованием (или таковых нет среди моих знакомых, или они хорошо скрывают, что они гуманитарии);
2) на факультете, где я учился, было 2 направления — одно больше тяготело к программированию и информатике, а другое к чистой математике, так вот процент выпускников, ставших хорошими программистами, имено с нашего направления был сурово выше;
3) все действительно первокласные профессионалы, которые меня окружают, имеют техническое образование.
Компьютер сделает всё, что вы ему скажете, но это может сильно отличаться от того, что вы имели в виду.
Здравствуйте, Шахтер, Вы писали:
Ш>Для того чтобы быть хорошим программистом необходима серьёзная математическая подготовка. Ш>Способность хорошо программировать никак не связана, во всяком случае напрямую, со способностью хорошо писать по-английски (или по-русски).
Оставим в стороне Голуба. Он мне тоже не нравится .
А вот Страуструп вам "ваятелем формочек" не кажется? Надеюсь, что нет. И тем не менее, задание в одном из его упражнений в "C++ programming language" звучит как "Выучите еще один естественный язык". И он абсолютно прав — владение другим языком часто позволяет отойти от стереотипов мышления, что само по себе важно для любой работы.
А что касается именно влияния качества знания естественного языка для программирования — в конце концов, процесс создания программы от начала до конца можно представить как переход от модели, описанной все-таки на языке естественном, к программе на языке машинном, и связующим звеном в таком переводе является строгая математическая модель. И дефекты в знании любого из трех этих "типов представлений" одного и того же объекта могут вести к некачественному результату работы .
З.Ы. Ну, и в конце концов — "Математика — это тоже язык" (ц) Джозайя Гиббс.
Все, что здесь сказано, может и будет использоваться против меня...
Здравствуйте, Шахтер, Вы писали:
Ш>Для того чтобы быть хорошим программистом необходима серьёзная математическая подготовка. Поскольку только она учит человека хорошему концептуальномы мышлению и умению доказывать.
Ш>Без умения доказывать писать правильные программы невозможно. Без хорошо развитых аналитических способностей невозможно делать хорошую архитектуру.
Равно как и умение выражать то, что "наанализировалось" — толку маловато, если оно будет сидеть в голове программиста.
Ш>Что касается естественных языков. Они плохо приспособлены для описания логических систем. Именно поэтому были изобретены другие языки, включая математические языки и языки программирования.
И все же человек в своем мышлении использует естественные языки, а потом "переводит" на нужный.
Ш>Способность хорошо программировать никак не связана, во всяком случае напрямую, со способностью хорошо писать по-английски (или по-русски).
Если человек не способен выразить свои мысли на натуральном языке, значит он сам не видит архитектуру, у него нет цельного представления о системе и о том, как она должна работать. Может всего-лишь нескольких деталей, но не хватает.
ЗЫ: Никогда не отлавливал багов в логике системы, словесно объясняя другим как она работает? Довольно удобный способ. Нарисовать схемку обычно не помогает. А если описывать словами, то оп, вот и озарение, даже если "помощник" только слушал. Самое сложное — это найти свободного программиста, который выслушает и будет задавать вопросы.
Здравствуйте, McSeem2, Вы писали:
MS>>>На нескольких примерах я наблюдал однозначную тенденцию.
V>>На нескольких примерах можно доказать любое утверждение
MS>Кто кому и что пытается доказать?! Не вижу ни малейшей попытки что-либо доказать ни у Алана ни у себя. Это не более чем наблюдения, имеющие совершенно четкую закономерность (ниже).
Совершенно четкая закономерность на нескольких примерах? Извините, но точно так же по тем программистам, которых я знаю, я могу сказать, что я не вижу такой закономерности. См. ниже.
MS>>>То грабли, разложенные не со зла, а чисто по халатности, то имя кривое и непродуманное,
V>>А каким образом это связано с языком? Рассеяности и невнимательности у "складно говорящих" тоже хватает.
MS>Специально для тех, кто любит читать между строк, вместо того, чтобы просто читать то, что написано текстом.
Спасибо за комплимент
MS>Наблюдение: MS>Если программист пишет безграмотно на естественном языке, то и код у него как правило (подчеркиваю — как правило) небрежный. Причем это как правило не систематически, а время от времени, то там, то сям, но обязательно присутствует.
А у меня другое наблюдение — безграмотность в родном языке никак не влияет на код, проблемы начинаются, если человек не способен выражать свои мысли в понятной для других форме. Другое дело, что среди неспособных выразить мысли процент безграмотных гораздо выше, что вовсе не значит, что безграмотность есть корень зла.
MS>Обратное не верно, то есть, (опять же, согласно наблюдениям), если программист владеет в совершенстве своим родным языком, то это еще ни о чем не говорит о качестве его кода. Другими словами, естественный язык является необходимым, но не является достаточным условием.
Соглашусь на все 100, если заменить естественный язык на владение устной речью.
MS>Учится читать внимательнее.
Буду стараться
MS>Именно стремление к совершенствованию и является главным и необходимым (но конечно же не достаточным) критерием мастерства.
Вспомнилось:
Когда-то давным давно в Срединной Империи собрались на турнир со всего света самые лучшие, самые могучие бойцы. Судил состязания великий китайский мудрец. Наконец, после многих тысяч боев он выбрал троих самых великих воинов и попросил каждого из них рассказать, как тот тренируется.
Первым поднялся огромный свирепого вида боец и сказал:
— Каждое утро на восходе солнца я ломаю деревья, камни, доски — все, что попадается мне на пути. Вокруг моего жилища на день пути все обращено в прах, в пустыню.
— Прекрасно, — сказал мудрец. — А как тренируешься ты? — спросил он другого бойца.
Поднялся высокий худощавый человек, более похожий на монаха или аскета.
— Каждое утро на восходе, — сказал он,- я предаюсь медитации. Я беру свое тело под контроль разума и воли и заставляю его быть легким и быстрым, как мысль.
— Прекрасно, — сказал мудрец. — А как тренируешься ты? — спросил он третьего воина.
Поднялся самый обычный ничем не примечательный внешне человек. Если бы он еще совсем недавно не выиграл тысячу поединков, никто бы и не подумал, что это — воин, да еще великий.
— А я вообще не тренируюсь, — сказал третий. — Просто я стараюсь присутствовать во всем, что делаю.
Глоуб сам себе ходячее доказательство ошибочности своей теории...
Я согласен с теми, кто говорит, что для того что бы хорошо программировать требуется:
— Хорошее аналитическое мышление
— Умение ясно мыслить и ясно выражать свои идеи, в том числе и словами (кстати подумайте — может ли быть хорошим программистом человек, который великолепно объясняет что он хочет сделать на словах, но не может этого нарисовать на бумаге)
— Умение переходить от ясновыраженных идей (моделей) на естественном языке к моделям выраженным в коде.
И я совершенно не согласен с Глоубом. Хотя прекрасно вижу — в чём конкретно он ошибается, применительно к России. Я учился в США и заметил одну интересную особенность их системы образования. Она ориентированна на гуманитарное развитие. Это не означает, что у них нет естественно-научной подготовки, но это означает, что гуманитариев у них больше и их подготовка организована лучше, чем подготовка технарей (возможно именно поэтому среди америкнцев так мало учёных в физике или математике).
Причины этого ясны — американцы готовят из "своих" — управленцев, врачей, юристов, адвокатов — т.е. гуманитариев. И их подготовка поставлена просто великолепно. У них на философии, логике и этике — действительно интересная и серьёзная подготовка — они именно там развивают логику и абстарктное мышление — и делают это весьма эффективно и качественно (вспомним нашу философию — где за редкими исключениями идёт трёп на произвольные темы).
Зато когда я увидел их подготовку по физике или математике — я плакал... Вам просто дают формулу — например для расчёта распространения тепла — не только без какого-либо вывода, но даже без намёка, где его можно было бы найти. Ваша задача — зазубрить формулу и случаи — где ей следует пользоваться. То же на математике. Понятия "вывод" и "доказательство" отсутствуют в принципе. И это на физическом факультете ведущего университета штата Illinois! То же мне расказывали и про другие университеты. Хотя говорят (я сам такого не видел) — что где то там, есть таки места, где математике и физике учат хорошо, но таких мест крайне мало и погоды они не делают.
Замечаете? Ситуация диаметрально противоположна той, какую мы имели в СССР — и до сих пор имеем в России и странах бывшего СССР. То есть у нас человек с хорошо развитым аналитическим мышлением — выпускник вуза с сильной математической подготовкой, а у них — с хорошей гуманитарной подготовкой.
Собственно реплики многих из нас это и подтверждают. А так как Аллан подобно большинству американцев (и как многие на форуме, утверждавшие что только математик может быть хорошим программистом) и понятие не имеет — что в мире бывает иначе — и, будучи не в состоянии обобщить собственные наблюдения, выделив зерно из плевел, то мы и получили эту выдержку, совершенно правильные наблюдения — в контексте жизни Аллана, но совершенно не правильные, применительно к выходцам из бывшего СССР.
Не со всеми построениями я согласен, особенно натянута привязка качества программиста к его образованию, но приходится признать что итоговым выводам моя практика по большей части соответствует.
Здравствуйте, 9Val, Вы писали:
V>А у меня другое наблюдение — безграмотность в родном языке никак не влияет на код, проблемы начинаются, если человек не способен выражать свои мысли в понятной для других форме. Другое дело, что среди неспособных выразить мысли процент безграмотных гораздо выше, что вовсе не значит, что безграмотность есть корень зла.
Думаю стоит переформулировать его выводы так: если человек небрежен в программировании, то наверняка он будет столь же небрежен и в письменной речи.
Здравствуйте, 9Val, Вы писали:
V>Здравствуйте, McSeem2, Вы писали:
V>- А я вообще не тренируюсь, — сказал третий. — Просто я стараюсь присутствовать во всем, что делаю.
Да, есть такой способ движения! Да здравствуют простые числа и великаны на них
опирающиеся. И можно немного от себя — со слезами на глазах понимаю, что не доживу до
момента когда, наконец то найдут Великое самое большое в мире простое число.
Молодец, порадовал, так держать. 10 лет высокопрофессионального прогамирования
испепеляют мозг (роботы, роботы... Извини ты какой серии? Ааа, а я уже списанный,
по ночам только и программирую, чтобы никто не знал, боюсь, узнают разберут нафиг)
Не шучу (к сожалению — been there, done that).
Ближе к теме маэстро. Хмм (молодежъ однако). Так вот, исторически как бывший
профессиональный математик (определение оставляю за тобой дружище), виват томскому
механико-математическому факультету, быстро и коротко набросаю свою ощущения
(не факты) по данному вопросу.
Современная математика (передовая) находится в космосе, по сравнению с элементарной
логикой программирования и т.п. Кстати, по молодости уписывался от экстаза обладания
всем миром в отдельно взятой микросхеме (IBM PC). Доказывать утверждение не буду (скучно
и не к чему). Если бы не баги, отсутствие документации, исходного кода, технической
поддержки и невразумительно мычащих постановщиков задач (заказчиков), маразма собственной
неорганизованности — бог мой, как скучно и глупо было бы все это.
Бертран Рассел "Математика" и Людвиг Витгенштейн "Логико-философский трактат" и
"Философские исследования". Учитель и ученик, апостолы аналитической философии.
Случайно, в аспирантуре поселился с философом (дисер у него был по лингвистической
неполноте семантики естественных языков — то бишь по русски — убогости философии, от
косноязычия). С ощущением представителя высшей расы (ма-те-ма-тик) вступил с ним в
бой как то по предмету его исследования. В результате, после многодневной дискуссии,
с ощущением лягушки размазанной по стенке, тихо отполз (мямля — мы еще поговорим).
Да, это факт, по вопросам логики, ребята будут покруче, чем математики. Как результат
проживания, прочитал эти и многие другие труды апологетов косноязычия. Помню на кандидатском
минимуме по философии, с места в разбег, заявил экзаменатору — да я Бертрана Рассела
читал — ну что поговорим (наглая сволочь была — молодая). Быстро получил пятерку и ушел
утробно похрюкивая (как же — криком одним врага уничтожил — высший класс — хе-хе).
Ладно, длинновато что то получается. Болевые точки (свои) обозначил, ну и закончим
на этом.
What good is a ticket to the good life, if you can't find the entrance?
Здравствуйте, 9Val, Вы писали:
V>Здравствуйте, Шахтер, Вы писали:
Ш>>Для того чтобы быть хорошим программистом необходима серьёзная математическая подготовка. Поскольку только она учит человека хорошему концептуальномы мышлению и умению доказывать.
Ш>>Без умения доказывать писать правильные программы невозможно. Без хорошо развитых аналитических способностей невозможно делать хорошую архитектуру.
V>Равно как и умение выражать то, что "наанализировалось" — толку маловато, если оно будет сидеть в голове программиста.
Это верно. Для архитектора или прайма хорошие коммуникационные способности крайне желательны.
Ш>>Что касается естественных языков. Они плохо приспособлены для описания логических систем. Именно поэтому были изобретены другие языки, включая математические языки и языки программирования.
V>И все же человек в своем мышлении использует естественные языки, а потом "переводит" на нужный.
А вот это неверно. Наоборот, профессионалы не мыслят о логических (математических, программистских и.т.п.) системах и задачах используя естественные языки. Только когда мысль созрела, она, при необходимости, выражается на естественном языке, если это вообще возможно. Ну зачем далеко ходить, попробуйте какую-нибудь нетривиальную теорему сформулировать на русском -- или не получиться вообще, или получится такой абзац, что понять его без бутылки будет невозможно.
Здравствуйте, Alex Reyst, Вы писали:
AR>Здравствуйте, Шахтер, Вы писали:
Ш>>Для того чтобы быть хорошим программистом необходима серьёзная математическая подготовка. Ш>>Способность хорошо программировать никак не связана, во всяком случае напрямую, со способностью хорошо писать по-английски (или по-русски).
AR>Оставим в стороне Голуба. Он мне тоже не нравится .
AR>А вот Страуструп вам "ваятелем формочек" не кажется?
Нет.
AR>Надеюсь, что нет. И тем не менее, задание в одном из его упражнений в "C++ programming language" звучит как "Выучите еще один естественный язык".
Хороший совет.
AR>И он абсолютно прав — владение другим языком часто позволяет отойти от стереотипов мышления, что само по себе важно для любой работы.
Возможно, не замечал.
AR>А что касается именно влияния качества знания естественного языка для программирования — в конце концов, процесс создания программы от начала до конца можно представить как переход от модели, описанной все-таки на языке естественном,
Да если бы. Это не модель скорее, а набор неясных представлений, что программа должна делать.
AR>к программе на языке машинном, и связующим звеном в таком переводе является строгая математическая модель.
Я бы сказал, не связующим звеном, а отправной точкой для работы.
AR> И дефекты в знании любого из трех этих "типов представлений" одного и того же объекта могут вести к некачественному результату работы .
AR>З.Ы. Ну, и в конце концов — "Математика — это тоже язык" (ц) Джозайя Гиббс.
Здравствуйте, McSeem2, Вы писали:
MS>Здравствуйте, Шахтер, Вы писали:
Ш>>Здравствуйте, McSeem2, Вы писали: ...
Ш>>Нет, конечно. Судя по тексту, автор -- типичный ваятель формочек и о настоящем программировании он мало что знает.
MS>Хоть разузнал бы для приличия кто он такой, прежде чем чушь говорить.
Мне безразлично, КТО он такой. Книжку его я читал и она мне не понравилась. Мне важно, ЧТО он говорит.
MS>http://www.holub.com/ MS>Он как раз практик, в отличие от всяких градиБучей()
Ш>>Что касается естественных языков. Они плохо приспособлены для описания логических систем. Именно поэтому были изобретены другие языки, включая математические языки и языки программирования. Ш>>Способность хорошо программировать никак не связана, во всяком случае напрямую, со способностью хорошо писать по-английски (или по-русски).
MS>Связана, при чем в одностороннем порядке. Безграмотность говорит о низкой культуре вообще и в программировании в часности. Обратное не верно.
Что есть безграмотность? Вот я, например, не умею стихи писать. Я безграмотен? Или вы имеете ввиду способность ясно выражать свои мысли.
Так вот, по поводу последнего. Я за свою жизнь прочитал огромное количество математической литературы. НЕ могу сказать, что существует какая-то кореляция между величиной учёного, и его способностью гладко писать.