Guru_of_Zen в противовес этим ханжам есть другие ханжи в магазинах которые говорят что новое это круто а старое - отстой (в том числе и про ПО) - знания алгоритмов и понимание методов их оценки дает свободу выбора - понимание того, что новое иногда это теже яйца только в профиль порой экономит ваши кровные
Enterado а что такого в прикладном кодинге, просветите, а ? на конкретном примере, пожалуйста ? а лучше на собственном, где вы в последний раз решали уникальную задачу, думали и творили, перебирая алгоритм с (М)МИКСА на свой язык ? взять готовую либу, нарисовать гуецъ, вызвать апи-функции -- где алгоритмы ? в математическом прикладном кодинге -- опять-таке Боост подключил и вперед. Клерк во многом прав, говоря что высокий уровень не дает понять самое суть и потому гуан. (примерная цитата или скорее позиция). среди прикладников не так уж и много знающих асм и низкай уровень, архитектуру оси и процов, а вы мне про матан и алгоритмы, освоить которые труднее на порядок имхо. да что там... защищенный режим тянут единицы, а вы про гипотетический МИКС и Кнута с матаном. не верю и все тут. Как сказали выше, Кнут -- это больше громкое слово и понты (ну, стоят три тома на полке, новые, не читанные дальше вступления, но кто ж знает ?). А "Ссы++ для чайников" затерта в соплю. Кнут в кач-ве НЕ справочника -- это для сумасшедших профессоров, впавших в маразм, от такого же профессора (и даже не от одного Кнута; TAoCP -- труд многих, многих, многих людей, а если уж вообще прямо, то Кнут занят больше систематизированным переписыванием математических открытий; правда отмечу справедливости ради, что есть вроде и егойные алгоритм(ы)). А обычным "искусным" программистам гораздо по душе больше "Совершенный код" Макконела, который рекомендует, что если ваша программа падает на значении допустим 17, то просто добавьте отдельное условие, обрабатывающее сие бажное значение 17 и не ищите причину сей ошибки во всей программе. Иными словами, просто вставьте костыль и пишите rовн0код в промышленных масштабах и дальше. Думая, что куете совершенный код. (а кол-во положительных отзывов на первой странице посмотрите, о чем это вам скажет интересно ?) В общем, повторю мыслю изначальную -- все сие напоминает сказку о голом короле. А тиражи TAoCP сие в общем-то и подтверждают. Rockphorr не совсем понимаю... имеете ввиду, что ханжи, превозносящие алгоритмы до небес, берут в магазине скажем офис 2003 и 2007 и 2010, реверсят, сравнивают алгоритмы и т.п. ?
Собственно, что сам Д.Кнут написал о своем детище (Издательство "Мир", Москва 1976 первое издание на русском языке)
Поперхнулся кофем. Вы внимательно книгу читали, любезный? Ссылочку в студию, пожалуйста. А то я уже почти согласился с Nesmysl.
osox Phuntik ага, насчет маконелла признаю свою ошибку -- там сей текст костыль и впрямь есть (if x == 17 ; y == 25 с чем-то и т.д.), но кто ж помнит, что он находится в параграфе "советы дьявола по отладке" хехе а сам текст написан в таком, утвердительном стиле, как бы "так и надо делать", никаких предостережений и т.д. типа sapienti sat. а если я закладку положил и начал читать через неделю-три? (а приблизительно сие и случилось, только не через нежелю, а через полгода) з.ы. но все равно естественно прошу прощения за наезд на макконела.
ззы ну так что насчет алгоритмов-то ? судя по топику читали многие, а еще больше считают что кнут это маст рид и маст хэв, кто-то согласен насчет справочника, но кто-нить расскажет // покажет, как ему на практике помогла TAoCP и некий мудреный алгоритм ? или получится, что кнут -- это бесполезная занудная классическая теория ? скачал, поднял ЧСД (или купил и поднял ЧСД по потолка), прочитал вступление, ужаснулся первой формуле и поставил на полку "до лучших времен" (equ "до скончания солнечной системы") ? зззы просто кого еще спрашивать, как не здешних ассемблерщиков и хоть каких-никаких, но математиков ? а на какой-нидь php-club.ru имхо бесполезно вообще ходить не только за кнутом, но и за советом по пхп.
> покажет, как ему на практике помогла TAoCP и некий мудреный алгоритм ? Мне алгоритм вейвлет преобразования пригодился и обучение сетей рбф. Еще алгоритмы сжатия примения и изучаю. Ну и моя любимая тема - компиляторы. И на мой любительский взгляд в данной теме без алгоритмов никуда(хотя есть и сторонние ибилиотеки и есть яки и бизоны, но все же). >> или получится, что кнут -- это бесполезная занудная классическая теория ? Все же профессия программист сильно разветвилась и эти ветви между собой уже имеют мало общего. Для начал ограничите рамки. Какие именно программисту вами имеются ввиду, а потом можно продолжать
art ну опять же в качестве справочника использовали кнута, не так ли ? не долбили же матан до посинения ? поставили задачу, вкурили маленько в алгоритм, реализовали при помощи другого инструмента, и... все. о чем и речь в первом посте шла. не спорю. и без матана имхо там никуда тоже. про прикладных как-то речь в конце зашла.
> и без матана имхо там никуда тоже. В компиляторах матан нафига? > ну опять же в качестве справочника использовали кнута, не так ли ? Неа, не использовал. Там нет вейвлет-преобразования и нейронных сетей то же нет)
art стандартный ответ же. прикладник, не знающий матана -- нафига матан прикладному программисту. системщик , без матана -- нафига матан системному программисту. разработчик компиляторов , без знания матана -- нафига мне матан. и т.д. нужен. или вы всерьез полагаете, что можно осилить , ну скажем, книгу дракона, без матана ? а имхо без книги дракона (или подобных) -- никуда не двинешься. оу. тогда выходит, что кнут -- не просто бесполезная занудная классическая теория, а еще и устаревшая и неполная. на данный момент разумеется. если кнут доживет до годов, эдак, 2070-ых, не будучи поражен при этом маразмом, -- тогда может будет и полная ыхых. если судить по нынешним темпам написания .
2Guru_of_Zen Что вы сказать хотели? >нужен. или вы всерьез полагаете, что можно осилить , ну скажем, книгу дракона, без матана ? Можно осилить и без матана, что тебя смущает? >тогда выходит, что кнут -- не просто бесполезная занудная классическая теория, а еще и устаревшая и неполная. Непонятно только почему в книге посвященной алгоритмам должны быть вейлвет преобразования или нейронные сети. Чисто для справки: Там еще и фурье-преобразования нет и еще много всякого. ПС. Я вам ничего доказывать не собираюсь. Не хочете учить алгоритмы - не учите. Не хотите кнута читать - не читайте. По вашему что должен знать студент закончивший обучение(в вузе, ссузе) связанное с программирование,что он должен знать? Только технологии?Технологии и языки?
art начнем с начала. я>>>>кто-нить покажет, как ему на практике помогла TAoCP и некий мудреный алгоритм ? вы>>> Мне алгоритм вейвлет преобразования пригодился и обучение сетей рбф. я>>ну опять же в качестве справочника использовали кнута, не так ли ? вы > Неа, не использовал. Там нет вейвлет-преобразования и нейронных сетей то же нет) вначале я говорил про кнута. и про пригодившийся кому-нить алгоритм из "Искусства". вы ответили про вельвет, я и подумал, что вы нашли сие у кнута в ТАоСР. я ж его не читал, откуда я знаю что там есть. блажен кто верует. осиляйте. или осилить -- это по-вашему пролистать, картинки посмотреть ? а у кормена есть. и еще много всякого, в отличие от. и написано проще, и интереснее, и на человеческом псевдоязыке, а не на понтовом ассемблере. не знаю, не заканчивал. вам виднее.
> блажен кто верует. осиляйте. или осилить -- это по-вашему пролистать, картинки посмотреть ? Еще раз. Где при построении компилятора нужен матан? Может я чего-то не знаю и там производные считать нужно, может быть интегральчик посчитать или дифур решить? >> начале я говорил про кнута. и про пригодившийся кому-нить алгоритм из "Искусства". вы ответили про вельвет, я и подумал, что вы нашли сие у кнута в ТАоСР. Я бы очень удивился если бы у кнута были вейвлет-преобразования). >> а у кормена есть. и еще много всякого, в отличие от. и написано проще, и интереснее, и на человеческом псевдоязыке, а не на понтовом ассемблере. И чего? По поводу проще. Вы же писали,что кнута не читали?
*не удержался* У меня складывается стойкое ощущение, что вы называете словом "матан" эдак штук 5 математических дисциплин. Матан нужен в нелинейном программировании (Лагранж, дорогой), и в графике(слышал, но сам не писал). ИМХО хорошему программисту из математики нужно знать основы алгебры и крепко дискреточку с теорией графов, остальное в зависимости от желания и предметной области.
Guru_of_Zen думаю что те кто знает алгоритмы неважно ханжа или нет обычно в состоянии написать что - либо самостоятельно или в курсе что там пишут коллеги и дать оценку офису может без изнурительного реверса - тот же руссинович он и в ibm крутился так что наверняка знает на каких проектах сидели только профессионалы а на каких в команду попадали те кто мог налажать
Генерация псевдослучайных чисел. Линейный и двоичный поиск. Различные виды сортировки. Это всё алгоритмы, исключительно подробно разобранные у Кнута и необходимые если не каждому, то подавляющему большинству программистов. Такие вещи, как генерация случайных перестановок (на базе существующего ГСЧ) и случайные выборки M элементов из N, нужны уже не всем, но также исключительно полезны в своей области. (Если речь идёт о конкретных примерах - например, лично я постоянно использую случайные выборки.) И так далее в направлении сужения предметной области вплоть до алгоритмов, которые людям, не интересующимся соответствующей областью, кажутся оторванными от их реальности. Ассемблер Кнуту нужен для вполне конкретных целей - чтобы на конкретные вопросы были конкретные ответы. Например, что в среднем быстрее - быстрая сортировка или пирамидальная? На уровне "ну посчитаем примерно число каких-нибудь действий" и то, и другое в среднем занимает O(n log n), а чтобы посчитать константы в O и сравнить алгоритмы, нужно уже конкретно описывать, что понимается под элементарным действием и сколько времени такое действие занимает. То есть нужен ассемблер, где элементарные действия видны напрямую, и нужно расписывать алгоритмы на низком уровне. Ну а для тех, кто с ассемблером разбираться не желает, Кнут приводит и высокоуровневые описания.
Guru_of_Zen Вы рассматриваете программирование неполностью. Забываете две весчи: 0) Проектирование каркаса программы - модули там всякие и тп; 1) Программирование - это в-основном ДИСКРЕТНАЯ математика а это мало похоже на матанализ для гладких функций. Алгоритмика - это ЧАСТЬ процесса. В лучшем случае грамотный архитектор даст вам подзадачку какой-нить сортировки и вы можете подчитать Кнута или что-то еще. Великий Мастер Программирования Билли The Gates напроектировал наколеночную DOS 1.0 с совершенно тупорылыми FCB. После успешного спиз..ания хэндлеров из nix все пришло в какое-то подобие порядка (ver 3.0). В криптоанализе вам потребуеццо матан. В базах данных - слышал в Oracle целый штат математиков трудиццо над оптимизацией обработки запросов. А вообще физика - вот что нужно программисту! Теории групп там всякие очень помогают гнать негуано.