Re: Быдлокодеры и понты
От: Eye of Hell Россия eyeofhell.habr.ru
Дата: 21.07.11 06:10
Оценка:
А>Фак! Как программист может кичиться незнанием дискретки, алгоритмов и логики?

Да легко, вообщем-то. Не все же сортировки и кодеки пишут. Я вот не понимаю как можно дискретику и алгоритмы запихивать туда, куда не нужно — а потом удивляться, что код никто поддерживать не может O_O
Re[3]: Быдлокодеры и понты
От: WFrag США  
Дата: 21.07.11 06:46
Оценка:
Здравствуйте, netch80, Вы писали:

AVL>>И все эти пользователи, как один, взахлеб кричат о бесполезности знания устройства компьютера. $#@# %$@%! Как пользователь может кичиться незнанием принципов работы ЦП, ОЗУ, ПЗУ, НЖМД, ПДП итд того, с чем он работает?


N>Зря ёрничаете. Мир уже ушёл от того времени, когда "компьютерная грамотность" была умением нажать букву в Ворде, и давно пора учить по-настоящему.


Так наоборот же, устройства проще и проще становится. Когда-то надо было уметь менять кассеты, понимать, что такое файловая система, уметь "правильно" выключать компьютер, и так до бесконечности. Современные устройства во многом стали сильно проще.
Re: Быдлокодеры и понты
От: yoriсk.kiev.ua  
Дата: 21.07.11 07:29
Оценка:
Здравствуйте, Антихрист, Вы писали:

А>А смотришь на их результат — интерфейсы все как один говно, система тормозит от этих ваших гибернейтов нещадно (кстати, до сих пор не понимаю как эта жирная, убогая ОРМ может помочь при разработке хоть большой, хоть малой ИС). За код который они пишут, у нас в команде убивают без суда и следствия.


А "у нас в команде" — это где?
Re: Быдлокодеры и понты
От: Lazin Россия http://evgeny-lazin.blogspot.com
Дата: 21.07.11 08:46
Оценка:
Здравствуйте, Антихрист, Вы писали:

А>Мое мнение — в стране нужно ввести жесткое лицензирование для программистов с требованиями по знаниям всех парадигм, 2-3 ЯП, и годного матана.


Давно известно, чем более закрытой является та или иная индустрия в стране, тем медленнее она развивается.
Re: Быдлокодеры и понты
От: Kernan Ниоткуда https://rsdn.ru/forum/flame.politics/
Дата: 21.07.11 11:38
Оценка: :))
Здравствуйте, Антихрист, Вы писали:

А>Мое мнение — в стране нужно ввести жесткое лицензирование для программистов с требованиями по знаниям всех парадигм, 2-3 ЯП, и годного матана.

Да какой ты к чёрту анархист после этого?!
Sic luceat lux!
Re[2]: Быдлокодеры и понты
От: Ночной Смотрящий Россия  
Дата: 21.07.11 12:19
Оценка:
Здравствуйте, Kernan, Вы писали:

K>Да какой ты к чёрту анархист после этого?!


Видимо, начинать надо с уроков чтения.
Re[2]: Быдлокодеры и понты
От: monax  
Дата: 21.07.11 12:22
Оценка: -2
Здравствуйте, DorfDepp, Вы писали:

DD>А зачем вам алгоритмы в прикладной (не системной) разработке?


DD>Базовые операции поддерживает язык программирования. Структуры данных есть в библиотеке классов. Сортировку выполняет база данных. Куда приткнуть ваши алгоритмы в ненаукоемком проекте?


вот есть на сайте яндекса такой вопрос (да не возненавидят меня его сотрудники, что привожу его для публичного обсуждения):

Существует следующий фрагмент программы:

tokens = []
for token in tokeniter:
    if token not in tokens:
        tokens.append(token)

Здесь tokensiter — итератор, выдающий достаточно большую последовательность токенов, которые могут повторяться.

На выходе у этого фрагмента программы массив уникальных токенов, без повторений, у которого сохранен хронологический порядок появления токенов из входной последовательности tokensiter.

Оцените временную сложность этого фрагмента и предложите обоснованные способы оптимизации.


Эта задача вполне прикладного уровня, а у этого кода O(n^2). Как думаешь, что будет с этим кодом, если дать на вход пару миллионов элементов? А простая оптимизация с двоичными поиском и вставкой в массив пары (token, порядок_вставки) даст что-то около O(log n) + O(n). Второе слагаемое — это стоимость вставки в отсортированный массив. Потом можно развернуть всё в необходимый список с сохранением хронологического порядка появления токенов. Всё это прикладной уровень, но без знания алгоритмов твоя программа будет работать по коду из задачи, что приведёт к потере машинного времени, да и результата ты можешь не дождаться несколько дней.
Re[2]: Быдлокодеры и понты
От: avpavlov  
Дата: 21.07.11 12:53
Оценка:
___>А критерий "годного" матана у Вас есть? Ну про список "всех" парадигм я уже не спрашиваю

Годный матан уже с удовольствием обсудили здесь

http://rsdn.ru/forum/humour/4209394.1.aspx
Автор: Yuki-no Tenshi
Дата: 25.03.11
Re[3]: Быдлокодеры и понты
От: DorfDepp  
Дата: 21.07.11 12:53
Оценка: :))) :)))
Здравствуйте, monax, Вы писали:

M>Здравствуйте, DorfDepp, Вы писали:


DD>>А зачем вам алгоритмы в прикладной (не системной) разработке?


DD>>Базовые операции поддерживает язык программирования. Структуры данных есть в библиотеке классов. Сортировку выполняет база данных. Куда приткнуть ваши алгоритмы в ненаукоемком проекте?


M>вот есть на сайте яндекса такой вопрос (да не возненавидят меня его сотрудники, что привожу его для публичного обсуждения):


M>

M>Существует следующий фрагмент программы:
M>

M>tokens = []
M>for token in tokeniter:
M>    if token not in tokens:
M>        tokens.append(token)
M>

M>Здесь tokensiter — итератор, выдающий достаточно большую последовательность токенов, которые могут повторяться.

M>На выходе у этого фрагмента программы массив уникальных токенов, без повторений, у которого сохранен хронологический порядок появления токенов из входной последовательности tokensiter.

M>Оцените временную сложность этого фрагмента и предложите обоснованные способы оптимизации.


M>Эта задача вполне прикладного уровня, а у этого кода O(n^2).


Это — очень специфическая задача вполне себе системного характера. В прикладном программировании такие не встречаются.
Re[3]: Быдлокодеры и понты
От: dimgel Россия https://github.com/dimgel
Дата: 21.07.11 13:10
Оценка:
Здравствуйте, netch80, Вы писали:

N>И матан, конечно, нужен. Ибо голову развивает.


Пользователям-то?
И матан, конечно, не нужен. Ибо голову забивает.
Re[4]: Быдлокодеры и понты
От: netch80 Украина http://netch80.dreamwidth.org/
Дата: 21.07.11 13:11
Оценка:
Здравствуйте, dimgel, Вы писали:

D>Здравствуйте, netch80, Вы писали:


N>>И матан, конечно, нужен. Ибо голову развивает.


D>Пользователям-то?


Всем.

D>И матан, конечно, не нужен. Ибо голову забивает.


Сабж детектед?
The God is real, unless declared integer.
Re[4]: Быдлокодеры и понты
От: monax  
Дата: 21.07.11 13:53
Оценка:
Здравствуйте, DorfDepp, Вы писали:

DD>Это — очень специфическая задача вполне себе системного характера. В прикладном программировании такие не встречаются.


приведи тогда примеры задач, которые ты относишь к прикладным
Re[4]: Быдлокодеры и понты
От: Andrey.V.Lobanov  
Дата: 21.07.11 13:57
Оценка: :)
Здравствуйте, dimgel, Вы писали:

D>И матан, конечно, не нужен. Ибо голову забивает.

"не знаешь матан — пойдёшь на метан". как-то так вроде, точную цитату не помню.
Re[4]: Быдлокодеры и понты
От: Vamp Россия  
Дата: 21.07.11 14:46
Оценка: +4
DD>Это — очень специфическая задача вполне себе системного характера. В прикладном программировании такие не встречаются.
Чего? Это одна из наиболее типовых задач в прикладном программировании — выбор контейнера в зависимости от стратегии его использования.
Да здравствует мыло душистое и веревка пушистая.
Re: Быдлокодеры и понты
От: Vamp Россия  
Дата: 21.07.11 14:57
Оценка:
Проблема есть. Она, вообще говоря, системная.
Для иллюстрации расскажу что сейчас делается в Индии -в плане того, как туда аутсорсят все на свете, от написания кода до техподдержки. Когда-то в индийском IT зарплаты в 10ки, если не сотни, раз превышали средние — например, в 2005 году зарплата программиста в Дели была под две штуки баксов, при средней в сотни две-три. Программисты реально были вышей кастой.
Потом мощный поток аутсорса породил огромный спрос, и сейчас больше 90% молодежи в Индии заняты в айтишном аутсорсе. При этом знания у них, мягко скажем, не велики. Что, закономерно, привело к падению зарплат. Крупные аутсорсеры (типа HCL) платят своим работникам копейки — на улице полно желающих устроиться на работу. Что, удивительным образом, привело к снижению уровня качества в среднем по индустрии и понизило общие требования к сотрудникам. В результате тот небольшой процент людей, которые действительно знают и умеют, не находят себе места — потому что работать за копейки им, условно говоря, западло — а больше не предлагают, не зачем. И очевидно, количество грамотных специалистов падает.
И примерно такая же ситуация, боюсь, может сложиться и на девелоперском фронте.
Да здравствует мыло душистое и веревка пушистая.
Re[5]: Быдлокодеры и понты
От: dimgel Россия https://github.com/dimgel
Дата: 21.07.11 15:45
Оценка: 1 (1) :)
Здравствуйте, netch80, Вы писали:

N>>>И матан, конечно, нужен. Ибо голову развивает.

D>>Пользователям-то?
N>Всем.

Если бы он был нужен всем, его преподавали бы в школе, а не на мехмате.

D>>И матан, конечно, не нужен. Ибо голову забивает.

N>Сабж детектед?

Гы. Ну детектед так детектед. Объясни-ка быдлокодеру, зачем пользователям матан?
Re[5]: Быдлокодеры и понты
От: yoriсk.kiev.ua  
Дата: 22.07.11 10:32
Оценка:
Здравствуйте, Vamp, Вы писали:

V>Чего? Это одна из наиболее типовых задач в прикладном программировании — выбор контейнера в зависимости от стратегии его использования.


collection.Distinct().OrderBy(c => c.ComeValue) — это действительно типичная задача. А упомянутые миллионы элементов — уже не очень.
Re[3]: Быдлокодеры и понты
От: gandjustas Россия http://blog.gandjustas.ru/
Дата: 23.07.11 19:52
Оценка:
Здравствуйте, monax, Вы писали:

M>Здравствуйте, DorfDepp, Вы писали:


DD>>А зачем вам алгоритмы в прикладной (не системной) разработке?


DD>>Базовые операции поддерживает язык программирования. Структуры данных есть в библиотеке классов. Сортировку выполняет база данных. Куда приткнуть ваши алгоритмы в ненаукоемком проекте?


M>вот есть на сайте яндекса такой вопрос (да не возненавидят меня его сотрудники, что привожу его для публичного обсуждения):


M>

M>Существует следующий фрагмент программы:
M>

M>tokens = []
M>for token in tokeniter:
M>    if token not in tokens:
M>        tokens.append(token)
M>

M>Здесь tokensiter — итератор, выдающий достаточно большую последовательность токенов, которые могут повторяться.

M>На выходе у этого фрагмента программы массив уникальных токенов, без повторений, у которого сохранен хронологический порядок появления токенов из входной последовательности tokensiter.

M>Оцените временную сложность этого фрагмента и предложите обоснованные способы оптимизации.


M>Эта задача вполне прикладного уровня, а у этого кода O(n^2).

А вот и нет. Потому что O(n^2) будет в худшем случае, когда множество различных токенов не ограничено сверху.

M>Как думаешь, что будет с этим кодом, если дать на вход пару миллионов элементов?

В случае с парой миллионов элементов этот код не имеет смысла если множество различных токенов не ограничено сверху. Ну получишь таким кодом (2*10^6 — 1) и что ты с ними дальше делать будешь?

По сути почти всегда будет O(n*m), причем n не уменьшится, а m может оказаться достаточно мало, чтобы не было разницы как делать этот самый поиск.

M>А простая оптимизация с двоичными поиском и вставкой в массив пары (token, порядок_вставки) даст что-то около O(log n) + O(n). Второе слагаемое — это стоимость вставки в отсортированный массив. Потом можно развернуть всё в необходимый список с сохранением хронологического порядка появления токенов.

Исходное O(n^2) складывается из прохода по всем элементам (1), поиска в неотсортированом массиве (2).
Ты предлагаешь (2) со сложностью O(n) заменить на что-то со сложностью O(log n)+O(n), что фактически равно O(n).
В итоге ты заменил одно O(n) на другое O(n).
Но тебе повезло и ты ошибся. После binary search надо вставить элемент в позицию, найденную уже binary search, что приводит к общей сложности выполнения O(log n).

M>Всё это прикладной уровень, но без знания алгоритмов твоя программа будет работать по коду из задачи, что приведёт к потере машинного времени, да и результата ты можешь не дождаться несколько дней.

Да-да-да...
1)Вставка и поиск в массиве: 2 минуты
2)Поиск в отсортированном массиве: 4 секунды
3)tokeniter.Distinct(): 0.3 секунды

Вот тебе и "прикладной уровень" и "знание алгоритмов". А на деле надо знать стандартную библиотек и не выдумывать велосипеды.

Код для тестов (F#) http://pastebin.com/gxBQWip2
Re: Быдлокодеры и понты
От: silverwolf  
Дата: 23.07.11 23:59
Оценка:
Здравствуйте, Антихрист, Вы писали:

А>Мое мнение — в стране нужно ввести жесткое лицензирование для программистов с требованиями по знаниям всех парадигм, 2-3 ЯП, и годного матана.

Не только у вас в стране, а по всему миру! Сделать все как в медах: 6 лет ВУЗ + 1-9 лет всякие доучивания на практике.
Только надо понимать, что "рынок диктует условия". И если проводить аналогию с врачами, то очень быстро появятся всякие "народные целители от программирования", которые будут работать "без лицензии".
Re[2]: Быдлокодеры и понты
От: Антихрист  
Дата: 24.07.11 02:20
Оценка:
Здравствуйте, silverwolf, Вы писали:

S>Здравствуйте, Антихрист, Вы писали:


А>>Мое мнение — в стране нужно ввести жесткое лицензирование для программистов с требованиями по знаниям всех парадигм, 2-3 ЯП, и годного матана.

S>Не только у вас в стране, а по всему миру! Сделать все как в медах: 6 лет ВУЗ + 1-9 лет всякие доучивания на практике.
S>Только надо понимать, что "рынок диктует условия". И если проводить аналогию с врачами, то очень быстро появятся всякие "народные целители от программирования", которые будут работать "без лицензии".

Около серьезных проектов их не будет.
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.