Вроде 100 раз обсуждали, что сильно от предметной области зависит.
Где-то ой как нужна, а где-то хватит и школьной программы.
Нахрена инженеру фронта на js математика? Питонист разрабатывающий чат-боты чего из математики он использует? Не удивлюсь если ипотечные калькуляторы они по тз делают
Если за математику считать сложение и умножение, то да, она там есть, но это такое дно в математике, что и говорить не и чем. Хватит и 5 классов образования, чтобы это понять.
Тригонометрия, параболы, гиперболы, логарифмы, матрицы перехода, преобразование координат пошли мы нахуй? Я же пишу метод и он там как-то сам работает, я программист! Дай угадаю, прогнать начал уже когда жквери не популярным стал?
Накидал школьных терминов, типа умный. И не про jq угадал, пользовался им, пока не изобрели babel.
PS окончил вышку по прикладной математике.
Я просто это все использовал в графике в том числе и на фронте, а ты выкинь свой диплом нахуй, один хуй тебе математика не нужна
То, что тебе лично всралась математика не означает, что она нужна всем. И это тем более не означает, что её надо всем учить, чтобы писать нормальный код.
Это поверхностный быдло код, без понимание как оно работает, это не нормальный код, за твое говно выгребает мощный проц и память, поставь ограничение и чето уже медленно, чето уже лагает
Ебать ты хлебушек. То, о чем говоришь ты, это алгоритмы, а мы тут о синусах с косинусами.
А это не математика что-ли? Это то что можно прямо на поверхности найти. Ок копнем глубже и все алгоритмы для вычислений всего в программировании работаю на пыльце единорога?
Я фронтендер и на прошлой неделе писал всякую ерундистику, связанную с 2D-анимацией (спасибо, что не 3D), пришлось вспомнить аффинные преобразования и умножение матриц
Я по бакалавру не математик, но матан был и куча др. предметов где считать приходилось постоянно и высчитывать по сложным формулам. Я псевдо программист, ну ок
В принципе вы правы, если человек на перепутье, я бы советовал ему получить профильный образование и изучить математику - так будет больше возможностей в дальнейшем (вдруг решит серьёзно заняться искусственным интеллектом)
О да, причем как раз это даже важнее будет.
PS Как раз занимаюсь на работе распознаванием, сопровождением объектов по камерам охраны. Но дополнительно, не как основная работа.
Просто тут сложность растёт экспоненциально:
Можете нажимать кнопочки, даже программировать не надо уметь
Если возможностей недостаточно - можете использовать базовые функции и неважно что там внутри
Если возможностей недостаточно - используя фреймворки делайте то что написано в руководстве (результат будет несильно отличаться от предыдущего пункта)
Если нет нужного результата - можете пробовать строить разные сети, тут нужно хотя бы понимать что такое размерность матриц (основы линейной алгебры)
Если результат нет - то чтобы его добиться желательно понимать что такое обучение нейросети, нужно знать основы дискретные математики, теории вероятностей и математического анализа
Если результата добиться ещё не удалось - нужно в общих чертах понимать что вы делаете и для чего (потому что вариантов конфигурации много), чтобы это понять нужно знать указанные дисциплины поглубже
Если не получается - стоит изучить разные подходы описанные другими людьми, а чтобы в этом разобраться нужно уже хорошо знать математику
Если результата все ещё нет - может получится и его добиться построив другую, необычную нейросеть (быть может такую задачу успешно ещё не решали до вас), тут уже понадобится много математики, возможно какие-то экзотические разделы (быть может применить к классической дисциплине подход интуитивистов или ещё что и тогда ответ станет более очевиден)
P.S. Где-то тут пролегает грань между разработчиком и учёным, но сдаётся мне что для машинного обучения стоит знать разделы математики читаемые инженерам а лучше математикам
Блин ну я и написал, что я инженер среднего уровня(middle -) по нейронкам, я это понимаю.
По разное, от векторного управления приводом до выделения информации из радиосигнала.
И в нейронках важнее знать, какие есть подходы и уметь их компоновать, чем математику.
Математика она в основном для приводов нужна, для радиолокации.
Так я не спорю, у меня самого только один проект и тот провалившийся.
Подходы знать и уметь обязательно, а математика нужна когда имеющихся подходов недостаточно (не толко в нейронке, сортировка и поиск, управление чем-нибудь и т.д.)
И будет изучать там историю, химию, физкультуру и прочую ебалистику вместо профильного обучения. Причём, не факультативно, а с экзаменами, билетами и отчислением в случае не сдачи любого говна.
Информации по специальности мало и она очень поверхностная, потерянного времени и нервов на весь остальной мусор она не стоит.
ебать на фронте не нужна математика? я для рассчета таймеров недавно проводила рассчеты, писала формулы, рисовала схемы. еще как нужна! какая разница фронтенд не фронтенд? главное это то какие задачи решаешь
Для написания оптимизированных алгоритмов. На js не знаю. Я питонист на беке и если не использовать хотя бы базу алгоритмов, то будешь ты ждать прогрузки миллионов записей по двадцать минут)
самый простой имеет скорость от N до N в квадрате, более быстрые и сложные имеют скорость натуральный logN.
пример - при N=2 в первом случае будет 4 (четыре цикла программы), во втором случае менее единицы (ну то есть за первый цикл найдется ответ)
Разница так себе, что тот, что тот будут работать быстро, НО
при N=1000000 логарифм будет равен 13, а вот с первым случаем уже беда.
И для подобных задач в 99+% случаев уже будут готовые решения/библиотеки, которые реализуют оптимальные алгоритмы.
Блин реши задачку с моей практики.
Стоят 2 камеры на здании, смотрят на улицу немного в разные стороны, идет человек по зоне куда смотрят 2 камеры.
Нужно на карте как можно точнее обрисовывать его местоположение и маршрут в реальном времени.
Полно алгоритмов, а готовых алгоритмов нет. DBSCAN нужно переделывать.
Не нужно быть математиком, чтобы не писать on2. В последнее время наблюдаю обратную "ненужности математики" картину, когда простейшую алгоритмику записывают в неебаться математические скилы; будто это не уровень достижимый учеником средней школы.
Окститесь, вы все ещё жсонки в крудах перекладываете, а не космические аппараты программируете. И да, высокий рейтинг на хакерранке не конвертируется в сильный математический базис.
Да банальный проход по древу, уже двух "джунов" видел, которые не могут нормально написать функцию. Да куда там древо, они сложность алгоритма посчитать не в состоянии.
Но ладно, для ясности вот задача:
Вавилонцы решили построить удивительную башню - расширяющуюся кверху и содержащую бесконечное число этажей и комнат. Она устроена следующим образом - на первом этаже одна комната, затем идет два этажа на каждом из которых по две комнаты, затем идёт три этажа, на каждом из которых по три комнаты и так далее:
... ... ...
15 16 17 18
12 13 14
9 10 11
6 7 8
4 5
2 3
1
Эту башню решили оборудовать лифтом - и вот задача: нужно научится по номеру комнаты определять, на каком этаже она находится и какая она по счету слева на этом этаже. Дано целое число - номер комнаты. Вывести два целых числа — номер этажа и ее порядковый номер слева на этаже.
Надо ее решить без использования циклов или рекурсии.
Потому что это задачка по программированию, но без циклов и рекурсий, то есть со сложностью O(1) есть только 1 вариант решения, и он чисто математический. Это самый простой пример оптимизации больше, чем в сотни раз)
Вы тоже путаете выч. мат., матан и программирование в принципе. Особенно программирование в современности, когда для вычисления прибыли нужны максимум СЛАУ и матрицы, а это даже не вышка.
Странно, я в 11 проходил в начале мат. анализа.
Для меня вышка это двойные и выше интегралы, объяснение мнимых чисел, преобразования Фурье и иже с ними в т.ч. решения их в выч. мате.
Ну и само собой прикладной выч. мат типа сортировок, шифрования, 3Д преобразований и т.д. и т.п.
Так мат. анализ - это вышмат. Просто какие-то совсем простые вещи действительно проходят в последних классах.
Что такое "алгоритм" понятно, вопрос в другом, где они применяются в бэкенд разработке. Поэтому я и попросил пример, живой пример.
Вы же не работаете в "Вавилонской строительной компании"?
Еще раз. Например в обходе по древу. Банально в обработке миллионов строк данных, которые нужно взять из БД и отдать, модифицированные, фронту.
И для таких целей надо всего навсего сделать pip install supermagicpackage.
Ну и парочку классов с методами забрать из этого. Хватит изобретать велосипеды. Бизнес вам не ща костыли на велосипедах деньги пдатит а за быстрый и качественный результат.
Чот хуету говорите. Я вот сижу в r&d отделе, мне задачи спускают, пообещали менеджеры клиентам фичу, а её ни у кого в мире нет. И не факт, что в принципе можно сделать. И результат быстрым точно не будет, можем месяцами ебаться просто чтобы выяснить что это невозможно, не то что реализовать. Однако ж платят.
Ну так и учёным тоже платят ч же не сказал что все велосипеды изобретены. Кто то ведь пишет эти пакеты изобретая велосипеды.
Так что ты оглянись вокруг сколько вас там таких чепушил сидят ? Сколько процентов от общего штата ? Мб вы для бизнеса инвестиция, а деньги зарабатывают другие работяги программисты не изобретающте велосипед перманентно?
Сходу в голову приходят кривые Безье для анимаций и не только. Уверен, разработчики узкоспециализированных фронтендов еще как юзают математику для высокопроизводительной графики
давай я тебе как бывший олимпиадник по математике и ныне программист скажу, что не нужна или тоже тогда стану псевдо программистом?)
Да говори, мне-то что. Чем больше тех, кто не знает математику, тем более я востребован)
обычно так говорят те кто не востребован на рынке от слова никак, чтобы хоть как то утешить свое самолюбие :)
А что-то серьезное - это что?
Какой-нибудь hyperloglog это ещё школьный курс или уже нет? Или может алгоритм баянометра(который к сожалению сейчас не работает) сюда же попадает? И что подразумевается под "серьёзное используется"? Входят ли сюда готовые имплементации или считается только самописное?
Просто между использованием и разработкой есть большая разница, а у вас именно написано первое, подразумевая второе.
Для начала определись с терминами. Что такое математика.
Синусы и косинусы? То что к примеру булеву алгебру приписали к математике, нихера не значит. Математики отдыхают. Зато сколько воплей про программирование и математику.
Офигеть. Я ведь именно про это. Хотя причем бы тут математика, для булевой алгебры при программировании?
Дворники не могут обойтись без математики что бы вымести двор!
Что вы. Я умею обращаться с такими "камментариями" и с теми кто их готовит. Не заляпаюсь.
Ну допустим логарифмы, базовые алгоритмы, ряды, пределы используются, если хочешь писать нормальный оптимизированный код. Можно, конечно, херню состряпать, мощности же позволяют)
Я долгое время был программистом, и могу ответственно заявить: математика и оптимизация слабо связаны.
Да, если разговор идет об алгоритмах, которые построены на математике, разумеется, умение упрощать формулы здесь нужно. Вот только, много ли у вас чисто математических алгоритмов?
Чаще всего оптимизация - это в первую очередь логика и знание машинерии, а еще абстрактное мышление. Программирование это творческий процесс. Представить структуру так, чтобы она занимала на одну переменную меньше. Увидеть, что есть возможность опустить часть вычислений. Знание стоимости операций и можно ли представить алгоритм по-другому.
Вот элементарно, недавно всплыло: массив хранит N число последних переданных значений. Как записывать в него новые данные? Джун решил делать сдвиг всех значений в переборе, и записывать новое в освободившуюся ячейку. И вроде все красиво, все работает, но а если N = 1 000 000? Если запись происходит часто, то столько байтов двигать - такое себе. Переделали под запись по указателю. При записывании указатель сдвигается на следующее, а для удобства перебора прикрутили итератор.
Где здесь пределы и ряды? Если вы физику моделируете - да. В научной среде работаете, и вам нужна программа для моделирования процесса - еще поверю. Хотя там оптимизация не особо нужна, лишь бы считало правильно.
Графика - может быть, хотя там тоже ни разу не ряды, и сложнее синусов с косинусами ничего не встретите. Ну матрицы еще.
В остальных же случаях, очень редко встречаются такие примеры, где можно применить хоть что-то сложнее базовых действий. А ваши задачи оставьте для олимпиад.
Так, а дискретка уже не математика для вас что-ли? Структуры данных так-то обычно она изучает
Ха, да, по большому счету, все программирование построено на дискретной математике. Это ведь не только графы, это в том числе логика и булевая алгебра. элементарно выражение if{}else{} уже работает на принципах дискретной математики.
Другое дело, что под понятием "математика" чаще всего имеют в виду, так сказать, "гладкую" математику. Но да, вы правы.
Так это задача с собеседования, какие олимпиады?)
Но странно, решить ее почему-то большинство миддлов даже не может)
А зачем на собеседовании олимпиадные задачи? Во время работы программист решает олимпиадные задачи или прикладные? Меня всегда удивлял этот идиотизм собеседующих, которые раздуваются как индюки подсовывая такое. А задачки на догадки-логику просто убивают. Типа - а почему канализационный люк кругый? Ты блядь кого принимаешь - слесаря по компьютерам или человека в команду ЧТО-ГДЕ-КОГДА?
С какого собеседования? Гугловского? У них как раз олимпиадные задачи.
Если мы про вашу вавилонскую башню, то компания, которая дает такие задачи должна минимум гуглом и быть, т.к. без циклов, у нее нет прямого решения.
Закономерность найти легко, вот что с ней делать дальше.
А дальше, во-первых нужно вспоминать, что квадратическая последовательность имеет формулу k(k+1)(2k+1)/6, что не каждый вспомнит, и я, признаюсь, гуглил эту формулу.
Во вторых, опять же, прямого решения этого уравнения нет, можно если только со свистоперделками подобрать примерное решение, ну пусть, условно, cbrt(3n), тогда мы, в теории, получает номер квадрата. Как проверять без циклов - хз, если только граничные, т.е. один или два квадрата сверху и снизу. Тогда, возможно, мы получим нестабильное решение. Т.е. как пример оптимизации так себе пример. Я бы на боевое решение дал с циклами. Более надежное.
У них как раз олимпиадные задачи.
Не совсем, у них обычно все сильно проще (но зависит от собеседуещего офк). Обычно дают задачи уровня medium+/hard- литкода. В Амазоне вообще только medium, потому что полчаса из каждого часового собеса тратят на их лидершип вопросы.
Всерос по информатике пройдет алгоритмический собес в любой фаанг с закрытыми глазами
Есть прямое решение, не в одно действие, конечно же. Но думать ты начал верно. Это ряд суммы квадратов.
Ну расскажите свое прямое решение.
Кроме как через кубическое уравнение, других вариантов не вижу.
Я не программист и не особо математик, но предложил бы несколько другое решение: по сути, последняя комната на этаже это сумма арифметической прогрессии из из количества членов, равному числу этажей.
Из формулы суммы прогрессии можно выразить номер этажа через номер последней комнаты. Получится квадратное уравнение, в котором только один положительный корень.
Подставляя нужный номер комнаты вместо последнего и округляя значение вверх, получаем номер этажа.
Ну а номер комнаты слева можно получить, вычев из номера комнаты последнюю комнату предыдущего этажа (опять же, определив ее по сумме прогрессии)
Ну так и указал что погрешности такого метода решения.
А ты говоришь что твое решение без погрешностей
Так оно и без погрешностей. Кубическое уравнение составляется не примерно, а вполне точно.
Все зависит от задачи. Мало того оптимизация тут не причем. Большинство текущих задач программистов не требую каких то особенных знаний математики - арифметика+булева алгебра.
Не каждый математик - хороший программист, да и вообще программист. Выч. мат. он другой, очень другой.
Конечно, я обратного и не утверждал. С нашего выпуска из 15+ человек только трое стали программистами, насколько я знаю.
Ох блин, как-то в 1с приходилось считать площадь поверхности ж/д цистерн - а они ни фига не цилиндры, а ещё и разные бывают ;)...что-то там по нормам выработки по обработке внутренней поверхности работниками считали для ЗП...
Элементарно если выч. мат изучать. Но нафиг оно для вычисления ЗП? Там 1 раз коэффициент вычислил и все. Более того - просто достаточно у инженера узнать такую величину как емкость!
К тому что оч много задач где математика не нужна как таковая.
В современной разработке проще сказать где нужна.
Вот и хорошо! Чем больше людей так думает, то более востребованный я останусь)
Большинство программистов гуманитарии, учат язык программирования как иностранный и пишут себе словами). Под "капот" где скрываются уравнения, вектора и всё такое лезут очень не многие.
Ого теперь как оно Михалыч... Программисты вообще ни разу не гуманитарии. Это тех. специальность в чистом виде - инженерная1




IT-юмор
7.1K постов53.2K подписчиков
Правила сообщества
Не публикуем посты:
1) с большим количеством мата
2) с просьбами о помощи
3) не относящиеся к IT-юмору