Почему в программировании столько математики?

Да-да, не смотря на то, что я сам инженер по специальности и математики в свое время был не вагон, а целый состав, но я тогда не понимал на кой в программировании столько математики?! программирование это ж текст, это ж какие-то там теги и прочее.. Сейчас конечно я понимаю что математические задачи в программировании определяют многое, но все равно объясните какую роль математика в приложении для какого-нибудь ios? одним словом пазл у меня не складывается, есть алгоритм, есть формула, какая-то магическая пижня, и на выходе рабочая программа типа shazam например.
  • Вопрос задан
  • 6065 просмотров
Пригласить эксперта
Ответы на вопрос 21
saboteur_kiev
@saboteur_kiev Куратор тега Программирование
software engineer
Копирование файлика на уровне ОС - элементарная математика (байты перенести из одного места в другое), все числа целые, адресация простейшая.

Программирование контроллера, который будет копировать данные - высшая математика, ибо нужен контроль целостности данных (алгоритмы хеширования или банальных контрольных сумм), алгоритмы коррекции ошибок, шифрование.

Программирование передачи данных по сети - плюс ко всему прочему шифрование, протоколы передачи данных, асинхронная передача.

Программирование в 2д или 3д - геометрия разного порядка. Вычисление стандартных вещей - можно ли пройти из точки А в точку Б и можно ли увидеть из точки А точку Б, а также как это отрисовать с минимальными ресурсами - ужас.

Ну и далее. Простое приложение для какого-нить IOS которое выводит "привет вася" - это одно. А Shazam, который анализирует акустическую запись, разбирает ее на части, выполняет сравнение с учетом искажений - тут вам нужна не только хорошая математика, но и еще неплохо в этих сигналах разбираться, понимать как они хранятся в компе (как преобразуется аналог в цифру, с какими потерями, и что с ними делать) и так далее.

В общем алгоритмы, алгоритмы, алгоритмы.
Как говорил Ломоносов, математику следует учить только за то, что она приводит ум в порядок.
Ответ написан
PravdorubMSK
@PravdorubMSK
понимаешь, дорогой друг, есть два типа программистов - которые делают действительно что-то серьезное. их 0.1% от общего числа кодеров.

а есть 99,9999% кодеров. у них ИНЫЕ задачи. у них задачи - собирать из кусков уже написанных высокоуровневых штук всякую муть ДЛЯ БИЗНЕСА. бизнесу редко нужна математика, бизнесу нужны всякие сайты и мобильные приложения.

в рядовой вакансии какой-нибудь веб-макаки с зп средней по рынку математика действительно не нужна. вообще.

так что тут все отпивавшиеся - скорее просто "понтуются" своей "правильностью". в реальной жизни, в реальной работе, нужна не математика, а знания технологий, которые востребованы на рынке, здесь и сейчас.

всё.

остальное - суть демагогия. за демагогию и за математику не платят. платят только за результат.
Ответ написан
NeiroNx
@NeiroNx
Программист
Если вы не видите как математика используется в программах это не значит что её там нет.
Ответ написан
Комментировать
@asd111
Математика активно используется не во всех областях программирования.
Меньше всего математики в вебе и мобильной разработке.
Больше всего в компьютерной графике, машинном обучении, мат. моделировании и т.п.
Ответ написан
Комментировать
DMGarikk
@DMGarikk
Lead Software Developer
Попробую написать не так как остальные, opengl формулы и т.п.
===
Вспомните любую сложную, например физическую задачу которая решается большим количеством расчётов с интегрированием...и, удивительно, но решение такой задачи это чистой воды программирование (где вы процессор и программист в одном лице) с разработкой модели решения и выделение абстрактных сущностей для расчётов
Ведь вспомните как считаются интегралы, у них же нет единого правильного способа решения, также как и в программировании.
А т.к. всё зачастую делается ручкой на бумажке, а не (уяк уяк и дебаггером смотрим) то по истечению пары десятков здоровенных тетрадей мышление становится упорядоченным и оптимальным.
Ответ написан
Комментировать
sergey-gornostaev
@sergey-gornostaev
Седой и строгий
@tekord
Веб-разработчик
Как пример математики в приложении мобильном - анимации. Анимация - это интерполяция значений от старта до финиша по какой-то функции (линейная, кубическая и т.д.). Работа с графами, деревья, поиск маршрутов из точки А до точки Б тоже математические штуки. Вычисление хеш функций для проверки целостности данных, криптография, шифрование - математика.
Ответ написан
Комментировать
AlexMaxTM
@AlexMaxTM
Математика это универсальный язык всех наук. С тем же успехом можно было спросить почему у физиков так много математики, или у химиков, биологов. Даже историки без математики не обходятся.
Ответ написан
oxyberg
@oxyberg
Продуктовый дизайнер ВКонтакте
В программировании много всяких штук типа функций — чувствуете связь с математикой? Да, чтобы написать какие-нибудь заметки матан ваще не пригодится, от слова совсем. А в этом вашем шазаме наверняка используются сложные математические алгоритмы, чтобы песни определялись как надо. Все зависит от задач приложения.

з. ы. тащемта когда-нибудь придется столкнуться с алгоритмами и структурами, там тоже есть математика, но не аналитическая, а дискретная.
Ответ написан
nki
@nki
bezkart.ru готовая система лояльности
все равно объясните какую роль математика в приложении для какого-нибудь ios?

Из того, что мне близко - приложение, которое пишет трек во время занятий бегом и выдает по нему какую-то статистику. Как вы считаете, нужна тут математика или нет?
Ответ написан
@red-barbarian
IT сфера очень молода. Откровенно говоря выпускник института имеет уже сразу устаревшие знания. Что преподавать реально никто не знает. И не знают какие знания в этой сфере будут достаточно долговечны и нужны. Так некие догадки и не более.
Это относится к математике тоже. Курсы перенасыщены. Есть вещи практически полезные, но есть которые напрямую не связаны с практикой. Проблема и в том, что отделить одно от другого, понять какие вещи в образовании бесполезны, а какие важны никто не может.
Для примера, интуитивно понятно что алгоритмы и математика связаны между собой, но ведь не со всей математикой что преподают)
Тоже самое с навыком разбивать сложные структуры на простые части.
В целом, вопрос правомерен, образование прегружено, но как правильно никто не знает.
Проблема современного мира)
Ответ написан
ilyazh
@ilyazh
Инженер-программист
Математика учит мыслить. Ставить задачу, анализировать возможные решения, комбинировать различные функции\действия\операции, для получения результата, абстрактно мыслить. Это, блин, школа жизни. :) Основная цель преподавания математики - научить мыслить и анализировать. Ну не нравятся цифры? ну замените баранами, считайте баранов. И программирование тут не причём, как бы. Математику надо всем изучать, но в разной степени углубления.

А далее, в зависимости от планов на жизнь - думать как эти знания применить. Программист учится алгоритмы делать и прочее, бухгалтер дебет с кредитом сводить. Математика - нечто фундаментальное. Хотя может и для программистов её слишком много дают, но мне кажется, что скорее дают не правильно, что студенты не понимают, зачем им это надо? И учат математику ради решения математических задач, ради оценок. И никто не знает зачем, ни препод, ни студент.
Ответ написан
iCoderXXI
@iCoderXXI
React.JS/FrontEnd engineer
Компьютер, это от аглицкого to compute - вычислять, т.е. вычислятор. Все что умеет делать компьютер - это взять биты там, что-то с ними сделать в плане их трансформации в другие биты, причем путем вычислений, и положить это куда-то еще. На этом всё. Занавес.

Казалось бы, при чем тут математика? А при том, что как без нее вычислять?

Поэтому, что бы ни делал компьютер, играет ли он музыку, рендерит ли 3D, ходит ли в интернет, в конечном счете все сводится к вычислениям, а, стало быть, к математике. Дважды занавес.
Ответ написан
Комментировать
@evgeniy_lm
Компьютер это не более чем продвинутый калькулятор. Все данные в памяти хранятся в виде чисел, а выполнение программы процессором в итоге сводится к последовательности арифметических операций над этими числами.
Таким образом задача программиста заключается в том чтобы научить компьютер конвертировать нечисловые данные, полученные от пользователя, в числа. Затем получившийся массив чисел как-то обработать и результат преобразовать обратно в форму понятную пользователю. Сейчас часть этой работы, как правило, скрыты от программиста, компилятор языка берет эти функции на себя, что позволило существенно снизить порог входа в программирование

Существует даже специальный раздел математики - математическое моделирование. ММ определяет законы способы и методы перевоза нечисловой информации в числа
Ответ написан
Комментировать
@sitev_ru
sitev.ru - мой блог ...
Кроме элементарной математики до 5-го класса, никакой больше особо математики не наблюдается, конечно, если не брать проекты, основанные на математике.
Ответ написан
Jakarta777
@Jakarta777
но все равно надо знать очень много .(
Ответ написан
Комментировать
@radeon221
но все равно объясните какую роль математика в приложении для какого-нибудь ios?


Никакую роль. У меня знакомый сделал простую игру на иос с помощью какогото конструктора, в математике дуб дубом, зарабатывает тыщу в месяц...
Ответ написан
angrySCV
@angrySCV
machine learning, programming, startuping
алгебра изучает как работать с абстракциями - грубо говоря абстрактное программирование.
возможно требуется больше времени что бы понять дзен
Ответ написан
Комментировать
@younghacker
Потому что в мире много молекул и объекты реального мира состоят из молекул.
А программирование базируется на математике.
Программирование решает те или иные математические задачи.
Будь то построение на плоскость проекции трёхмерной модели освещённой виртуальным светом,
или простая отрисовка кнопочки с тенью на экране айфона.
Как ни крутись, а координаты и масштабы нужно посчитать.
А чего стоит моделирование динамики прокрутки экрана с трением...
Разумеется использование разных библиотек избавляет от необходимости изобретать велосипед, но ездить на нём всё же нужно уметь.
Ответ написан
Комментировать
@potan
Функциональный программист
"Природа говорит языком математики".
Математика не для того, что бы мешать, а для того, что бы помогать. В программировании она помогает писать надежные элегантные легкие в поддержке программы.
Многое можно написать и без математики, но чаще всего это приведет к багованному громозкому, сложному в поддержке и развитии коду, хоть и доступному менее квалифицированным разработчикам.
Будь моя воля, я бы не допускал в профессию не знакомых с теорией множеств, формальной логикой и теорией категорий - качество ПО заметно бы вырасло. А для нематематиков есть еще много занятий, кроме программирования.
Ответ написан
Комментировать
Потому что почти все действия в программе: вычисления,подсчёты и т.п. и ещё математика нужна чтобы ускорить\сократить память\время работы программы
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы