USBLexus
Опытный
Offline
Пол:
Кот рыжий
|
|
« : 09-09-2004 08:17 » |
|
Существует ли какая нибудь инфа по различным приемам и оптимальным алгоритмам хитростям (фишкам) программирования или это все должно постигаться мучительно долго и с опытом? Если кто такую знает дайте ссылку пожалуйста....
|
|
|
Записан
|
#define QUESTION(b) (2*b)||(!(2*b)) (c) William Shakespeare
|
|
|
Serega
Гость
|
|
« Ответ #1 : 09-09-2004 08:34 » |
|
начни с Кнута и халявы не будет
|
|
|
Записан
|
|
|
|
USBLexus
Опытный
Offline
Пол:
Кот рыжий
|
|
« Ответ #2 : 09-09-2004 09:13 » |
|
Дай ссы лку пожалуйста Желательно не в формате TEX...
|
|
|
Записан
|
#define QUESTION(b) (2*b)||(!(2*b)) (c) William Shakespeare
|
|
|
MOPO3
Ай да дэдушка! Вах...
Команда клуба
Offline
Пол:
Холадна аднака!
|
|
« Ответ #3 : 09-09-2004 09:31 » |
|
|
|
|
Записан
|
MCP, MCAD, MCTS:Win, MCTS:Web
|
|
|
USBLexus
Опытный
Offline
Пол:
Кот рыжий
|
|
« Ответ #4 : 09-09-2004 09:53 » |
|
Ok спасибо Щас буду внешку искать чтобы всю эту кипу выкачать
|
|
|
Записан
|
#define QUESTION(b) (2*b)||(!(2*b)) (c) William Shakespeare
|
|
|
npak
|
|
« Ответ #5 : 09-09-2004 10:44 » |
|
USBLexus, однажды сын Птолемея, египетского царя, спросил Евклида, можно ли нахаляву постичь геометрию. Сын царя, как никак. Ну так здесь та же фигня
|
|
|
Записан
|
|
|
|
USBLexus
Опытный
Offline
Пол:
Кот рыжий
|
|
« Ответ #6 : 10-09-2004 01:57 » |
|
А я... я... я так надеялся Выкачал наконецто Буду читать кнута)))
|
|
|
Записан
|
#define QUESTION(b) (2*b)||(!(2*b)) (c) William Shakespeare
|
|
|
MOPO3
Ай да дэдушка! Вах...
Команда клуба
Offline
Пол:
Холадна аднака!
|
|
« Ответ #7 : 10-09-2004 07:29 » |
|
А я... я... я так надеялся Выкачал наконецто Буду читать кнута))) Ню ню Книга то не для слабонервных
|
|
|
Записан
|
MCP, MCAD, MCTS:Win, MCTS:Web
|
|
|
npak
|
|
« Ответ #8 : 10-09-2004 09:38 » |
|
А я... я... я так надеялся Выкачал наконецто Буду читать кнута))) Ню ню Книга то не для слабонервных и для подавляющего большинства программистов бесполезна (ИМХО). На мой взгляд, для начала больше подходят книга Вирта "Алгоритмы + структуры данных" и книга Aхо и Ульмана "Алгоритмы. Построение и анализ". Обе книги чётко и компактно раскрывают основные структуры данных, не вдаваясь в обсуждение бесконечных тонкостей. Для нормального программиста полезно знать, как сделать самому список, множество, дерево или отображение, но гораздо полезнее знать, что с помошью этих структур можно делать. Приёмы программирования, так сказать. Но это касается только программирования в малом -- в пределах нескольких функций или одного объекта. Не менее (возможно, даже более) важно сейчас уметь эффективно разрабатывать программы, которые используют более одного объекта. Поэтому настоятельно рекомендую изучить Design Patterns (которые у нас перевели как "Шаблоны проектирования") -- книга о том, что делать во многих часто встречающихся случаях. Книга очень хорошо написана, предлагает действительно полезные приёмы. Для очень большых систем, особенно распределённых, есть множество типовых задач высокого уровня, который принято называть "архитектурой". Для этого уровня тоже начали выделять и публиковать эффективные приёмы проектирования, уже вышла довольно интересная книга "Architectural Patterns" (в 2-х томах). Но это уже для "птиц высокого полёта", архитекторов и системных дизайнеров. Помимо проектирования/программирования есть такие важные направления как сбор и анализ требований, тестирование, развёртывание, разработка документации. Все они описаны в соответствующих книгах.
|
|
|
Записан
|
|
|
|
MOPO3
Ай да дэдушка! Вах...
Команда клуба
Offline
Пол:
Холадна аднака!
|
|
« Ответ #9 : 10-09-2004 09:47 » |
|
Как говорил мой препод насчёт Кнута : "Каждый уважающий себя программер, может не читать Кнута, но все три тома МАСТ ХЭВ!!!"
|
|
|
Записан
|
MCP, MCAD, MCTS:Win, MCTS:Web
|
|
|
lapulya
Молодой специалист
Offline
|
|
« Ответ #10 : 16-09-2004 10:22 » |
|
npak, а теперь пожалуйст по подробнее вышла у нас или у них и на каком языке и точное название или автора
|
|
|
Записан
|
С уважением Lapulya
|
|
|
|
Alanir Alonedaw
Гость
|
|
« Ответ #12 : 18-09-2004 08:18 » |
|
Моё личное мнение на этот вопрос: Только ты сам сможешь достичь высокого мастества, при чём ни как сын Птоломея. В первую очередь я говорю о самообучении :!: Когда ты сам разгребаешься со всеми алгоритмами, то не ориентируешься на шаблоны(книги, подсказки друзей), а значит есть вариант того, что ты будешь много выше их, ведь ты не знаешь какой уровень у них(птоому что ты их не слушаешь(читаешь)), а стремишься быть максимально высоко по своим возможностям. ИМХОИменно по этому я всегда строю свои алгоритмы о различных вопросах, а в случае, если мне указывают на малоэффективность - анализирую и, в случае правоту указывающего, исправляю, но опять таки пытаюсь сделать ещё лучше, внося что-то своё, что-то чего не было(конечно же, если выходит лучше ).
|
|
|
Записан
|
|
|
|
Mfcer__
Команда клуба
Offline
|
|
« Ответ #13 : 18-09-2004 22:00 » |
|
Если кто такую знает дайте ссылку пожалуйста.... Генри С. Уоррен, мл. Алгоритмические трюки для программистов на озоне можно посмотреть подробнее, в электронном виде пока не встречал http://www.ozon.ru/?context=detail&id=1458852
|
|
|
Записан
|
|
|
|
Xeysan
Гость
|
|
« Ответ #14 : 19-09-2004 09:19 » |
|
Я смотрю большинство здесь ударилось в алгоритмы , а ведь вопрос задан в профильном форуме, так что конкретно по С++ вот.... www.boost.org - библиотека, в которой все равно придеться разобраться 8) Но сначала советую прочесть несколько ( лучше все ) книги отсюда http://anatolix.naumen.ru/cppbooks.htm
|
|
|
Записан
|
|
|
|
Alanir Alonedaw
Гость
|
|
« Ответ #15 : 19-09-2004 10:56 » |
|
Эх люди, люди... Почему все всё меньше хотят думать сами? И не надо мне говорить, мол: "Зачем изобретать велосипед".
|
|
|
Записан
|
|
|
|
Migmile
Помогающий
Offline
|
|
« Ответ #16 : 04-10-2004 16:15 » |
|
Только набив огромное кол-во шишек на лбу (в основном своем!) будешь на подсознании находить ошибки! Поэтому - ПРАКТИКА, ПРАКТИКА и еще раз ПРАКТИКА (не сильно алкагольная )
|
|
|
Записан
|
|
|
|
Alanir Alonedaw
Гость
|
|
« Ответ #17 : 05-10-2004 07:40 » |
|
Золотые слова...
|
|
|
Записан
|
|
|
|
Mad
Гость
|
|
« Ответ #18 : 16-10-2004 12:56 » |
|
Alanir Alonedaw, А я всетаки скажу "зачем изобретать велосипед".
Как правильно сказал npak, сейчас перед программистом ставятся достаточно комплексные задачи, и если ты работаеш над создание системы по обработки данных, на пример, то ты конечно можеш провозиться кучу времени над своим алгоритмом кеширования промежуточных результатов и , возмоно, получиш прирост производительности на 5-10%. Вроде не плохо, но ведь и стандартные методы оставляют более половины процесорного времени на другие задачи. В итоге ты, со своим "изобретением велосипеда", провозишся над проэктом в два раза дольше, а в итоге заказчик разницы все равно не увидит.
Общий подход, по моему мнению, должен быть таков : написал с использованием "стандартных велосипедов" и еслм производительность устраивает, то хорошо. Нет - изобретай свои.
|
|
|
Записан
|
|
|
|
Alanir Alonedaw
Гость
|
|
« Ответ #19 : 17-10-2004 09:32 » |
|
то ты конечно можеш провозиться кучу времени над своим алгоритмом кеширования промежуточных результатов и , возмоно, получиш прирост производительности на 5-10%.
Из нано-секунд складываются мили-секунду, из тех в свою очередь секунды, а секунда для компьютера - это не мало. :!:
|
|
|
Записан
|
|
|
|
Scorp__)
Молодой специалист
Offline
Пол:
|
|
« Ответ #20 : 17-10-2004 15:09 » |
|
Alanir Alonedaw, очень часто не получается и прироста производительности. Стандартные методы, например сортировки настольки хороши, что сколько ни изобретай - лучше не выйдет. У нас вот один товарищ , решил вместо того, чтобы пользоваться стандартными протоколами обмена информацией, с их служебной информацией, исправлением ошибок и т. д. решил написать свой протокол, все еще расхлебываем последствия и много еще скрытых граблей осталось
|
|
|
Записан
|
- А Вы сами-то верите в привидения? - Конечно, нет, - ответил лектор и медленно растаял в воздухе.
|
|
|
lapulya
Молодой специалист
Offline
|
|
« Ответ #21 : 18-10-2004 08:10 » |
|
Scorp__), ща просто лопну.... мдаааа в таких случаях самое главное модульность!!! чтобы потом не рыскать по всему коду, а просто взять и грохнуть ту дребедень которую этот товарищ написал и просто реализовать все на tcp (если речь шла о сети)... Alanir Alonedaw, мдаааа видимо ты никогда не учавствовал в крупных (а может даже и мелких) коммерческих (это главное здесь слово) проектах... дааа необходимо еще упомянуть тот факт, что в 99 процентах ты даже неполучишь не только выигрыша по сравнению с готовыми реализациями стандартных аглоритмов (я уж не говорбю об изобретении собственных), но твоя версия будет работать медленнее, а времени на ее разработку И отладку (что не маловажно, если при показе клиенту или тем более эксплуатации, из-за твоего алгоритма все упадет, а выигрышь в производительности составит считанные проценты (если вообще будет), то мое мнение такое - никогда не берись за собственную реализаю, если очень неймется изучи существующий алгоритм) будет потрачено сущееееественно больше. До кучи скажу следующее алгоритм алгоритму рознь! и для всего лишь реализации некоторых (слышишь не разработки принципиально нового, а всего лишь понимания принципа работы и реализации), требуется оооочень не кислая мат. подготовка... Хотя, хочу отметить что если твой подход не используется в работе, а просто является хобби, то это очень даже похвально !
|
|
|
Записан
|
С уважением Lapulya
|
|
|
Alanir Alonedaw
Гость
|
|
« Ответ #22 : 18-10-2004 12:38 » |
|
lapulyaИменно хобби Я действительно не учавствовал пока что в комерческих проектах и не выполнял заказов. Если возьмусь - ясен пень буду делать по стандартам, потому что сроки жать будут.
|
|
|
Записан
|
|
|
|
npak
|
|
« Ответ #23 : 18-10-2004 15:47 » |
|
Эх люди, люди... Почему все всё меньше хотят думать сами? И не надо мне говорить, мол: "Зачем изобретать велосипед". В данном случае самостоятельное думание переносится в другую область -- извлечение требований из заказчика, проектирование архитектуры, увязывание стандартных кирпичей в нужное приложение, тестирование получившегося. Если я видел дальше других, то потому, что стоял на плечах гигантов
|
|
|
Записан
|
|
|
|
|