Entry tags:
Программирование и математика
"Чем заняться в программировании человеку, который не знает математику на уровне начальной школы?" спрашивает коллега.
Вот блин, застряло в головах у людей, что программирование - это математика. Да нифига. Типичная программа (точнее, некий самодостаточный кусок типичной программы) - это взять сепульку, произвести её сепуление или отдварковать внедлишным способом, что-то сделать с результатом (возможно, передать следующей процедуре) и иногда зачистить память. То есть надо примерно знать предметную область, какие у нас бывают сущности и как с ними оперировать. Математика в такую предметную область попадает не всегда, да и моя практика показывает, что чтобы писать криптографический код, с соответствующими сепульками можно обращаться, не особо думая о нижележащей математике. Не говоря уже о том, что самому криптографию реализовывать по приколу можно, но вообще говоря, не полезно.
Но да, площадь треугольника или прямоугольника - методически годная задача. И проверять удобно. Как, например, все 100500 тригонометрических уравнений, которые я в школе решал - легко сгенерить, можно проверить, никакого практического смысла.
Вот блин, застряло в головах у людей, что программирование - это математика. Да нифига. Типичная программа (точнее, некий самодостаточный кусок типичной программы) - это взять сепульку, произвести её сепуление или отдварковать внедлишным способом, что-то сделать с результатом (возможно, передать следующей процедуре) и иногда зачистить память. То есть надо примерно знать предметную область, какие у нас бывают сущности и как с ними оперировать. Математика в такую предметную область попадает не всегда, да и моя практика показывает, что чтобы писать криптографический код, с соответствующими сепульками можно обращаться, не особо думая о нижележащей математике. Не говоря уже о том, что самому криптографию реализовывать по приколу можно, но вообще говоря, не полезно.
Но да, площадь треугольника или прямоугольника - методически годная задача. И проверять удобно. Как, например, все 100500 тригонометрических уравнений, которые я в школе решал - легко сгенерить, можно проверить, никакого практического смысла.
no subject
Например, если под математикой понимать неопределённые интегралы, ряды Тейлора и Жорданову форму матриц, то да, в программировании это пригодится очень вряд ли. А чтобы соваться в криптографию, вряд ли кому-то окажется достаточно уже имеющихся знаний математики и не потребуется отдельно изучать варианты доказательства с нулевым разглашением, постквантовые алгоритмы и т.п.
Но я сталкивался с тем, что для людей (программистов) становится проблемой логарифмический масштаб (потому что слово "логарифм" воспринимается примерно как "мартингал", т.е. непонятный и пугающий математический термин) или оценка сложности алгоритма или прикинуть необходимый размер для очереди запросов, если известна частота в пике, продолжительность пика и скорость обработки, или посчитать сумму чисел 1+2+3+...+n (бывает такое в программировании), или посчитать среднее значение для массива (или, тем более, медианное или персентиль)... То есть, люди спотыкаются там, где человек с базовыми знаниями математики проходит и не замечает.
Хотя, например, знание английского для программиста намного важнее, чем знание математики.
no subject
А в остальном математика - это примерно вот это всё: https://www.youtube.com/watch?v=OmJ-4B-mS-Y
Она не исчерпывается арифметикой, даже если это высшая арифметика (ака Теория Чисел), или арифметика над матрицами с комплексными числами.