2014 dxdy logo

Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки




 
 Математическая подготовка ненужна в комп.прогрограммировании
Сообщение24.02.2011, 12:38 
Аватара пользователя
Есть разные мнения о возможности мышления вне языка, но я убежден, что аналитическое мышление того типа, который нужен в компьютерном программировании, тесно связано с языковыми навыками. Я не думаю, что является случайностью то, что многие из знакомых мне лучших программистов имеют дипломы по истории, филологии и схожим наукам.
Также не является случайностью то, что некоторые из виденных мной худших программ были написаны инженерами, физиками и математиками, затратившими в университете массу энергии на то, чтобы держаться как можно дальше от занятий по языку и литературе.
Сущность заключается в том, что математическая подготовка почти не нужна в компьютерном программировании. Тот тип организационного мастерства и аналитических способностей, который нужен для программирования, связан полностью с гуманитарными науками. Логика, например, преподавалась на философском факультете, когда я был в университете. Процесс, используемый при проектировании и написании компьютерных программ, почти полностью идентичен тому, который используется, чтобы сочинять и писать книги. Процесс программирования совсем не связан с теми процессами, которые используются для решения математических уравнений.
ВЕРЕВКА
ДОСТАТОЧНОЙ ДЛИНЫ,
ЧТОБЫ… ВЫСТРЕЛИТЬ
СЕБЕ В НОГУ
Правила программирования на Си и Си++
Ален И. Голуб
Москва

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

 
 
 
 Re: Математическая подготовка ненужна в комп.прогрограммировании
Сообщение24.02.2011, 16:38 
Аватара пользователя
Центрированный текст не читабелен.

 
 
 
 Re: Математическая подготовка ненужна в комп.прогрограммировании
Сообщение24.02.2011, 17:50 
Ginsbur в сообщении #416558 писал(а):
Есть разные мнения о возможности мышления вне языка, но я убежден, что аналитическое мышление того типа, который нужен в компьютерном программировании, тесно связано с языковыми навыками.

Очень интересное мнение. Мне нравятся идеи такого типа: красивые и неожиданные.
Несомненно: математики не обладают монополией на логику и структуру.

 
 
 
 Re: Математическая подготовка ненужна в комп.прогрограммировании
Сообщение24.02.2011, 19:13 
Аватара пользователя
Хороший ниньзя владеет всеми неджитсуми. :lol:
Так и у программисту ему надо владеть многим: математикой, логикой и уметь планировать свои действия.
Также и гуманитарные умения ему пригодятся.
Но даже имея в свое распоряжении только один навык можно легко стать первокласным ниньзя или программистом.

 
 
 
 Re: Математическая подготовка ненужна в комп.прогрограммировании
Сообщение25.02.2011, 11:00 
Ginsbur в сообщении #416558 писал(а):
Сущность заключается в том, что математическая подготовка почти не нужна в компьютерном программировании.

А кто по-вашему разрабатывает сложные математические алгоритмы - поэты?

 
 
 
 Re: Математическая подготовка ненужна в комп.прогрограммировании
Сообщение25.02.2011, 11:50 
2Ginsbur
Полагаю, что автор веревки достаточной длины вовсе не хотел преуменьшить значение математики и других технических областей знаний для программиста и его ремесла. В конце-концов, программирование -- это все-таки сугубо прикладная дисциплина и сталкивается не только со своими внутренними проблемами, но и с необходимостью решения задач математики, химии, физики и т.д. Да-да, программисту неплохо быть экспертов сразу во всех науках. :)

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

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

Дополню. Мне кажется, что для программиста крайне важна постоянная практика (nulla dies sine linea) и развитая культура программирования (правильный выбор языка, хороший стиль, отступы, разумные идентификаторы, большая грязная кофейная кружка намертво прилипшая к листу бумаги и т.д.).

2Alexu007
В идеале, должно быть разделении труда -- математик придумывает математику, а программист реализовывает задуманное. Другое дело если вы Д.Кнут, тогда да, ну этих поэтов. :)

 
 
 
 Re: Математическая подготовка ненужна в комп.прогрограммировании
Сообщение25.02.2011, 20:28 
Современные языки (например С++ Builder) позволяют писать программы, не углубляясь в тонкости организации кнопок, меню, диаграмм и прочего. Естественно в ущерб эффективности, по крайней мере размеру получаемого в результате exe-шника, но кого сейчас волнует пара-тройка лишних мегабайт? То есть язык для непрофессионалов, позволяющий сосредоточиться на собственно алгоритме программы, а не заморачиваться внешним оформлением. Для написания программ windows вполне достаточно знаний языка С.

 
 
 
 Re: Математическая подготовка ненужна в комп.прогрограммировании
Сообщение26.02.2011, 09:22 
Аватара пользователя
Цитата:
Современные языки (например С++ Builder)

Цитата:
языки

Цитата:
С++ Builder

:facepalm:
Цитата:
То есть язык для непрофессионалов, позволяющий сосредоточиться на собственно алгоритме программы, а не заморачиваться внешним оформлением.

Угу. В результате такого «не заморачивания» появляются программы с ужасно неудобным интерфейсом и отсутствием layout'ов.

Цитата:
В идеале, должно быть разделении труда -- математик придумывает математику, а программист реализовывает задуманное.

А специалист по usability пишет UI.

 
 
 [ Сообщений: 8 ] 


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group