Форум: "Прочее";
Текущий архив: 2007.05.20;
Скачать: [xml.tar.bz2];
ВнизПрограммирование: теория и практика. Найти похожие ветки
← →
Alx2 © (2007-04-19 00:55) [0]Как часто в повседневной работе вами используется знание классики? Используется ли, например, понятие сложности алгоритма?
А случалось ли писать биномиальные пирамиды, кучи, фибоначчиевые пирамиды, AVL, B-деревья, всевозможные сортировки, для решения практических задач? И нужно ли это сейчас знать программисту-прикладнику, или гораздо важнее знать, где можно найти готовые решения?
← →
Jeer © (2007-04-19 01:16) [1]Alx2 © (19.04.07 00:55)
Конечно приходилось:)
А как же без матчасти + собственные изыски ?
Это же интересно, "ну а денешки, а денешки - потом" :)
← →
Германн © (2007-04-19 01:21) [2]<offtop>
На дверь в наш техотдел некий шутник прилепил скотчем бумажку с текстом:
"Теория - это когда все всё знают, но ничего не работает!
Практика - это когда всё работает, но никто не знает почему!
В этом месте мы совмещаем теорию и практику. Ничего не работает и никто не знает почему!"
</offtop>
P.S. Знание классики (теории и т.д.) ещё никогда никому не мешало. Лишь бы мозги были. А вот отсутствие таких знаний очень часто может затруднить жизнь, даже при хорошо работающем мозге. Имхо.
← →
Юрий Зотов © (2007-04-19 01:30) [3]> Alx2 © (19.04.07 00:55)
> гораздо важнее знать, где можно найти готовые решения?
Даже чтобы найти готовое решение - и то уже нужно знать, что искать. А для этого нужно знать теорию, хотя бы поверхностно.
← →
MBo © (2007-04-19 06:52) [4]>Используется ли, например, понятие сложности алгоритма?
Да, периодически
>А случалось ли писать ...
биномиальные и фиб. кучи - нет, т.к. не было задач, для которых требуются их особые свойства (быстрое слияние). Обычные кучи - да, двусторонняя косвенная очередь по приоритетам требовалась, да и другие базовые структуры данных периодически нужны бывают.
Сортировки - да, практически использую около 5 алгоритмов.
> нужно ли это сейчас знать программисту-прикладнику, или гораздо важнее знать, где можно найти готовые решения
немного это здесь обсуждалось.
http://delphimaster.net/view/15-1176199472/
Да и так по разным форумам и личным впечатлениям бывает видно, что отсутствие базового алгоритмического минимума зачастую не дает возможности найти решение (или вообще какое-либо, или эффективное), или понять предложенный метод.
Причем даже прилично использовать готовые решения типа STL трудно без представления о хотя бы общих принципах.
← →
Джо © (2007-04-19 07:11) [5]> [0] Alx2 © (19.04.07 00:55)
> Как часто в повседневной работе вами используется знание
> классики? Используется ли, например, понятие сложности
> алгоритма?
> А случалось ли писать биномиальные пирамиды, кучи, фибоначчиевые
> пирамиды, AVL, B-деревья, всевозможные сортировки, для решения
> практических задач? И нужно ли это сейчас знать программисту-
> прикладнику, или гораздо важнее знать, где можно найти готовые
> решения?
Знать, где можно найти — несомненно нужно.
Для сего требуется иметь хотя бы общее представление.
Ничего из перечисленного руками никогда не писал, нужды не было.
← →
TUser © (2007-04-19 08:17) [6]> Используется ли, например, понятие сложности алгоритма?
Регулярно. Часто задумываюсь о нем, когда что-нибудь тормозит. Иногда - еще и перед тем, как писать. :(
> А случалось ли писать биномиальные пирамиды, кучи, фибоначчиевые пирамиды, AVL, B-деревья, всевозможные сортировки, для решения практических задач?
Из этого всего - сортировки. Но из алгоритмов вообще пользовался кое-чем.
> И нужно ли это сейчас знать программисту-прикладнику
хз
> или гораздо важнее знать, где можно найти готовые решения?
Это тоже важно. Но интересно, если все будут знать только где нагуглить готовое решение, то откуда они - готовые решения - будут возникать?
← →
iZEN © (2007-04-19 09:20) [7]
> Alx2 © (19.04.07 00:55)
Гораздо важнее знать, где это можно найти. Так как если что-то уже есть, и подтвердило свою надёжность во многих проектах, то зачем изобретать такое же своё, ведь придётся это ещё и тестировать?
← →
Megabyte © (2007-04-19 09:30) [8]
> iZEN © (19.04.07 09:20) [7]
Гораздо важнее знать, где это можно найти. Так как если что-то уже есть, и подтвердило свою надёжность во многих проектах, то зачем изобретать так
Тут выбирать между, что лучше имхо не уместно. Все таки и то(уметь найти), и другое(понимать хотя бы). Если знаешь, где найти, но не понимаешь, как это работает, то тупо сложнее будет отловить баги/логические ошибки...
← →
Ega23 © (2007-04-19 09:36) [9]Основы знать - ИМХО надо.
Я вот, например, совершенно не помню ни одного алгоритма сортировки. Даже пузырька не помню.
Но есть тетрадочка, где это записано. А также множество дугих алгоритмов. А также помню, как сравнивать эффективность.
Так что если потребуется (что вряд-ли, но всякое бывает) - вспомню достаточно быстро.
← →
Игорь Шевченко © (2007-04-19 09:37) [10]В-деревья и всевозможные сортировки безусловно приходилось писать :)
> И нужно ли это сейчас знать программисту-прикладнику, или
> гораздо важнее знать, где можно найти готовые решения?
Нужно конечно. Хотя бы для того, чтобы знать, что искать.
Я бы всем рекомендовал к обязательному прочтению книжку Гудмана и Хидетниеми "Введение в разработку и анализ алгоритмов", книжка довольно популярно дает базовые знания, достаточные для ориентации в море готовых решений :)
← →
Alx2 © (2007-04-19 09:53) [11]Спасибо за ответы.
Я придерживаюсь мнения, что знать классику обязательно. Не на всякую задачку найдется адекватная затычка из тырнета.
Но, с другой стороны, построение софта напоминает сборку устройства из агрегатов с подходящим (как кажется) поведением.
Например, часто вижу, что задачки типа удаления из строки дублирующихся пробелов (оставить не более одного подряд) решаются квадратичными алгоритмами видимо из-за того, что есть StringReplace. Конечно, на коротких строках это не важно. Но нет никакой гарантии, что оно перепишется для длинных строк.
Хотя, приходя в магазин за товаром, мы ожидаем от него определенного поведния, умеем его использовать и совершенно в другой области лежит любопытство относительно его устройства. Тут уже существенно знание "где что и почем".
← →
Jeer © (2007-04-19 10:44) [12]Для студентов полезно будет написанное и выстраданное студентами же.
http://rain.ifmo.ru/cat/view.php/
Alx2 © (19.04.07 09:53) [11]
> Но, с другой стороны, построение софта напоминает сборку
> устройства из агрегатов с подходящим (как кажется) поведением.
>
Верно, но неплохо когда сборщик практиковался также в создании сборочных единиц.
Это полезно во всех смыслах, а кроме того, рано или поздно набирается библиотека проверенных решений (алгоритмов/реализаций), что только положительно сказывается на скорости и надежности разработок.
← →
atruhin © (2007-04-19 13:52) [13]Простой пример, нужен быстрый поиск строк в коллекции:
Заходишь на свалку компонентов и видишь несколько типов коллекций строк:
1. Стандартный поиск перебором;
2. Поиск половинным делением в отсортированной коллекции;
3. Поиск в b-tree
4. Поиск в хэш таблице.
Если ты не знаешь принцип действия данных алгоритмов, как сможешь выбрать нужное?
Ведь у каждого из этих алгоритмов есть свои плюсы и минусы,
каждый работает по разному на разных наборах данных.
Страницы: 1 вся ветка
Форум: "Прочее";
Текущий архив: 2007.05.20;
Скачать: [xml.tar.bz2];
Память: 0.49 MB
Время: 0.043 c