Когда ты нашел научную статью с алгоритмом, который хочешь реализовать
Подробнее
Finding an academic paper on the algorithm you want to implement Dirac-Chebyshev Degulsion with Tripolsive Tail Canceling and other shit that’s over your head In I hit mW. «bra I he ptvtuNIn* «tenure of I«« mici at j tnptmtc Iuiku>« ■»huh n muun the puumc inlc/ct f ■ JO *¿1* *#2«2 * _/'W *1* ♦ ■«/ • f <»l F« each mm Ktnwl Ina ibi«l muh. the rifmtrd >i<U dual« by I J<)£.!-. lD|. ■ f,|).wn^ mi Who* ¿J it fit« by: N*«y •' yb]D‘UiAiy3 J~x,-ic‘<Vi;M° h <m hra he wlteil atanf: VI r? v« ra Which yiehlt the JrpA»* eunr <4 Abandoned Repo With Perfect Implementation of your exact subproblem
it-юмор,geek,Прикольные гаджеты. Научный, инженерный и айтишный юмор
Еще на тему
Меня не прельщает перспектива читать какой-нибудь трёхтомник, что бы разобраться в алгоритме, только потому, что кто-то плавно размазал по 3000 страницам описание значений всех символов, которые в алгоритме присутствуют, при том, что сам алгоритм элементарный.
И ладно бы ещё существовала какая-то система стандартов, или словарь условных обозначений в начале книги, так нет же, "хочешь разобраться в какой-нибудь элементарной вещи? потрать 100500 часов на разгадывание шифра"
Это то на что стала похожа моя работа в 2018, и иногда от этого просто тупо устаёшь. И думаешь, почему нет хотя бы одной достойной задачки, на пару дней, а лучше недельку. Чтобы придумать что-то или нетривиальную статью-другую разобрать и сделать что-то реальное руками. Что-то чем бы ты по итогу мог, если не гордиться, но хотя бы быть доволен. И чтобы никто не хотел у тебя "только спросить" что-то, каждые пять минут. Ситуация из второго кадра это что-то, что я надеюсь встретить в ближайшие пол года хотя бы раз.
А теперь к нытикам. Я дейли слышу от всяких детей, что математика прогерамм не нужна, что мы умные и всё знаем. Люди на втором курсе ни матрицу разложить не могут, ни объяснить что-то такое интеграл и даже в дискетке путаются. Хотя у них это было можно сказать вчера. А если олимпиадного опыта нет, то они и алгоритмов не знают простейших. И у этих ещё отметки ничего, что там у троешников в голове, мне представить страшно. Пройдет пару лет, они закончат универ, ещё 2 года у них выветрятся последние воспоминания о случайно посещенных лекций, и очередной нытик-говнокодер готов.
Короче суть моего комментария: это не с академической средой что-то не так, это в универе нужно было учиться (или уже идти в говнокодерское пту). Нет там никаких шифров. Просто у тебя бэкграунда ноль. Это как вчера узнать, что такое call stack, а сегодня грешить, что драйвера для операционки пишутся как-то сложно и вообще, почему на JS их не писать. Безумная по сути претензия.
Меня всегда поражают дебилы, которые это заявляют.
Какая математика нужна прогерам? Аналитическая геометрия с рассчётом пересечения векторов и пространств? линейная алгебра с теорией групп и колец? математический анализ as дифференциальное исчисление, интегральное исчисления, знание об n-мерных пространствах, ряды, функциональный анализ, комплексный анализ? численный анализ с расчётом натяжения жёстко закреплённых с двух сторон пластины или интерполяцией кубическими сплайнами? Может быть дискретная математика с оптимизацией логических формул и всевозможными алгоритмами на графах? Или комбинаторика? А как же теория вероятности, как же регреcсионный анализ? Ах да, ещё есть статистика с кучей методов проверки гипотез, математическое моделирование, теория случайных процессов, методы оптимизации, системный анализ, исследования операций.
Всё эту хрень прогер должен знать, иначе не тру?
Ой, тут так же не сказано, какой именно прогер, чем он занимается, пишет ли сайты, программирует микроконтроллеры, занимается построением математических моделей, разработкой игр, мобильных приложений, а может, уже не совсем прогер, а бизнес аналитик, гейм-дизайнер, проджект-менеджер, дата-архитектор, специалист по анализу больших данных.
Похуй, все же должны знать математику, она же нужна.
Да. Иначе такой "программист" не способен самостоятельно вычислить длину проекции отрезка на плоскость или длину пути и время пути, пройденного брошенным камнем (математической точкой) в однородном поле тяжести до абсолютно неупругого столкновения с препятствием (длину куска параболы посчитать). И это самые элементарные примеры.
> линейная алгебра с теорией групп и колец?
Да. Любые целочисленные вычисления современные процессоры выполняют не в абстрактном бесконечном множестве целых чисел, а на группе вычетов по модулю 2^32 или 2^64 и это надо знать и использовать. И как программист будет делать оптимизацию путём замены вычислений с плавающей запятой на целочисленные рассчёты в кольце рациональных, если он теорию чисел не учил и понятия не имеет о способах таких приближений вещественных чисел рациональными?
> математический анализ as дифференциальное исчисление, интегральное исчисления
Да. Приближенно посчитать площадь плоской сложной фигуры, заданной кучей ограничений или объём трехмерной неправильной фигуры; рассчитать хотя бы простенькую матмодель чего угодно без знания матана не выйдет.
> знание об n-мерных пространствах
Да. Куча задач прекрасно решается элементарными операциями с четырехмерными матрицами и незнать их свойства всё равно что в арифметике не разбираться.
Функан это линейные операторы, постоянно используются. Комплексные числа и функции действительного (и комплексного) аргумента, дающие комплексный результат (начиная с тривиального квадратного корня, потом экспонента через синусы и косинусы вещественных компонентов) - без понятия об этом даже уравнения четвертой степени не решить. Сплайн-интерполяция в компьютерной графике как таблица умножения у пятиклассника, от зубов отскакивать должна. Без теории графов нечего делать в программировании операционных систем и протоколов маршрутизации. Без комбинаторики нечего делать в криптоалгоритмах, как и без дискретки и теории вероятностей.
И так далее и так далее.
> Всё эту хрень прогер должен знать, иначе не тру?
Иначе он кодер, а не программист.
Нахуя специлисту по анализу данных
"вычислить длину проекции отрезка на плоскость или длину пути и время пути, пройденного брошенным камнем (математической точкой) в однородном поле тяжести до абсолютно неупругого столкновения с препятствием (длину куска параболы посчитать)"
а разработчику микроконтроллеров это нахуя?
"как программист будет делать оптимизацию путём замены вычислений с плавающей запятой на целочисленные рассчёты в кольце рациональных, если он теорию чисел не учил и понятия не имеет о способах таких приближений вещественных чисел рациональными"
уж очевидно не с помощью групп вычетов и эллиптических кривых
"Приближенно посчитать площадь плоской сложной фигуры, заданной кучей ограничений или объём трехмерной неправильной фигуры; рассчитать хотя бы простенькую матмодель чего угодно без знания матана не выйдет."
И нахуя это проектировщику баз данных?
"Куча задач прекрасно решается элементарными операциями с четырехмерными матрицами и незнать их свойства всё равно что в арифметике не разбираться."
Задача управления процессом разработки проекта?
"Сплайн-интерполяция в компьютерной графике как таблица умножения у пятиклассника, от зубов отскакивать должна"
И нахуя она в консольных приложениях? Или в приложениях с UI? Да вообще любому, кто не занимается графикой на самых низких уровнях, то есть паре человек во всём мире?
"Без теории графов нечего делать в программировании операционных систем и протоколов маршрутизации."
Вот каждый программист сутра пораньше встаёт, и идёт операционные системы программировать, ага. У тебя об IT хоть какое-нибудь представление есть?
"Без комбинаторики нечего делать в криптоалгоритмах, как и без дискретки и теории вероятностей."
Ну если человек дурак, и вместо того, что бы воспользоваться библиотекой, пишет всё с нуля, безусловно.
"Иначе он кодер, а не программист."
Вот это самое шедевральное. В жопу знание языков программирования, этот ваш C# Go Python и ассемюлер, в жопу знание платформ, фреймворков и библиотек, в жопу знания технологий разработки, паттернов проектирования, баз данных, это всё так - чушь собачья.
Тру прогер сутра до вечера решает дифференциальные уравнения, программирует операционные системы, рассчитывает полёт камня, оптимизирует приложение через теорию групп и колец, пишет криптоалгоритмы, строит математические модели и решает задачи интерполяции кубическими сплайнами в компьютерной графике.
А если ты всего этого не делаешь, то ты не программист, а так, тьфу, кодер.
Тебе самому не смешно?
А настоящий программист должен знать и физику, и математику, и астрономию, и медицину, и вообще всё. Как же он это без знаний программировать будет? Кто не знает формул по расчёту положения небесных тел, принцип неопределённости Гейзенберга? или не умеет методом сеток решать задачу Дирихле для уравнения Пуассона - вы не программисты, а так, тьфу, просто кодеры. Слышали?
Вполне способен. Ибо либы такой херней должны заниматься или загуглит просто. И опытный чел не полезет сам писать такое, если не очень надо, ибо там всё хитрее, чем с просто линейной алгеброй.
> Любые целочисленные вычисления современные процессоры выполняют не в абстрактном бесконечном множестве целых чисел, а на группе вычетов по модулю 2^32 или 2^64 и это
не так. Для знаковых. И не понятно, при чем тут знание про группы вычетов, не надо про них знать, чтоб понимать как целочисленные операции работают. В этом примере - совершенно пох, либо ты в границах и тогда все ок, либо нет. Тут лучше знать, когда есть смысл такой херней страдать вообще (не часто).
> Приближенно посчитать площадь плоской сложной фигуры, заданной кучей ограничений
Нужно примерно никогда. А когда нужно - есть спец тулзы. Матмодели не прогеры считают. Я дважды за карьеру считал интеграл (хотя в общем пол-учебника по матану заюзал). Один раз - был вопрос на форуме (и чел бы пережил если б не ответили). Второй раз - интеграл был табличный. Я думаю, ты интегралы считал ровно 0 раз за практику, но вперед, расскажи как ты без них не мог.
> Функан это линейные операторы, постоянно используются.
Угу, только то, что это лин. операторы - не используют, их можно юзать и без этих сакральных знаний.
> Комплексные числа и функции действительного (и комплексного) аргумента
нахрен не нужны! Мог бы вспомнить про кватернионы, ибо на гейдева похож - их используют (не так часто), но надо чётко знать, когда от них профит будет и какой. Они заодно и в теме про группы присутствуют) Только на практике хватит про API представление иметь.
> Сплайн-интерполяция в компьютерной графике
везде давно написана и только используется. Все только пиздят код, вывод коэффициентов при сплайнах и даже знание их значений - не нужны.
> Без теории графов нечего делать в программировании операционных систем
Да дохрена есть мест в системном программировании, где даже без графов можно.
И так далее и так далее.
Если вас заставили учить кучу херни в ВУЗе, то имейте смелость признаться, что нужна она была крайне мало, а не выставляйте себя элиткой. Это типичное "не служил - не мужик". Не, что-то нужно, что-то даже есть весьма базовым, но чтоб прям всем и сложное из математики - нет.
я за последние 20 лет кодерства всё напрочь забыл и мне стыдно и чувствую себя тупым. потому-что согласен с твоими выводами.
собственно меня только на два семестра хватило, потом пришлось бросать учёбу и идти работать.
Бро, я ващет feel for you, но просто статьи так пишутся. Это их особенность существования в этом мире. Статья - это не учебник. Они пишутся для горстки людей, которые глубоко в теме, и то, эти люди редко их читают. Их пишут люди, у которых нет особых изъяснительных талантов. Часто заёбаные и без лишнего времени. Потому или тырьте код или становитесь глубоко в теме. Всегда полезно войти в тему, но всегда быстрее и надёжнее стырить код.
Даже 0 это символ, и остальные цифры, используемые для записи самых простых натуральных чисел - тоже символы. При формальном (и единственно корректном) построении натуральных чисел в системе Дедекинда-Пеано символом 0 обозначают пустое множество, символом 1 - результат операции следования, примененноё к 0: множество, состоящее из одного элемента { 0 }, символом 2 обозначают результат той же операции следования, примененной к предыдущему результату: множество из двух элементов { 0, { 0 } } и так далее (каждый следующий результат это множество из всех предыдущих результатов).
Затем вводятся определения для других операций: операция сложения (и доказывается теорема о коммутативности сложения), определяются отрицательные числа и группа целых с операцией вычитания, потом определяется операция умножения (теорема о коммутативности умножения), потом кольцо рациональных чисел с операцией деления и теоремами о дистрибутивности операций умножения и сложения в кольце и так далее.
И только потом - десятичная и другие системы счислений, таблица умножения и правила вычисления "в столбик" с арабскими цифрами. Просто младшие школьники не способны понять такое строгое аксиоматическое введение и его пропускают в школьном курсе математики.