@strizhechenko @cauf Ну как бы то есть вот. Я к тому, что как можно учить некое «программирование» по абстрактным описаниям, когда для каждого языка есть свои фишки, принципиально различающиеся прям в самих основах?
Перефразирую: если я хочу таки въехать в Python — что мне даст описание низкоуровневых циклов, когда в нём всё объекты?
@erua Расписано, как всегда, шикарно, это да 🙂
Но я не совсем понял — чего конкретно «нету такого»?
Я как бы к тому, что вот эти все «условия и циклы» по идее изучаются в подростковом возрасте за неделю-другую. Тогда как «программирование» — это уже их конкретная реализация для языка и операционки, с учетом особенностей особенностей (sic!).
Разве не так? Спросить у сервера json с постами — 4 строчки; ебаться с красивой отрисовкой наших постов — пару месяцев работы и 100 мегабайт кода (утрирую, конечно).
> как можно учить некое «программирование» по абстрактным описаниям, когда для каждого языка есть свои фишки, принципиально различающиеся прям в самих основах?
> Перефразирую: если я хочу таки въехать в Python — что мне даст описание низкоуровневых циклов, когда в нём всё объекты?
@erua
> Но ведь они должны что-то и как-то делать — сами по себе без циклов и ветвлений, волшебных образом?
Вроде да. Сокрытие реализации, все дела. И только по тестам можно понять, что будет быстрее, меньше памяти сожрет и т.д. Разве нет?
Я как бы не спорю, что такие понятия как циклы, условия, рекурсию и прочее — надо понимать, но ведь это что-то совсем дефолтное из школьной программы либо совсем хардкорное, если речь об алгоритмах.
Но алгоритмы ботанить надо вроде уже после того, как все фишки конкретного языка усвоишь и будешь знать, как правильно выстрелить себе в ногу??
@erua Дык, телефоны-то в БД будут валяться, и маленький Бобби Пейджс кагбэ намекает, что вся «сортировка» там — это что-то типа SELECT че-те-надо? ;-)
P.S. Ну и тупо sorted() в зеленом змии, конечно?
@erua Ну епт. Я ж не погромист, в конце концов. Для меня логично — посчитать хеши для всех записей, типа неизбежная операция по чтению. Сравнивать хеши в зависимости от того, какя выборка нужна. Перепроверять по реальным данным найденное, чтобы не попасть на коллизии.
Но это как бы максимум, что я знаю про поиск по бд, даже если это CSV, который мы считали в структуру.
Если у меня 100500 15-мегабайтных файлов — это вроде хороший подход. Если 100500 номеров телефонов, которые надо бы привести изначально к стандартному формату — плохой.
Что будет делать Зеленый в случае, если я натравлю его на то или другое — я могу только догадываться.
ГДЕ мне тут поможет знание абстрактных алгоритмов, если я не в курсе, как он будет делать выборку??
@erua
О! Вот пример из реальной жизни. У меня есть каталог из 20 000 шрифтов. Названных черти как. Мне надо распарсить каждый, создать папочку с его названием (надо парсить файл), все варианты начертания — в одну папочку. Можно велосипедить на зеленом, можно штатными средствами венды на PowerShell. Сцуко, медленно и если ошибка, то хз, где и почему.
И знания, как писать алгоритнымы на ассемблере/в псевдокоде/на паскале тут вообще не помогут...
а на каких наборах? ну ведь у алгоритма с ожидаемым O(log n) бывают случаи, когда работает как O(n), а бывают и такие, когда O(n²) — так называемые худшие и лучшие.
у других алгоритмов стабильность другая, но в среднем они O(n×log n), зато нету худших случаев, т.е. не деградируют в зависимости от характера расположения чисел в сортируемом наборе (множестве).
это и есть то самое — знать за какое в среднем время работает алгоритм в зависимости от мощности множества (числа элементов в сортируемом наборе).
знать до какой скорости может деградировать в худшем случае. т.е. какова вероятность, что в некоторых случаях твой автомобиль успеет проехать два квартала, прежде чем отреагирует на команду включить что-либо.