Алгоритмическая сложность и прочее
От: Sorc17 Россия  
Дата: 14.03.12 08:53
Оценка: :))) :)
Вот уже который раз лазаю по темам про собеседования и часто вижу там слова в духе "кандидат не смог почитать сложность ля-ля-ля". Неужто на ваших фирмах с бугалтерий@документоообротом хоть одному программисту хоть раз за всю историю разработки понадобилось посчитать алгоритмическую сложность?

Помнится, я на 2 курсе спокойно асилил как считать эту самую сложность и запросто решал на экзаменах и зачётах любые задачи с этим связанные. И с тех пор так и не вспоминаю про это, так за за все эти годы мне это ни разу не понадобилось.
Для нас [Thompson, Rob Pike, Robert Griesemer] это было просто исследование. Мы собрались вместе и решили, что ненавидим C++ [смех].
Re: Алгоритмическая сложность и прочее
От: MTD https://github.com/mtrempoltsev
Дата: 14.03.12 08:58
Оценка: +2
Здравствуйте, Sorc17, Вы писали:

S>Вот уже который раз лазаю по темам про собеседования и часто вижу там слова в духе "кандидат не смог почитать сложность ля-ля-ля". Неужто на ваших фирмах с бугалтерий@документоообротом хоть одному программисту хоть раз за всю историю разработки понадобилось посчитать алгоритмическую сложность?


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


Жду когда пойдут темы: "Не смог написать свое имя без ошибок, просто давно не писал, раньше проблем не было, надо будет научусь заново".

Ну как, как, можно забыть, что a(b + c) = ab + ac, или что проход по массиву n элементов имеет сложность O(n) ?!!
Re: Алгоритмическая сложность и прочее
От: Паблик Морозов  
Дата: 14.03.12 09:10
Оценка:
Здравствуйте, Sorc17, Вы писали:

Обычно это просто маркер говнокодеров. Я не встречал нормальных программистов, у которых были бы с этим проблемы, тем более, что в задачах с бугалтерий@документоообротом вся алгоритмическая сложность сводится к выбору между тремя вложенными циклами или каким-нибудь более эффективным решением. Зато говнокодеры, которые любили писать какую-нибудь лапшу без понимания, как оно работает, почти никогда не знали, что такое алгоритмическая сложность.
Re[2]: Алгоритмическая сложность и прочее
От: Sorc17 Россия  
Дата: 14.03.12 09:12
Оценка: -6 :))) :))) :))) :))
Здравствуйте, MTD, Вы писали:

MTD>... или что проход по массиву n элементов имеет сложность O(n) ?!!


Зачем это знать? Написал foreach и всё. Какая разница какая там у него сложность? А если начала тормозить выборка для отчёта, сделал постраничную разбивку и всё. Если всё равно тормозит, то сделал чтобы оно динамически подгружалось, пока юзер втыкает в его начало, грузится конец. Всё равно тормозит? Впилил кеширование. Всё равно тормозит? Купил новый сервер и новый комп менегеру, который юзает прогу. На любом этапе тут можно посчитать сложность, только не нужно, потому что это не решит проблему, а значит не нужно
Для нас [Thompson, Rob Pike, Robert Griesemer] это было просто исследование. Мы собрались вместе и решили, что ненавидим C++ [смех].
Re[2]: Алгоритмическая сложность и прочее
От: Sorc17 Россия  
Дата: 14.03.12 09:18
Оценка:
Здравствуйте, Паблик Морозов, Вы писали:

ПМ>Здравствуйте, Sorc17, Вы писали:


ПМ>Обычно это просто маркер говнокодеров. Я не встречал нормальных программистов, у которых были бы с этим проблемы, тем более, что в задачах с бугалтерий@документоообротом вся алгоритмическая сложность сводится к выбору между тремя вложенными циклами или каким-нибудь более эффективным решением. Зато говнокодеры, которые любили писать какую-нибудь лапшу без понимания, как оно работает, почти никогда не знали, что такое алгоритмическая сложность.


Ну ежели вы спрашиваете просто на понимание о чём вообще речь, то ладно.
Для нас [Thompson, Rob Pike, Robert Griesemer] это было просто исследование. Мы собрались вместе и решили, что ненавидим C++ [смех].
Re: Про прочее
От: Пофигист Россия  
Дата: 14.03.12 09:36
Оценка:
Здравствуйте, Sorc17, Вы писали:

S>Вот уже который раз лазаю по темам про собеседования и часто вижу там слова в духе "кандидат не смог почитать сложность ля-ля-ля". Неужто на ваших фирмах с бугалтерий@документоообротом хоть одному программисту хоть раз за всю историю разработки понадобилось посчитать алгоритмическую сложность?


Считать сложность как таковую — нет. Но один раз в жизни алгоритмы пригодились. Где-то пол-года назад в нашем внутреннем проекте загрузка данных стала уж очень долгой, по кейсу от юзеров ~ 5 часов. Но я же краем уха помнил, что есть всякие разные поиски. Полчаса гугления и исправление в пару строк, с заменой поиска на бинарный поиск снизило это время до ~1-2 минут. Я потом месяц ходил и собой гордился, особенно с учётом того, что я простой кодерок, а исходно код писали наши ведущие программеры.
Re: Алгоритмическая сложность и прочее
От: anomander  
Дата: 14.03.12 09:51
Оценка: +1 :)
Здравствуйте, Sorc17, Вы писали:

S>Вот уже который раз лазаю по темам про собеседования и часто вижу там слова в духе "кандидат не смог почитать сложность ля-ля-ля". Неужто на ваших фирмах с бугалтерий@документоообротом хоть одному программисту хоть раз за всю историю разработки понадобилось посчитать алгоритмическую сложность?


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


Если ваши амбиции ограничены фирмами "с бугалтерий@документоообротом", то можете смело забить на алгоритмы, их сложность и нужность. А при упоминании их на собеседовании говорить, что это прошлый век, сейчас все решается волшебным форычем.
Re: Алгоритмическая сложность и прочее
От: De-Bill  
Дата: 14.03.12 10:04
Оценка: 2 (1) +4
S>Неужто на ваших фирмах с бугалтерий@документоообротом хоть одному программисту хоть раз за всю историю разработки понадобилось посчитать алгоритмическую сложность?

Естественно нет. Никогда и нигде задачи в виде "подсчитай алгоритмическую сложность этого куска кода" не было. С другой стороны, алгоритмическая сложность она везде. Особенно в правильном выборе структуры данных и работой с большими объёмами. Ещё у алгоритмической сложности есть одно замечательное свойство. Если программист профессиональный и понимает (не помнит назубок!) алгоритмы и структуры данных, то он не думает об алгоритмической сложности и пишет качественный быстрый код. Если программист слабый, то он тоже никогда не думает об алгоритмической сложности, но пишет тормознутое глючное фуфло.
Re[3]: Алгоритмическая сложность и прочее
От: MTD https://github.com/mtrempoltsev
Дата: 14.03.12 10:14
Оценка: +2
Здравствуйте, Sorc17, Вы писали:

S>На любом этапе тут можно посчитать сложность, только не нужно, потому что это не решит проблему, а значит не нужно


Жесть! Теперь спрашивать про о-большое буду в обязательном порядке.
Re: Алгоритмическая сложность и прочее
От: Злобастик  
Дата: 14.03.12 10:17
Оценка:
Здравствуйте, Sorc17, Вы писали:

S>Вот уже который раз лазаю по темам про собеседования и часто вижу там слова в духе "кандидат не смог почитать сложность ля-ля-ля". Неужто на ваших фирмах с бугалтерий@документоообротом хоть одному программисту хоть раз за всю историю разработки понадобилось посчитать алгоритмическую сложность?


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


Я вообще никогда в жизни не слышал о таком понятии, как "алгоритмическая сложность". Нигде — ни в институте, ни на работе, ни в книжках, ни в интернетах, ни от коллег.
Re[2]: Алгоритмическая сложность и прочее
От: anomander  
Дата: 14.03.12 10:24
Оценка: :))) :))) :)
Здравствуйте, Злобастик, Вы писали:

З>Я вообще никогда в жизни не слышал о таком понятии, как "алгоритмическая сложность". Нигде — ни в институте, ни на работе, ни в книжках, ни в интернетах, ни от коллег.


Это все потому, что не все алгоритмы обладают Алгоритмической Сложностью. Очевидно — ей обладают только сложные алгоритмы. Легкие алгоритмы, например те, которые проходят в институте, соверщенно очевидно, обладают Алгоритмической Легкостью.
Re[3]: Алгоритмическая сложность и прочее
От: Злобастик  
Дата: 14.03.12 10:34
Оценка: :)
Здравствуйте, anomander, Вы писали:

A>Здравствуйте, Злобастик, Вы писали:


З>>Я вообще никогда в жизни не слышал о таком понятии, как "алгоритмическая сложность". Нигде — ни в институте, ни на работе, ни в книжках, ни в интернетах, ни от коллег.


A>Это все потому, что не все алгоритмы обладают Алгоритмической Сложностью. Очевидно — ей обладают только сложные алгоритмы. Легкие алгоритмы, например те, которые проходят в институте, соверщенно очевидно, обладают Алгоритмической Легкостью.


Ну так я и про Алгоритмическую Легкость первый раз слышу.
Re[4]: Алгоритмическая сложность и прочее
От: anomander  
Дата: 14.03.12 10:57
Оценка:
Здравствуйте, Злобастик, Вы писали:

З>Ну так я и про Алгоритмическую Легкость первый раз слышу.


Может вы и про волшебный форыч не слышали? Сейчас придут злые кодеры, которые делают "бугалтерию@документоооброт вот это все" и расскажут как программы, использующие его, более лучше работают и, при этом, не требуют особых умственных вложений.
Re[5]: Алгоритмическая сложность и прочее
От: Злобастик  
Дата: 14.03.12 11:24
Оценка: -6 :))) :)
Здравствуйте, anomander, Вы писали:

A>Здравствуйте, Злобастик, Вы писали:


З>>Ну так я и про Алгоритмическую Легкость первый раз слышу.


A>Может вы и про волшебный форыч не слышали? Сейчас придут злые кодеры, которые делают "бугалтерию@документоооброт вот это все" и расскажут как программы, использующие его, более лучше работают и, при этом, не требуют особых умственных вложений.


Ум надо вкладывать в первую очередь в архитектуру и проектирование. Если производительность проседает, на то есть средства диагностики. Если красивое решение работает медленнее корявого, но более быстрого, то делаем замену. В том числе форыча на фор. Я в таких тонких местах обычно стратегию применяю. Так что можешь и дальше кичиться своим более лучшим знанием термина "Алгоритмическая Сложность", но реально знать о ней нафиг не нужно. Оценка самого алгоритма — вот что действительно важно.
Re: Алгоритмическая сложность и прочее
От: B0FEE664  
Дата: 14.03.12 11:34
Оценка:
Здравствуйте, Sorc17, Вы писали:

S>Вот уже который раз лазаю по темам про собеседования и часто вижу там слова в духе "кандидат не смог почитать сложность ля-ля-ля". Неужто на ваших фирмах с бугалтерий@документоообротом хоть одному программисту хоть раз за всю историю разработки понадобилось посчитать алгоритмическую сложность?

Нет. Этого вообще никогда не требуется. За исключением ...
S>Помнится, я на 2 курсе спокойно асилил как считать эту самую сложность и запросто решал на экзаменах и зачётах любые задачи с этим связанные. И с тех пор так и не вспоминаю про это, так за за все эти годы мне это ни разу не понадобилось.
... собеседований.
И каждый день — без права на ошибку...
Re: Алгоритмическая сложность и прочее
От: kaa.python Ниоткуда РСДН профессионально мёртв и завален ватой.
Дата: 14.03.12 11:45
Оценка: +8
Здравствуйте, Sorc17, Вы писали:

S>Вот уже который раз лазаю по темам про собеседования и часто вижу там слова в духе "кандидат не смог почитать сложность ля-ля-ля". Неужто на ваших фирмах с бугалтерий@документоообротом хоть одному программисту хоть раз за всю историю разработки понадобилось посчитать алгоритмическую сложность?


Подсчитать — нет. Подумать какой из алгоритмов/контейнеров будет оптимальным в данный момент или придумать как решить ту или иную алгоритмическую задачу — очень часто. И вот для этого "очень часто" знание, хотя бы приблизительное, того, как устроены контейнеры, или какова сложноть у алоритмов необходимо. Хотя, возможно, это потому, что я вообще не занимаюсь ни бухгалтерией, ни документоообротом.
Re[2]: Алгоритмическая сложность и прочее
От: MxMsk Португалия  
Дата: 14.03.12 11:47
Оценка:
Здравствуйте, MTD, Вы писали:

MTD>Жду когда пойдут темы: "Не смог написать свое имя без ошибок, просто давно не писал, раньше проблем не было, надо будет научусь заново".

А что, может и забывали бы и отучались, если бы имя не требовалось часто в повседневной жизни.

Интересно другое. Ну, вот знаю, что это за сложность, могу подсчитать. Но в работе не пригождается, не было задач с необходимостью считать сложность. Теперь думаю, может значение O-большое действительно преувеличено? Было время, когда хирожопые алгоритмы были основой большинства проектов. Сейчас время другое, много готовых решений, много задач, не связанных напрямую с хардкорным программированием. Причем ситуация такова, что разработчики по-прежнему думают о скорости, но средства профилирования, например, предлагают для этого другие характеристики. Как оптимайзиться среднестатистичекий SQL-запрос? Глядим план, видим на что уходит большая часть времени. Нет там О-большого, есть процент от общего времени и смысл его траты. Как оптимайзиться среднестатистичекий энтерпрайз? Глядим профайлером, где много времени расходуется. Снова нет О-большого, а есть количество вызовов, процент собственного времени и т.п. К чему я. К тому, что некоторые даже хорошие программисты действительно могут не знать О-большое, потому что сейчас есть средства, предлагающие другие методы анализа производительности.
Re: Алгоритмическая сложность и прочее
От: minorlogic Украина  
Дата: 14.03.12 12:19
Оценка:
для "бугалтерий@документоообротом" Это все ен надо , да и ппрограмированием это с натяжкой нызывается.

Но с чего вы взяли что тут все документооборот клепают ?
... << RSDN@Home 1.2.0 alpha 5 rev. 1539>>
Ищу работу, 3D, SLAM, computer graphics/vision.
Re[4]: Алгоритмическая сложность и прочее
От: B0FEE664  
Дата: 14.03.12 12:51
Оценка:
Здравствуйте, MTD, Вы писали:

S>>На любом этапе тут можно посчитать сложность, только не нужно, потому что это не решит проблему, а значит не нужно

MTD>Жесть! Теперь спрашивать про о-большое буду в обязательном порядке.

Расскажите, пожалуйста, про практику применения этого знания. В каком контексте и для каких задач вы рассчитывали алгоритмическую сложность?
И каждый день — без права на ошибку...
Re[2]: Алгоритмическая сложность и прочее
От: B0FEE664  
Дата: 14.03.12 12:52
Оценка:
Здравствуйте, minorlogic, Вы писали:

M>для "бугалтерий@документоообротом" Это все ен надо , да и ппрограмированием это с натяжкой нызывается.

M>Но с чего вы взяли что тут все документооборот клепают ?

А в какой практической области это надо?
И каждый день — без права на ошибку...
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.