singlepost

Зачем программистам математика? << На главную или назад  

Почитал тут некоторые темы и заметил что многие рекомендуют начинающим программистам изучать математику.Но я не понимаю зачем?
Напримерзачем нужно знать какие бывают интегралы,их свойства,и учить всякие формулы?
Нам еще ни 1 задачи не дали где пригодились бы любые знания по математике кроме элементарных.(заканчиваю 2 курс)И вообще смутно представляю себе программу где незаменимо потребуются интегралы или что то в этом роде.
Действительно ли так важна математика?Прошу наставьте меня на путь истинный:)

81 ответов в теме “Зачем программистам математика?”

  1. 81
    Максим Панасюк ответил:

    Я когда начинал учится страх не любил МАТЕМАТИКУ, думал "зачем она в программировании? " А потом осознал что она очень помогает развивать логику мышления дабы выходить из сложных ситуаций в програмировании:)

  2. 80
    Евгений Баталов ответил:

    Не буду холиварить.

  3. 79
    Виталий Едифанов ответил:

    Нужна, нужна… Ток башка кипит %)

  4. 78
    Kitt Wasserfall ответил:

    Убиваем кросплатформенность… А как же математическое моделирование процесса?

  5. 77
    Евгений Баталов ответил:

    Я не фанатик и С-Style строки мне не нравятся, эти буферы, постоянное выделение памяти. Я их и не использую, .NET рулит :)

  6. 76
    Kitt Wasserfall ответил:

    Развивает-помогает… Даже простую программу обработки изображений без знания маиематики не написать, всякие уравнения Вебера-Фехнера, интегралы и т.п. матан сразу наматываются, а уж о что говорить о чем-то сложне. С трёхмерной графикой дружат те, кто в состоянии понимать векторы и матрицы для начала. Фильтры изъятия шумов тоже не с помощью знаний по истории и литературе пишутся. Понимание работы отдельных алгоритмов сортировок с математической точки зрения поможет подобрать нужную в конкретном случае. Про правильное конструирование графов и деревьев люди, не учившие математику, даже не в курсе. Нет, матан не нужен, нафиг он? Быдлокодерствовать и без него можно.

  7. 75
    Ирина (Avalon) ответил:

    Математика нужна. Если у Вас будет предмет "Мат. методы", то поймешь почему :)

  8. 74
    Дмитрий Welt ответил:

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

  9. 73
    Евгений Баталов ответил:

    Ну вобще-то и так понятно, что все должно быть как можно проще и с точки зрения самого кода (предложений на ЯП) и с точки зрения того объема вычислительной работы, который он порождает. А оттестриовать далеко не все можно и строго доказать правильность работы… не мне об этом рассказывать. Ладно… холивар чего с ним поделаешь…
    Определенно есть те кому вобще не надо, есть те кому очень надо.

  10. 72
    Леонид Максимов ответил:

    о, холивар!
    какого вы мнения о C-style строках?

    кому не понятно – процитирую Джоэля:

    Шлемиль устроился на работу маляром и должен был наносить разметку посередине дороги. В первый день он взял бочку краски и разметил 300 метров дороги. "Неплохо! – сказал босс. – Ты быстро работаешь!" И заплатил ему денежку. На следующий день Шлемиль осилил только 150 метров. "Ну что ж, не так здорово, как вчера, но ты все равно быстро работаешь. 150 метров – это не мало", – сказал босс и заплатил ему денежку. Еще через день Шлемиль расчертил 30 метров дороги. "Всего 30 метров! – рассвирепел босс. – Это никуда не годится. В первый день ты сделал в десять раз больше. Что случилось?"
    "Ничего не могу поделать, – говорит Шлемиль. – С каждым днем приходится все дальше и дальше уходить от бочки с краской".

  11. 71
    Maksim Sozinov ответил:

    ну наф эту математику))

  12. 70
    Вадим Старцев ответил:

    #71
    Maksim [ADM]empire-of-dragons Sozinov
    20 мая 2009 в 18:41
    ну наф эту математику))

    Угу, а потом из-за таких как ты, поезда с рельс сходят и ракетные двигатели взрываются

  13. 69
    Иван Voyager ответил:

    Без знания математики – это не программист. Нужна.

  14. 68
    Леонид Максимов ответил:

    2 Тимур Багаутдинов
    > О да.. и вы, Леонид, хотите сказать, что всегда это делаете…

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

  15. 67
    Денис Гублин ответил:

    познание мира -> физика, химия и т.д. -> математическая модель реального процесса -> аналитическое решение -> численное решение на компьютере для применения в жизни -> самолет, компьютер, лекарство, автомобиль, дом

  16. 66
    Константин Смотритель ответил:

    И вообще, все пинки математики следует удалять, чтоб не плодить холиваров… Вопрос был "зачем нужна математика", вот на него и следует отвечать.

    Вообще, как справедливо намекнул Жека – само программирование это уже математика. Если же касаться конкретных видов математик, то тогда, может, вопрос ответа и не имеет. Но если говорить о математике вообще – то вопрос, как он задан, не имеет смысла. Программист – по определению, человек, занимающийся программированием. Программирование – это раздел математики. То есть вопрос задан в виде "Зачем программистам программирование?"

    Не удивительно, что ни у кого нет агргументов для ответа на вопрос =))) Удивительно, что находятся таки аргументы против О_о

    P.S. Жека, может, будем таких банить, как не относящихся к программистам? ;-)

  17. 65
    Жека Кирпичев ответил:

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

    Это как с юнит-тестированием: не столь важно юнит-тестировать программу, как важно, чтобы она была юнит-тестируемой.

  18. 64
    Жека Кирпичев ответил:

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

  19. 63
    Евгений Баталов ответил:

    Даже то что сказал Леонид не считаю математикой как отдельной областью. (повторюсь) Математика имхо мехмат, остальное-посмотрел, изучил, где надо применил. А в команде достаточно одного такого как Леонид написал и это не значит что он самый умный при этом, он вполне может другого не уметь.

  20. 62
    Тимур Багаутдинов ответил:

    О да.. и вы, Леонид, хотите сказать, что всегда это делаете…

  21. 61
    Леонид Максимов ответил:

    > в некоторых задачах конечно нужна – например цифровая обработка сигналов, моделирование физических процессов итд.

    а также: составление алгоритма, оценка сложности алгоритма, доказательство получения правильного результата, и т.п.

  22. 60
    Иван Горбачев ответил:

    ну-ну…

  23. 59
    Гена Жукофффф ответил:

    в некоторых задачах конечно нужна – например цифровая обработка сигналов, моделирование физических процессов итд. Но вообщем я считаю что математика для прогера как химия для повара – теоретически знать полезно (и поваров вроде даже химии учат в пту))) но практически почти ни когда не применима.

  24. 58
    Андрей Малышев ответил:

    Интересно, а современное программирование ставит перед математикой такие задачи, на которые пока она не может ответить?

  25. 57
    Маша Калюжная ответил:

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

  26. 56
    Максим Потапов ответил:

    Конечно нужна, какже без неё то??? Проблема современных учителей в том, что они дают теорию, но не объясняют для чего она нужна на практике, и как оказывается всё это вполне может использоваться в довольно распространённых областях.

  27. 55
    Артур Булакаев ответил:

    Иван, х*ново :)

    Математика на самом деле нужна программисту. Вопрос лишь в том, на каком уровне. Понятно что это не уровень обласных олимпиад, но те же теорию графов, методы выч. геометрии, сортировки, комбинаторики – всё это сейчас включат в дисциплину математики, и изучают в вузе.

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

    Но в решении проектов другого рода – мат аппарат нужен, и очень сильный.

  28. 54
    Евгений Баталов ответил:

    Вы наверное неглупых оболочек еще просто не писали. Все тут про алгоритмы, а их еще надо сформулировать, вникнув в предметную область, описание которой обычно очень нелегко и неполно достается от заказчиков.
    Для меня математика – то что проходят на мехмате, остальное вполне иногда может пригодиться.

  29. 53
    Ксения Васильева ответил:

    программист без математики просто дизайнер, хорошо знающий синтаксис некого языка

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

    не зная азов- не дойдете до макушки..Математика не прислуга, а фундамент, основа.

    конечно, можно заметить большинство заказов- это глупые оболочки.
    Вопрос в том на какой уровень вы претендуете…

  30. 52
    Евгений Баталов ответил:

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

  31. 51
    Константин Смотритель ответил:

    Знаки эмоции (в простонародье смайлы) – это попса. А тут люди собрались серьёзные.
    ….
    8-/

  32. 50
    Дамир Зайнуллин ответил:

    я понял ироничность, но его комент вызвал у меня смех. он просто так это серьезно написал, без лишних знаков имоции

  33. 49
    Жека Кирпичев ответил:

    Ты бы еще иронию видеть научился )))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))

  34. 48
    Жека Кирпичев ответил:

    P.S. )))

  35. 47
    Дамир Зайнуллин ответил:

    хахаха насмешил, глупее вопраса не слышал. ты бы еще спросил: зачем хирургу скальпель )))))))))))))))))

  36. 46
    Константин Смотритель ответил:

    Зачем программистам логическое мышление?

  37. 45
    Влад Кухницкий ответил:

    Криптография,нейронные сети,работа с видео,аудио и тд форматами
    Куда тут без хотябы тойже линейной алгебры и теории вероятностей?
    в алгоритмах без теории графов никак например. И таких примеров куча.
    Если хочешь программировать нечто большее чем нахождение максимума в массиве то математика нужна одназначно.

  38. 44
    Леонид Максимов ответил:

    Александр, анатомии в современном ее понимании ибн Сина точно не знал :)

  39. 43
    Николя Фильченко ответил:

    возможно вся математика и не понадобиться, но логика, геометрия, векторная алгебра, интегрирование и дифференцирование нужны однозначно. любая программа сводиться к алгоритму и решению математических! задач (уравнения, системы итд). А научить компьютер тому, что не умеешь сам весьма проблеатично. А криптография вообще сплошная вышка.

  40. 42
    Александр Чигринец ответил:

    ибн Сина не от сохи пошёл в медицину, а изучал опыт, накопленный до него. Другое дело, что он этот опыт систематизировал и дополнил собственными изысканиями.
    Так что пример некорректный. ;-)

  41. 41
    Леонид Максимов ответил:

    практиковал же как-то Абу Али Хусайн ибн Абдаллах ибн Сина.

  42. 40
    Vlad Ламбар ответил:

    #40 это сейчас никак :) а вот в древности…в древности хирургия как такова была варварской…и начало брала в Муждуречьи и Китае(где кстати было первое подобие анестезии). У Инков была практика делать лоботомию. А а Средневековой Европе были случаии когда врачи выкапывали трупы для исследования строения человека…

    отсюда вывод, не все рождается готовым, ко всему надо идти )))

  43. 39
    Иван Горбачев ответил:

    Можете ответить мне на вопрос: как может практиковать хирург без знания анатомии?…

  44. 38
    Вадим Старцев ответил:

    Народ ну без математики никак нельзя, ибо она поворачивает мозг кодера в правильное русло)

  45. 37
    Евгений Баталов ответил:

    Математика разная бывает, то что я применяю, не считаю чем-то сверхъестественным. А насчет быдлокодеров… Думаешь заказчику важно как написана программа?

  46. 36
    Vlad Ламбар ответил:

    >> А насчет быдлокодеров… Думаешь заказчику важно как написана программа?

    смотря что за заказчики :)

  47. 35
    Людмила Уланова ответил:

    Вот это вопрос!.. 0_о
    +1 к #35. Слабо представляю себе информационную систему, в которой не было бы математики.. Ни одной такой не писала)))

  48. 34
    Иван Горбачев ответил:

    "Почитал тут некоторые темы и заметил что многие рекомендуют начинающим программистам изучать математику.Но я не понимаю зачем?"

    А зачем хирургам изучать анатомию? Скальпелем махать научился и вперёд!

    А в действительности грустно, что огромное количество быдлокодеров пишут быдлокод, который работает с грехом пополам. Но ещё хуже, что потом эти быдлопрограммы умудряются втюхивать за нехилые бабки….

  49. 33
    Леонид Максимов ответил:

    не просто может пригодиться, а постоянно требуется.

  50. 32
    Александр Васюченко ответил:

    #32
    вот, вот… смотря что программировать… может любой раздел науки понадобится, и не обязательно математика…

    чтобы вообще хоть что-то программировать, нужно логическое алгоритмическое мышление – это основа программирования… хотя математика тоже может пригодиться…

  51. 31
    Валентин Золотников ответил:

    Мозгу развивает…а еще, смотря что программировать) Там еще может и физика, и черт лысый понадобится…

  52. 30
    Woollen Sock ответил:

    #15, у меня с английским все хорошо)я думал наоборот у тебя плохо =)
    Знаю много примеров, когда люди ламеры и подписывают свой комп, блютус на телефоне, всякие никнеймы -"хакер", вот это как-то глупо)
    А автор пришел найти ответ, он его нашел а твой пост что он нуп , вроде ответа ему не дает)по крайней мере обоснованного=)

  53. 29
    Александр Васюченко ответил:

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

  54. 28
    Димко Ионов ответил:

    Всем спс пойду учить математику D:

  55. 27
    Жека Кирпичев ответил:

    Математика нужна потому, что:
    – Она заставляет научиться четко формулировать и понимать четкие формулировки. Это одно из самых важных качеств для программиста;корреляция между умением формулировать и умением программировать среди моих знакомых и коллег – 100%. Те, кто умеет формулировать – придумывает красивые, четкие, непротиворечивые решения, а уж как их объясняют – заслушаешься. Те, кто не умеет – придумывает "магические", исполненные хаков, а потом долго затыкают новыми хаками дырки в старых хаках.
    – Она содержит разделы, обладающие непосредственной важностью для программирования.
    – Она – хоть это и не до всех и не сразу доходит – учит видеть общее, учит абстракции. Полагаю, полезность этого для программиста пояснения не требует.

    В качестве блестящих примеров того, как элементарная абстрактная алгебра творит чудеса, можно привести finger trees и префиксные суммы:

    Две потрясающие статьи от кудесника Дэна Пипони:

    //blog.sigfpe.com/2008/11/approach-to-algorithm... – как очень просто параллелизовать задачу вычисления максимальной суммы подотрезка, сведя ее к перемножению матриц над полукольцом (Int,+,max)

    //blog.sigfpe.com/2009/01/fast-incremental-regu... – как очень просто сделать инкрементальный мэтчинг регулярных выражений над сколь угодно большими текстами, сведя задачу к свертке над моноидом эндоморфизмов множества состояний конечного автомата при помощи finger trees

    Статьи, по мотивам которых Пипони написал вышеупомянутое:

    //citeseerx.ist.psu.edu/viewdoc/summary?doi=10…. – Prefix sums and their applications : статья про "префиксные суммы" – тоже очень универсальная концепция, выражающаяся в терминах моноидов, колец или похожих структур, предназначенная для параллелизации алгоритмов, и позволяющая распараллелить огромный класс задач – от вычисления суммы набора чисел или сравнения гигантских строк, до выполнения radix sort.

    //apfelmus.nfshost.com/monoid-fingertree.html – сами finger trees: чрезвычайно универсальная структура данных, позволяющая сделать параллельной или инкрементальной любую свертку над любым моноидом

    В конце концов, сам MapReduce, повсеместно применяющийся сейчас во всех задачах обработки больших массивов данных, основан на ассоциативной свертке.
    Вот прекрасная статья, анализирующая MapReduce с этой точки зрения: //www.cs.vu.nl/~ralf/MapReduce/paper.pdf

  56. 26
    Юлия Шатилина ответил:

    математика не делает людей умнее, она учит их думать, а нам без этого никак

  57. 25
    Роман Волобоев ответил:

    22, "Да за такие слова и по лицу получить можно."
    Ого. Павел, а не думал, что пока ты математикой занимался, он на кудо ходил?) Уважительней надо быть к людям.

    Достаточно было сказано выше по теме.
    У меня в университете в лекционном зале, где проводятся все лекции мат. кафедры, висит на стене плакат с надписью: "Математик может все."
    Трудно не соглашаться с очевидным.

  58. 24
    Роман Волобоев ответил:

    24, "сам подумай, математика создала законы, все подчиняется им. можно сравнить с царями, создающими законы, или правительством. что в общем одно и тоже."
    Математика не создавала законы. Она их описала.

  59. 23
    Дамир Зайнуллин ответил:

    или хотябы соседи прокричат чет путное!!! )))

  60. 22
    Дамир Зайнуллин ответил:

    # 20 "Нифига подобного. Исходя из того, что все другие науки постоянно используют математику, она как раз прислуга наук))"

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

    >матиматега – царица наук . <- точка

  61. 21
    Павел Акулов ответил:

    У меня на первом курсе был мат. анализ, тоже думал, нафиг он нам нужен. На втором курсе понял, что нужен… Предмет был вычислительная математика. В ней нам все разложили по полочкам, расказав про то как оценивать сложность алгоритмов математическими методами, дали понять как реализовывать модели на ВМ. А в моделировании(чем я собственно и буду заниматься в будущем) так вообще не обойтись без математики и мат. статистики. В 5ом семестре писал курсовую по выч. мату: "Моделирование ткани на прямоугольном столе с использованием метода частиц и прямого метода Эйлера". И это еще самый простой вариант был (самый сложный – пирамида). Чтобы написать программу пришлось решать задачу Коши для динамической модели. Так что теперь играя в игры (редко уже, правда), я не говорю, что те кто писал игру – м**аки, потому что знаю, насколько это тяжкий труд.

    Говорить что "Математика-фигня, нафик не нужна"… Да за такие слова и по лицу получить можно. Вся вычислительная техника основана на математике. Думать надо, прежде чем че-то ляпнуть. А если нечем думать, то постучаться головой об стену, может че дельное от стенок черепной коробки отвалится и на язык попадет…

  62. 20
    Николай Васильев ответил:

    Совершенно правильно, нужна, причем постоянно, но

    >матиматега – царица наук . <- точка

    Нифига подобного. Исходя из того, что все другие науки постоянно используют математику, она как раз прислуга наук))

  63. 19
    Дамир Зайнуллин ответил:

    >матиматега – царица наук . <- точка

    не будь её ни одной другой науки бы небыло!!!

  64. 18
    Никита Миклушов ответил:

    правильно все зависит, для чего тебе программирование, математика очень часто встречаеться при программировании игр… или написании алгоритмов шифрования, или при программирование различных вещей для лаборатории…

  65. 17
    Сергей Артюх ответил:

    Все зависит от предметной области.
    Для работы с массивами данных 100% нужна.
    Для программных комплексов стратегических расчетов, анализа, планирования, моделирования …

  66. 16
    Roman Kovalev ответил:

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

  67. 15
    Олег Савинов ответил:

    #8 Ну, олимпиадные задачи – это, конечно, здорово. Вот только решать олимпиады и писать реальные проекты – это немного разные вещи. (Даже не немного))) В олимпиадах почти все задачи высосаны из пальца и в среднем, имеют небольшой объем. Я не спорю, это полезно для соображалки и т.д., вот только это еще не все, что нужно программисту)

    Если подразумевать под математикой кучу формул, то да, она редко бывает нужна. А вот если математический аппарат и, как следствие, логику – то это нужно будет всегда. И еще многие вещи в теоретической информатике построены на математике, а теор. инфа – это O(), булева алгебра, теория автоматов, методы компиляции и много еще чего вкусного))

  68. 14
    Vladislav Starkovsky ответил:

    ^_^ А теперь прочитай правильно Фузя… Если бы твои познания в Английском были чуть больше, ты бы понял что первая "X" читается как "Кс". Сообственно не суть важно.

    Все равно вопрос глупый и автар ламер.

  69. 13
    Woollen Sock ответил:

    #5 сказал, что автор нуб и позорник, а я считаю нуб и позорник тот, кто пишет себе в графу никнейм "хакер" ебана=)

  70. 12
    Дмитрий Панин ответил:

    Математика-фигня, нафик не нужна…

  71. 11
    Богдан Чечин ответил:

    Пользу дискретной математики очень тяжело переоценить.

  72. 10
    Юрий Лисичкин ответил:

    матиматега – царица наук . <- точка

  73. 9
    Лев Свиридов ответил:

    зачем-зачем?
    гонорар считать :)

  74. 8
    Александр Чигринец ответил:

    Математика это не только линейная алгебра и мат. анализ. Это ещё и теория групп, теория графов, множеств и т.д. Кроме того, математика, как уже сказали, формирует определённый склад мышления.
    Какой-то класс задач можно кодить без математики. Но в институте закладывается база, фундамент. Чем фундамент основательнее, тем больше есть возможностей по возведению на нём чего-либо в будущем.
    Как говорил Абдула в "Белом солнце пустыни": "Хорошо тому, у кого есть кинжал. И плохо если его не окажется… в нужное время." Так вот запасаться кинжалом нужно заранее, а когда он понадобиться, то надо будет достать и пользоваться.

  75. 7
    Лев Свиридов ответил:

    ну почему – далеких?
    в туалете неплохо распечатки просматривать :)

  76. 6
    Илья Крюков ответил:

    Пригодится и не раз! Просто с реальными задачами не сталкивался. Зайди на сайты посвященные ACM ICPC и ты увидишь что в каждой задаче математическая база, причем серьезная.

  77. 5
    Антон Щиров ответил:

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

    Весь фокус в том, что у программиста рабочий инструмент не компьютер, а голова. А компьютер ему по сути и не нужен. Например я, решение своей последней проблемы нашел в филармонии, слушая девятую симфонию Шуберта :)

  78. 4
    Артур Терменжи ответил:

    нужна, но я предметам по програмированию больше гораздо внимания уделяю..

  79. 3
    Vladislav Starkovsky ответил:

    аффтар нуп и апазорился ^_^

  80. 2
    Vlad Ламбар ответил:

    >> Например я, решение своей последней проблемы нашел в филармонии, слушая девятую симфонию Шуберта :)

    Кстати золотые слова – "наваждение" часто приходит в самых "далеких" от математики местах…

  81. 1
    Vlad Ламбар ответил:

    нужна-нужна…это аксиома…

Клуб программистов работает уже ой-ой-ой сколько, а если поточнее, то с 2007 года.