Отвечал на комментарий, чот понесло. Ликбез по "математика не нужна"
Отвечаю на комментарий #comment_199406383
"Просто мне странно, что программирование считают чем-то родственным физике и математике."
Ну давай попробую объяснить. Для введения скажу, что этот взгляд на программирование стар и с развитием технологий и абстракций стал верен лишь частично. Определимся с программированием. Что делает программист на самом верхнем уровне абстракции? Каким-то образом передаёт вычислительному устройству план работы. Каким? Неважно, главное, чтобы вычислительное устройство его поняло. Это может быть даже прерывистый дым, как у индейцев. В теории языков это называется "система знаков". Но представители какой профессии первые реализовали на практике работающую вычислительную машину? Не углубляясь в историю, пробежимся по фамилиям – Шеккард, Паскаль, Лейбниц, Бэббидж, Цузе, – все они математики, и их изыскания проводились для упрощения расчётов. С развитием и усложнением мат. аппарата, охватывающего всё бо́льшее количество прикладных задач, потребность в автоматизации процесса расчёта становилась всё острее. От самых простых итеративных процедур на множестве операций арифметики и алгебры мы переходим к более сложным алгоритмам, которые нужно описывать, чтобы передавать план работы компьютерам, не забываем. Так появились новые абстракции – первые языки программирования высокого уровня (это когда действия закодированы во что-то среднее между операционными кодами и естественными языками), яркий представитель – фортран (внезапно, FORmula TRANslator), и первыми программистами стали именно математики и инженеры. После революции в области полупроводников – мельчайших кирпичиков логических схем – здесь с двух ног влетает кремний – это был лишь вопрос времени, когда накопленный запас технологий начнут применять в других сферах, не связанных непосредственно с расчётом траекторий полета на Луну, e.g. Программисты (всё еще инженеры-математики, с увеличением доступности охват был всё больше, но подготовка ещё нужна нехилая), засучив рукава, писали всё более высокоуровневые абстракции, развивались языки и среды, появились графические интерфейсы, сначала DARPA-, потом и интер-нет, и всё это работало (и продолжает работать) на бедных всё тех же логических схемах, но объяснение компьютеру, что тебе от него надо, занимает всё меньше времени и имеет порог вхождения всё ниже. Компьютеры подешевели, вошли в каждый дом, появилось бесчисленное множество ПО для автоматизации различных процессов, передачи больших объемов разного рода мальтимедиа, и, конечно же, лайков кошечек и просмотра порно. Вместе с этим создавалось и ПО для разработки ПО – среды блочного программирования, всякие visual basic for applications, etc. Теперь ты можешь не вникая в нижележащий сложнейший технологический процесс написать своё простенькое приложение, потому что всё сложное от тебя заботливо спрятали умные дяденьки инженеры-математики. Высочайший уровень абстракции позволил людям, достаточно далеким от внутреннего устройства ЭВМ делать работу программистов – отдавать план работы компьютеру, пиша его чуть ли не на своём родном (английском, в большинстве случаев) языке. Хорошо ли это? Просто охуенно. Программисты ли это? Да. Но важные факторы, такие как устойчивость, ресурсоёмкость и время работы ПО ты не сможешь оптимизировать, посмотрев 6 лекций на степике, поэтому вникать в хардкор желательно каждому кодеру, потому что как бы ты ни знал языки, API и прочее – если план работы, алгоритм – говно, то и код – говно.