![]() |
Здравствуйте, гость ( Вход | Регистрация )
![]() |
Iron Bug |
![]()
Сообщение
#1
|
|||
![]() Профессионал ![]() ![]() ![]() ![]() ![]() Группа: Модератор Сообщений: 1611 Регистрация: 6.2.2009 Из: Yekaterinburg Пользователь №: 533 Спасибо сказали: 219 раз(а) Репутация: ![]() ![]() ![]() |
имхо, не надо тратить время на запоминание алгоритмов. они бывают очень хитрожопые, но пользы от их запоминания нет никакой. разве что ради развлечения на досуге (если таковой имеется). алгоритмы всегда можно найти, когда потребуется. это маленькие кирпичи, из которых строится программа. но они не играют роли, если общая концепция плохо продумана. так что то, что реально полезно в жизни - это паттерны(модели, схемы, принципы) проектирования ПО. по этой теме есть непревзойдённая книжка Эриха Гаммы и компании "Паттерны программирования" (или как-то так, я на английском читала, там она называется Design Patterns: Elements of Reusable Object-Oriented Software). Тут в книгах кто-то выкладывал русский перевод, но мне лично попадался очень распространённый и совершенно чудовищный перевод, полный ошибок, и я бы всё же рекомендовала её читать на английском, при возможности. эта книжка во многом ставит мозги на место и позволяет быстро решать довольно запутанные задачи в программировании. Только нет в стандарте алгоритмов на графах (алгоритма обхода графа, алгоритма нахождения кратчайшего пути ...), алгоритма поиска пары ближайших точек, определения выпуклой оболочки, поиска наибольшего общего делителя и т.д. Задач очень много и решений тоже. И нужно уметь анализировать эти решения, какое из них в твоей ситуации лучшее. это всё (ну, почти всё, что встречается на практике) и ещё куча всякой дребедени есть в бусте. Сообщение отредактировал ViGOur - 21.8.2010, 17:53 |
|||
|
||||
![]() |
Iron Bug |
![]()
Сообщение
#2
|
![]() Профессионал ![]() ![]() ![]() ![]() ![]() Группа: Модератор Сообщений: 1611 Регистрация: 6.2.2009 Из: Yekaterinburg Пользователь №: 533 Спасибо сказали: 219 раз(а) Репутация: ![]() ![]() ![]() |
Речь не идет о конкретных языках программирования, или о конкретных реализациях каких либо стандартных (ну или наиболее часто встречающихся) алгоритмов в библиотеках на тех же языках. Про алгоритмы можно сказать все то же самое, что ты сказала про паттерны. Они так же ставят мозги на место, развивают аналитическое мышление. Знание стандартных алгоритмов так же позволяет быстрее решать поставленные задачи. А знания анализа и методов разработки алгоритмов позволяют принимать правильные решения еще на этапе разработки ПО. я и не говорю о конкретных языках. паттерны есть паттерны. просто основной язык программирования - Си и чаще всего именно на его примере разбираются все алгоритмы и т.п. что касается именно алгоритмов - их нет смысла запоминать, так как всегда можно найти. а реализации современных алгоритмов в оптимизированном виде не добавляют логического мышления, только геморрой с разбиранием что и куда. даже я, с высшим математическим образованием, не всегда могу въехать в реализацию какого-нибудь сильно заоптимизированного алгоритма. а зачем городить свой огород, когда уже есть готовые отлаженные модули? а вот проектирование - главная задача програмиста. именно тут он проявляет свои способности к программированию. а мелочи дописываются по ходу дела или вообще отдаются менее компетентным исполнителям - на доработку отдельных функций. ошибки в проектировании - самые страшные и самые дорогостоящие. ошибки в мелочах по сравнению с этим - вообще ноль. |
|
|
![]() ![]() |
![]() |
|
Текстовая версия | Сейчас: 24.6.2025, 0:18 |