Re[8]: Многие думают, что математика и теория вообще не нужн
От: mymuss  
Дата: 29.06.09 14:11
Оценка: +1 -1
Здравствуйте, komaz, Вы писали:

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


K>Вы всегда с бесконечными n работаете?

K>Открываем, к примеру, сорцы явы (метод Arrays.sort):

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

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


В Вашем примере О-большое непричем, нет там О-большого.
Человек же выше ляпнул глупость, написав, что именно асимптотический вариант, т.е. с О-большим, иногда лучше. Именно в такой формулировке фраза не имеет смысла.
Re[2]: Многие думают, что математика и теория вообще не нужн
От: hal9000  
Дата: 29.06.09 14:11
Оценка:
Здравствуйте, komaz, Вы писали:

K>Для умения отличать n^2 от яичницы и базовых алгоритмов вполне достаточно какой-нибудь тонюсенькой книжки типа "Алгоритмы и структуры данных" Вирта. Никому никуда не упало уметь отличать о-большое от омега-малое и нафиг не сдалось знание о недетерминированной машине Тюринга.

K>Знание же прочего нужно скорее на уровне "оглавления", есло вообще нужно — дескать ну да, бывают графы, бывают грамматики. А необходимость знания каких-либо конкретных алгоритмов на графах, к примеру, встречается, наверное, не чаще чем необходимость знания численного метода Левенберга-Марквардта. Однако его же вы с программистов не требуете?
K>Вот внезапно понадобится написать парсер, скажете вы, что тогда делать? Да банально писать в гугле "how to write a parser" и уже оттуда выходить на всю теорию. Естественно, есть области где надо знать все гораздо глубже, но в этом случае это просто отдельная узкая специализация типа криптографии или оптимизации запросов на конкретной СУБД — нет никакой необходимости знать это каждому.

K>Есть, наверное, какой-то перечень фундаментальных знаний, которыми желательно владеть каждому программисту, но туда точно не входят конечные автоматы и умение писать компиляторы)


Всё зависит от того, что и на каком уровне писать. Я уже это обсуждал выше.
Re[8]: Многие думают, что математика и теория вообще не нужн
От: mymuss  
Дата: 29.06.09 14:14
Оценка:
Здравствуйте, Ночной Смотрящий, Вы писали:

НС>Ну значит стадию перехода от асимптотики к реальному коду ты еще не прошел. Если что, на личности перешел ты первый.


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

PS: На брудершафт с Вами не пили, так что, попрошу не тыкать. Спасибо.
Re[9]: Многие думают, что математика и теория вообще не нужн
От: Ночной Смотрящий Россия  
Дата: 29.06.09 14:23
Оценка: +2 -1
Здравствуйте, mymuss, Вы писали:

M>Ок, лично с Вами у меня продолжать дискуссию желания нет.


Слив засчитан.

M> Я на личности не переходил и был предельно вежлив.


Конечно. И сентенция про мое непонимание мне померещилась, конечно же.

M>PS: На брудершафт с Вами не пили, так что, попрошу не тыкать. Спасибо.


Со своим уставом в чужой монастырь не ходят. Здесь принято общаться на ты. И если тебе для этого необходимо принятие спиртных напитков особым образом, то это твои личные проблемы.
Re: Многие думают, что математика и теория вообще не нужна!
От: Voblin Россия http://maslyaew.narod.ru/
Дата: 29.06.09 14:39
Оценка: 2 (1) +2 :)
Здравствуйте, hal9000, Вы писали:

H>Заметил, что большинство ИТ-специалистов и программистов с которыми я общался считают, что математика ..., теория алгоритмов ... вообще не нужны современному программисту.


Нужно ли плотнику знать сопромат? Нужно ли гончару знать химию? Нужно ли музыканту знать сольфеджио?
В принципе, можно успешно заниматься своим делом, полагаясь лишь на приходящее с опытом чутьё и большой объём "конкретных" знаний. Но сможет ли такой специалист вырваться из круга привычных представлений и предрассудков чтобы создать что-то действительно новое или решить свою задачу нестандартным способом?
Формальные науки (математика и логика) отличаются от всех прочих наук тем, что их законы обязательны для исполнения для всех. И для плотника, и для музыканта, и для программиста, и для Бога. Как ни выдрючивайся, как ни маши волшебной палочкой, квадрат гипотенузы равен сумме квадратов катетов, и баста.

Человек, изучающий математику правильным образом, получает следующие полезные вещи:
1. Очень небесполезный набор абстрактных понятий, в свойствах, взаимосвязях и поведении которых можно быть абсолютно уверенным. Если это ещё подкрепляется курсами естественных и прикладных наук, эти чистые абстракции начинают как-то соотноситься с реальным миром.
2. Математика, изучаемая правильным образом, приучает человека очень чётко отличать доказанные утверждения от гипотез, необходимые условия от достаточных и т.п. Привычка строить свои рассуждения на прочном фундаменте очень полезна в нашем постмодернистском мире, в котором каждый жулик норовит втюхать свою хрень про то, что пиво дарит подарки друзьям, сковородки думают о нас, а шампунь от перхоти делает нас на 52 процента счастливее.

H>Для меня это звучит дико, поскольку считаю, что без глубокого понимания теории невозможно писать качественное ПО, с поддержкой масштабирования, с адекватной производительностью и т.д., если только не идёт речь пожизненном написании быдло-сайтиков или криворукого билинга для какой нибудь шаражки.


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

H>Нужно ли понимание общих теоретических концепций для тру программирования?


Не нужно, но очень полезно
Re[2]: Многие думают, что математика и теория вообще не нужн
От: komaz Россия  
Дата: 29.06.09 14:46
Оценка:
V>Не нужно, но очень полезно
Да, полезно, но только как тренировка ума в целом. С таким же успехом можно рекомендовать изучение теории твердого тела (попутно и математику изучить придется)
Re[3]: Многие думают, что математика и теория вообще не нужн
От: komaz Россия  
Дата: 29.06.09 14:49
Оценка:
Здравствуйте, Ночной Смотрящий, Вы писали:

НС>Здравствуйте, komaz, Вы писали:


K>>Для умения отличать n^2 от яичницы и базовых алгоритмов вполне достаточно какой-нибудь тонюсенькой книжки типа "Алгоритмы и структуры данных" Вирта. Никому никуда не упало уметь отличать о-большое от омега-малое и нафиг не сдалось знание о недетерминированной машине Тюринга.

K>>Знание же прочего нужно скорее на уровне "оглавления", есло вообще нужно — дескать ну да, бывают графы, бывают грамматики. А необходимость знания каких-либо конкретных алгоритмов на графах, к примеру, встречается, наверное, не чаще чем необходимость знания численного метода Левенберга-Марквардта. Однако его же вы с программистов не требуете?

НС>То, что тебе лично это не понадобилось, мало что означает. Если конечно ты себя не считаешь эталоном хорошего программиста.


Я не считаю себя эталоном, я просто считаю себя хорошим программистом. Весьма странно ставить какие-либо знания в список обязательных из соображения что они кому-то когда-то понадобились. Уверен, большинству людей на этом форуме пришлось обзавестись массой знаний в процессе работы, но вряд ли кто-то будет утверждать что все их стоит заносить в must have.
Re[2]: Многие думают, что математика и теория вообще не нужн
От: hal9000  
Дата: 29.06.09 14:54
Оценка:
Здравствуйте, Voblin, Вы писали:

V>Нужно ли плотнику знать сопромат? Нужно ли гончару знать химию? Нужно ли музыканту знать сольфеджио?

V>В принципе, можно успешно заниматься своим делом, полагаясь лишь на приходящее с опытом чутьё и большой объём "конкретных" знаний. Но сможет ли такой специалист вырваться из круга привычных представлений и предрассудков чтобы создать что-то действительно новое или решить свою задачу нестандартным способом?
V>Формальные науки (математика и логика) отличаются от всех прочих наук тем, что их законы обязательны для исполнения для всех. И для плотника, и для музыканта, и для программиста, и для Бога. Как ни выдрючивайся, как ни маши волшебной палочкой, квадрат гипотенузы равен сумме квадратов катетов, и баста.

V>Человек, изучающий математику правильным образом, получает следующие полезные вещи:

V>1. Очень небесполезный набор абстрактных понятий, в свойствах, взаимосвязях и поведении которых можно быть абсолютно уверенным. Если это ещё подкрепляется курсами естественных и прикладных наук, эти чистые абстракции начинают как-то соотноситься с реальным миром.
V>2. Математика, изучаемая правильным образом, приучает человека очень чётко отличать доказанные утверждения от гипотез, необходимые условия от достаточных и т.п. Привычка строить свои рассуждения на прочном фундаменте очень полезна в нашем постмодернистском мире, в котором каждый жулик норовит втюхать свою хрень про то, что пиво дарит подарки друзьям, сковородки думают о нас, а шампунь от перхоти делает нас на 52 процента счастливее.

Вы один из немногих кто это понимает
Re[3]: Многие думают, что математика и теория вообще не нужн
От: hal9000  
Дата: 29.06.09 14:57
Оценка: :)
Здравствуйте, komaz, Вы писали:

K>Да, полезно, но только как тренировка ума в целом. С таким же успехом можно рекомендовать изучение теории твердого тела (попутно и математику изучить придется)


А почему бы и нет! Можно и теорию суперструн изучать, кому что по вкусу. Уверен, что человек осиливший теорию суперструн со всеми выкладками, может стать очень продвинутым программером
Re[3]: Многие думают, что математика и теория вообще не нужн
От: Voblin Россия http://maslyaew.narod.ru/
Дата: 29.06.09 14:59
Оценка:
Здравствуйте, komaz, Вы писали:

K>Да, полезно, но только как тренировка ума в целом. С таким же успехом можно рекомендовать изучение теории твердого тела (попутно и математику изучить придется)


... или китайский язык. Раз уж мы профессионально работаем головой, тренировка ума нам очень важна. А так как мы занимаемся изготовлением абсолютно логичных изделий, знакомство с этой самой логикой нам точно только на пользу.
Re[4]: Многие думают, что математика и теория вообще не нужн
От: komaz Россия  
Дата: 29.06.09 14:59
Оценка:
Здравствуйте, hal9000, Вы писали:

H>Здравствуйте, komaz, Вы писали:


K>>Да, полезно, но только как тренировка ума в целом. С таким же успехом можно рекомендовать изучение теории твердого тела (попутно и математику изучить придется)


H>А почему бы и нет! Можно и теорию суперструн изучать, кому что по вкусу. Уверен, что человек осиливший теорию суперструн со всеми выкладками, может стать очень продвинутым программером

Отлично, а сможет ли осиливший теорию суперструн стать хорошим программистом не прочитав dragon book?
Re[4]: Многие думают, что математика и теория вообще не нужн
От: Ночной Смотрящий Россия  
Дата: 29.06.09 15:00
Оценка: 2 (1) +4
Здравствуйте, komaz, Вы писали:

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


Ох, если бы все было так просто. Вот, понимаешь, пока я не знал, что такое электролобзик или шуруповерт в подробностях, оно мне нафик не нужно было. А сейчас это основной инструмент. С программированием то же самое — к примеру, если ты не умеешь быстро и качественно писать парсеры, ты их будешь старательно избегать. Как результат — появляются всякие удивительные решения навроде языков программирования на баз XML, хранения исходников в виде бинарно сериализованного AST, запись условий и выражений мышкой при помощи рукопашного построения ast этого выражения и т.п. Еще пример — регулярно вижу в форумах попытку распарсить регексами то, что ими не парсится принципиально. Это — следствие отсутствия понимания того, что такое регулярная грамматика. И, что характерна, если их спросить, то они продолжают утверждать, что такой ужасный головоломный раздел математики, как теория формальных грамматик им нафиг не нужна, и, если что, оне в гуголе все найдут.

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


Знания знаниям рознь.
Re[3]: Многие думают, что математика и теория вообще не нужн
От: Voblin Россия http://maslyaew.narod.ru/
Дата: 29.06.09 15:01
Оценка:
Здравствуйте, hal9000, Вы писали:

H>Вы один из немногих кто это понимает

Спасибо!
Re[5]: Многие думают, что математика и теория вообще не нужн
От: hal9000  
Дата: 29.06.09 15:08
Оценка:
Здравствуйте, komaz, Вы писали:

K>Отлично, а сможет ли осиливший теорию суперструн стать хорошим программистом не прочитав dragon book?


Я думаю, после M-теории ему не привыкать читать такие книжки
Re[5]: Многие думают, что математика и теория вообще не нужн
От: komaz Россия  
Дата: 29.06.09 15:16
Оценка:
Здравствуйте, Ночной Смотрящий, Вы писали:

НС>Ох, если бы все было так просто. Вот, понимаешь, пока я не знал, что такое электролобзик или шуруповерт в подробностях, оно мне нафик не нужно было. А сейчас это основной инструмент. С программированием то же самое — к примеру, если ты не умеешь быстро и качественно писать парсеры, ты их будешь старательно избегать. Как результат — появляются всякие удивительные решения навроде языков программирования на баз XML, хранения исходников в виде бинарно сериализованного AST, запись условий и выражений мышкой при помощи рукопашного построения ast этого выражения и т.п. Еще пример — регулярно вижу в форумах попытку распарсить регексами то, что ими не парсится принципиально. Это — следствие отсутствия понимания того, что такое регулярная грамматика. И, что характерна, если их спросить, то они продолжают утверждать, что такой ужасный головоломный раздел математики, как теория формальных грамматик им нафиг не нужна, и, если что, оне в гуголе все найдут.


Аналогично:
1. Не зная про базы данных кто-то может клепать какой-нибудь xml-based persistence storage
2. Не зная о существовании всяких SOAP, WCF, RMI, etc кто-то может клепать какой-нибудь свой xml-based rpc на сокетах
3. Не зная ничего про RSA, SHA, MD5, DES, etc кто-то может изобретать свой rot13
и т.п.

Вменяемый же программист наверняка не льстит себе и понимает, что его задача не уникальна и у человечества наверняка имеется множество наработок по решению задач этого класса, с которыми непременно нужно ознакомиться прежде чем приступать к велосипедостроению.
Re[6]: Многие думают, что математика и теория вообще не нужн
От: komaz Россия  
Дата: 29.06.09 15:20
Оценка:
Здравствуйте, hal9000, Вы писали:

H>Здравствуйте, komaz, Вы писали:


K>>Отлично, а сможет ли осиливший теорию суперструн стать хорошим программистом не прочитав dragon book?


H>Я думаю, после M-теории ему не привыкать читать такие книжки

Именно! На мой взгляд вполне достаточно просто "прокачать" способность к восприятию больших объемов незнакомой и сложной для понимания информации. И вовсе необязательно (хотя, разумеется, явно не повредит) прорешивать все задачи из дистинуальной, тьфу, то есть конкретной математики прежде чем начать работать программистом
Re[5]: Многие думают, что математика и теория вообще не нужн
От: Voblin Россия http://maslyaew.narod.ru/
Дата: 29.06.09 15:27
Оценка:
Здравствуйте, komaz, Вы писали:

H>>А почему бы и нет! Можно и теорию суперструн изучать, кому что по вкусу. Уверен, что человек осиливший теорию суперструн со всеми выкладками, может стать очень продвинутым программером

K>Отлично, а сможет ли осиливший теорию суперструн стать хорошим программистом не прочитав dragon book?

Ну, я, например, не читал dragon book Более того, я знаю отличных программистов, которые понятия не имеют о том, как вообще делаются компиляторы.
Но вот хороших программистов, не наделённых культурой мышления, я не встречал. Метод тыка и программирование на в расчёте на стечение обстоятельств — вот их жалкий удел.
Re[7]: Многие думают, что математика и теория вообще не нужн
От: hal9000  
Дата: 29.06.09 15:35
Оценка:
Здравствуйте, komaz, Вы писали:

K>Именно! На мой взгляд вполне достаточно просто "прокачать" способность к восприятию больших объемов незнакомой и сложной для понимания информации. И вовсе необязательно (хотя, разумеется, явно не повредит) прорешивать все задачи из дистинуальной, тьфу, то есть конкретной математики прежде чем начать работать программистом


При более глубоком изучении ключевых концепций математики (т.е. когда изучаешь по настоящему для души, а не для препода в вузе), начинаешь осознавать, что математика это не наука вычисления чего либо, а нечто большее, это можно сказать формальный язык для операций с информационными объектами любого типа. Математика очень развита и в ней много разных моделей и операций с объектами, поэтому как нельзя лучше подходит для развития правильного мышления и умения работать со сложной информацией любой природы.
Re[7]: Многие думают, что математика и теория вообще не нужн
От: March_rabbit  
Дата: 29.06.09 15:36
Оценка: -1
Здравствуйте, hal9000, Вы писали:

H>Здравствуйте, March_rabbit, Вы писали:


M_>>вот уж 9-ый год программлю. За это время первые три года использовал какие-то математические выкладки вроде временной сложности алгоритма поиска или сортировки. Реально нужно было. А вот последние годы просто не сталкиваюсь с подобными задачами. Бывает такое: есть некая процедура (не в смысле процедуры языка, а последовательность определенных действий и реакций). Хочется ее оптимизировать. А потом смотришь — эта процедура будет работать может раз за сутки, или реже. И зачем тратить время на оптимизацию тогда? Уж лучше сделать проще и понятнее для того, кто будет продолжать работу.


M_>>Сам любитель оптимизаций, но вот...


H>Ну так после 9 лет программирования вполне правомерно, чем то пренебрегать, а чем то нет. Но нам новичкам и Вам когда-то всё же ОЧЕНЬ полезно вникать в теорию. Кстати это такой парадокс, человек который когда-то этому учился, потом может сказать что это ему не пригодилось и что практика всё заменила, но спроси его раньше на пару лет, он скажет, что без теории никуда. Без теории он был не стал таким каким есть сейчас.

с тем, что знать ЭТО полезно, соглашусь.
Но совсем не обязательно это применять постоянно.

Любая оптимизация — корень всех зол.
Re[6]: Многие думают, что математика и теория вообще не нужн
От: komaz Россия  
Дата: 29.06.09 15:36
Оценка:
Здравствуйте, Voblin, Вы писали:

V>Здравствуйте, komaz, Вы писали:


H>>>А почему бы и нет! Можно и теорию суперструн изучать, кому что по вкусу. Уверен, что человек осиливший теорию суперструн со всеми выкладками, может стать очень продвинутым программером

K>>Отлично, а сможет ли осиливший теорию суперструн стать хорошим программистом не прочитав dragon book?

V>Ну, я, например, не читал dragon book Более того, я знаю отличных программистов, которые понятия не имеют о том, как вообще делаются компиляторы.

V>Но вот хороших программистов, не наделённых культурой мышления, я не встречал. Метод тыка и программирование на в расчёте на стечение обстоятельств — вот их жалкий удел.
Да я тоже не читал, более того — в обозримом будущем и не планирую, и по мне полезность этой книги примерно такая же, как у частично упорядоченных множеств, теории графов и конечных автоматов. Все же склад мышления первичен, а знания — дело наживное, есть, конечно, какой-то минимум (вполне холиварный вопрос, что подтверждает и этот топик), но в остальном лучше стараться применять lazy initialization по отношению к новым знаниям
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.