Программирование и математика
Aug. 26th, 2023 10:56 pm![[personal profile]](https://www.dreamwidth.org/img/silk/identity/user.png)
"Чем заняться в программировании человеку, который не знает математику на уровне начальной школы?" спрашивает коллега.
Вот блин, застряло в головах у людей, что программирование - это математика. Да нифига. Типичная программа (точнее, некий самодостаточный кусок типичной программы) - это взять сепульку, произвести её сепуление или отдварковать внедлишным способом, что-то сделать с результатом (возможно, передать следующей процедуре) и иногда зачистить память. То есть надо примерно знать предметную область, какие у нас бывают сущности и как с ними оперировать. Математика в такую предметную область попадает не всегда, да и моя практика показывает, что чтобы писать криптографический код, с соответствующими сепульками можно обращаться, не особо думая о нижележащей математике. Не говоря уже о том, что самому криптографию реализовывать по приколу можно, но вообще говоря, не полезно.
Но да, площадь треугольника или прямоугольника - методически годная задача. И проверять удобно. Как, например, все 100500 тригонометрических уравнений, которые я в школе решал - легко сгенерить, можно проверить, никакого практического смысла.
Вот блин, застряло в головах у людей, что программирование - это математика. Да нифига. Типичная программа (точнее, некий самодостаточный кусок типичной программы) - это взять сепульку, произвести её сепуление или отдварковать внедлишным способом, что-то сделать с результатом (возможно, передать следующей процедуре) и иногда зачистить память. То есть надо примерно знать предметную область, какие у нас бывают сущности и как с ними оперировать. Математика в такую предметную область попадает не всегда, да и моя практика показывает, что чтобы писать криптографический код, с соответствующими сепульками можно обращаться, не особо думая о нижележащей математике. Не говоря уже о том, что самому криптографию реализовывать по приколу можно, но вообще говоря, не полезно.
Но да, площадь треугольника или прямоугольника - методически годная задача. И проверять удобно. Как, например, все 100500 тригонометрических уравнений, которые я в школе решал - легко сгенерить, можно проверить, никакого практического смысла.
no subject
Date: 2023-08-26 11:11 pm (UTC)Помню, работал я в Теленаве; там у китайцев с геометрией был швах. Включая тот самый загадочный blue screen, появлявшийся, когда карта стартует (сейчас в той точке Атлантики какой-то остров задекларирован). Когда я сокращал выражение, меня спрашивали, как это, что это, и зачем. Ну и, конечно, строить нормаль к кривой приходилось опять же. И конус всякий там.
Но насчет точки (0,0) я вот что скажу. Дело не только в географии. Дело в плохом подходе к программированию, в вере в "дефолтное значение". У джавщиков это повсюду. Категория Эйленберга-Мура.
Так что да, можно лепить вполне работающий код. Но чтоб понимать, что ты делаешь, нужно образование.
no subject
Date: 2023-08-27 02:57 pm (UTC)no subject
Date: 2023-08-27 03:21 pm (UTC)Вот это и любопытно. Сформулировать, что входит в "программирование без математики". Ну вот манипуляция текстами, например. Весь UI, весь REPL, API design (по идее), "топология" (в кавычках, конечно), эксплуатация AI.
Много чего.