Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Философия программирования > Нужна ли программисту математика?


Автор: starter 25.10.2005, 21:37
Всем привет! Начал вот изучать С++ , но через некоторое время возник вопрос , а достаточно ли обычно руководства или кодеру также необходима математика? Если да то что есть интересного почитать , а то у меня в школе с этим плохо было.(надеюсь понятно что речь идёт не об арифметике)

Автор: nikitao 25.10.2005, 21:48
(ИМХО)Програмисту нужна математика,но не столько сама матиматика,а математический сглад ума.Без него сложно понять суть программирования.Ессно лучший способ развить такой склад ума-это занятие математикой(ИМХО)Ну и при программировании(серьезном) она тоже разумеется нужна(иатрицы например при 3D прогр.)

Автор: Albinos_x 25.10.2005, 21:55
ещё как нужна и не обязательно, только для
Цитата(nikitao @ 25.10.2005, 21:48)
иатрицы например при 3D прогр.


Автор: nikitao 25.10.2005, 22:14
Цитата
ещё как нужна и не обязательно, только для

Я ж это только для примера,а не вообще... smile

Автор: bilbobagginz 25.10.2005, 22:33
starter. нужна программисту математика - однозначно нужна.
смотри:
3D-игрушки - это много линейной алгебры и физики - механики, и всё в дискретных координатах.
звуко-обработка - это ЦОС ( цифровая обработка сигнала ), там нужно мног различных дисциплин - дифф. уравнения, интегральные преобрзования и все в цифровом виде, а также теория управления и физическое моделирования - тоже математика.
если ты хочешь написать программу по планировке ресурсов каких-то - то алгоритмы (рецепты действий) там сильно полагаются на теорию вероятности
далее, ессно все что связано с комп. видением - это тоже много алгебры в перемешку с ЦОС
само-обучающиеся системы - там вообще сплошной математиоческий лес
а шифрование и кодировка (как напр. сжатие) - это уже просто отдел прикладной математики.
единственные не чисто-математические сферы - это наверное прикладное оффисное ПО - информационные системы и т.д. но и их планировать нужно математику знать.
короче... учить придется.

это между прочим очень интересная наука.

smile

Автор: Mal Hack 25.10.2005, 22:38
Блин, ну ведь были уже две темы в войнах...

Автор: bel_nikita 25.10.2005, 23:18
На счет математики не знаю. Мне она пока не нужна была. И если нужно будет - есть математические справочники.
Я бы лучше развитием логики занялся. Для меня программист - это человек умеющий думать логично и рисовать свою мысль на бумаге, ввиде алгоритма.
В общем, нужен аналитический склад ума

Автор: Bastet 25.10.2005, 23:29
Справочник по математике и знание математики есть две большие разницы.
bel_nikita, ничто так не развивает логику и не тренирует аналитические способности, как математика.

Автор: bel_nikita 25.10.2005, 23:37
Bastet
Что есть знание математики?
Чтобы стать математиком - одной математики не достаточно. Нужна еще и философия и т.д.

Автор: Dark Elf 26.10.2005, 09:03
starter

Нужна - не далее как вчера мне
понадобилось решить нелинейное уравнение итерационным методом Ньютона, хотя вроде бы как не в математическом НИИ работаю.
Конечно всё подряд учить нет смысла но с литературой научиться работать обязательно. (ИМХО)

Автор: Chaos A.D. 26.10.2005, 09:18
Вот что по этому поводу написано в книге Алена Голуба - "Веревка достаточной длины, чтобы... выстрелить себе в ногу".

Цитата

...Есть разные мнения о возможности мышления вне языка, но я убежден, что аналитическое мышление того типа, который нужен в компьютерном программировании, тесно связано с языковыми навыками. Я не думаю, что является случайностью то, что многие из знакомых мне лучших программистов имеют дипломы по истории, филологии и схожим наукам. Также не является случайностью то, что некоторые из виденных мной худших программ были написаны инженерами, физиками и математиками, затратившими в университете массу энергии на то, чтобы держаться как можно дальше от занятий по языку и литературе.
Сущность заключается в том, что математическая подготовка почти не нужна в компьютерном программировании. Тот тип организационного мастерства и аналитических способностей, который нужен для программирования, связан полностью с гуманитарными науками. Логика, например, преподавалась на философском факультете, когда я был в университете. Процесс, используемый при проектировании и написании компьютерных программ, почти полностью идентичен тому, который используется, чтобы сочинять и писать книги. Процесс программирования совсем не связан с теми процессами, которые используются для решения математических уравнений.
Здесь я делаю различие между информатикой (computer science) — математическим анализом компьютерных программ — и программированием или разработкой программного обеспечения — дисциплиной, интересующейся написанием компьютерных программ. Программирование требует организационных способностей и языковой подготовки, а не абстрактного мышления, необходимого для занятий математическим анализом. (В университете меня заставили проходить год на лекции по математическому анализу, но я никогда из него ничего не использовал ни на занятиях по информатике, хотя для них матанализ был необходимым условием, ни в реальной жизни).
Я как-то получил открытую рецензию на книгу, посвященную мной предмету проектирования компиляторов, в которой рецензент (который преподавал в одном из ведущих университетов) заявил, что он "считает абсолютно неуместным включение исходного кода компилятора в книгу о проектировании компиляторов". По его мнению, необходимо учить "фундаментальным принципам" — лежащей в основе математике и теории языка, а детали реализации — "тривиальны". Первое замечание имеет смысл, если у вас создалось впечатление, что книга написана ученым-специалистом по информатике, а не программистом. Рецензент интересовался лишь анализом компилятора, а не тем как его написать. Второе замечание просто показывает вам, насколько изолировала себя научная элита от реального труда программирования. Интересно, что основополагающая работа по теории языка, сделавшая возможным написание компиляторов, была выполнена в Массачусетском технологическом институте лингвистом Наумом Хомским, а не математиком...


Автор, кстати, не последний человек в мире прогаммирования на С++.

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

Все вы знаете сайт anatolix.naumen.ru. Дак вот, как то я спросил у этого самого Anatolix-а, пригодилась ли ему математика. Он ответил, что по его мнению, в современном программировании мат. анализ вообще не применим, реально используются только несколько разделов дискретки. И почему-то я в это верю.

Автор: Mal Hack 26.10.2005, 09:20
Блин, еще раз повторяю, была уже тема, зачем плодить !!!

http://forum.vingrad.ru/index.php?showtopic=36735
http://forum.vingrad.ru/index.php?showtopic=4140
О, даже две.

Автор: LPBOY 26.10.2005, 09:54
Цитата(Chaos @ 26.10.2005, 09:18)
Все вы знаете сайт anatolix.naumen.ru. Дак вот, как то я спросил у этого самого Anatolix-а, пригодилась ли ему математика. Он ответил, что по его мнению, в современном программировании мат. анализ вообще не применим, реально используются только несколько разделов дискретки. И почему-то я в это верю.

Тем не менее, даже если математика совсем и не нужна, сомневаюсь что профи плохо ее знают.

Автор: Chaos A.D. 26.10.2005, 12:05
Цитата

Тем не менее, даже если математика совсем и не нужна, сомневаюсь что профи плохо ее знают.


Anatolix говорил, что знает только ту её часть, которая относится каким-либо боком к компам. Computer Related Math, говоря по заморски. В универе он её не учил, и знает только потому, то что сам когда-то что-то читал.

Автор: Guest 26.10.2005, 13:00
Chaos A.D. , а как насчёт поста bilbobagginz ? По твоему получается он неправ? По моему очень
Хочу ещё уточнить некоторые моменты: нужна ли математика при разработке сетевых приложений , при кодинге malware?
И вообще как за неё взяться , с чего начать , может быть с Кнута?А то у меня в универе нет математики.

Автор: En_t_end 26.10.2005, 13:10
Цитата(Guest @ 26.10.2005, 17:00)
Хочу ещё уточнить некоторые моменты: нужна ли математика при разработке сетевых приложений ,

Ага... понадобиться знание теории вероятности smile smile smile гы гы гы....
Добавлено @ 13:13
Цитата(En_t_end @ 26.10.2005, 17:10)
Хочу ещё уточнить некоторые моменты: нужна ли математика при разработке сетевых приложений ,

P.S. мне пока только логика пригодилась, причем отнюдь не железная, ибо это сеть.

Автор: Dreamer_0x01 26.10.2005, 14:44
математика - достаточно абстрактное понятие. Вам понадобится не математикака как сама наука, а конкретные ее разделы, все зависит от ваших целей.
Лежит у вас душа к программированию 3D - линейная алгебра вам в руки.
Хотите программировать контроллеры - без Булевой алгебры вам никуда.
Хотите заниматься статистическими исследованиями - сами слова говорят, что вам нужно...

Все вместе - вряд ли понадобится. Но это не значит, что чего-то учить совсем не нужно. То, что вам не понадобится, через год после изучения забудется. Но вдруг вам потом случиться столкнуться с какой-то новой проблемой (скажем, с обработкой сигналов каких-либо датчиков) - и тут вы начнете вспоминать, что есть такое поняти, как цифровая фильтрация, что есть такое понятие, как спектры сигналов, а они вытекают из преобразований Фурье,а вот это уже большой раздел математического анализа, и т.д. Короче, в голове построится целая цепочка, и вы будите хотя бы знать, где копать, какой именно справочник смотреть(а их тысячи!), чтобы найти свой клад.

Автор: Chaos A.D. 26.10.2005, 15:17
Кстати, признаюсь вам по секрету, я довольно давно хочу что-нибудь из азов взять и почитать. И к сожалению, я очень ленив, и мне просто влом это сделать. У меня со школьной скамъи с математикой плохо. Наверное, я всегда себя оправдывал тем, что она мне не пригодится. Скорее всего я так и не отважусь взять и начать все обучение сначала. Хотя в моем случае, я точно знаю, что на контроллеры меня не потянет; в моих мечтах/планах я, скорее архитектор ПО, нежели программер, пишущий 3D движки. И отсюда вывод - мне бы пригодилось знание принципов ООП, паттернов проектирования, архитектуры ПО в целом, UML, RUP и т.п., а не матан.

Автор: starter 26.10.2005, 15:34
Интересует тоже что и Guest - какие книги надо изучить кодеру? Не школьные же учебники читать

Автор: Се ля ви 26.10.2005, 22:13
Цитата(bilbobagginz @ 25.10.2005, 22:33)
единственные не чисто-математические сферы - это наверное прикладное оффисное ПО - информационные системы и т.д. но и их планировать нужно математику знать.

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

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

Автор: Се ля ви 27.10.2005, 11:15
starter, здесь универсальных правил нет - в силу особенностей психологии, каждому подходят свои книжки. smile
Есть классические труды, например, Кнуда можно почитать. Дальше лучше определиться с языком программирования и по нему выбирать наиболее классические вещи. По С++ это Страуступ, по Java - Брюс Эккель (впрочем, у Эккеля и по С++ есть пара очень хороших книг).

Автор: starter 27.10.2005, 12:39
Се ля ви , поделись знанием , что такое дискретная математика? Это о чём?
И насчёт Кнута , ты имеешь ввиду иск-во программирования?

Автор: starter 29.10.2005, 11:43
Блин , ну посоветйте хоть что-нибудь , что вы все молчите, а то не знаешь за что хвататься , и главное что после чего надо учить . Для дискретной математики нужно знать высшую или хватит школы?

Автор: Се ля ви 29.10.2005, 12:21
Цитата(starter @ 27.10.2005, 12:39)
что такое дискретная математика?

Хм... Ну как тебе сказать?.. Система теорий - так, наверное. Теория множеств, булева алгебра, комбинаторика, теория графов, деревья, теория алгоритмов и много чего ещё. Во всех вузах на технических специальностях её проходят, ты её не минуешь, будь уверен smile . Хотя на качественного препода можешь и не попасть, прям как я в своё время - так что лучше подстаховаться самообразованием...

Цитата(starter @ 27.10.2005, 12:39)
Это о чём?

Хм... А о чём математика школьная?.. Это методы и модели, а вопрос "о чём?" скорее из области конкретного применения. Это как я бы сказал, что математика - это о том, как считать деньги, когда расплачиваешься за что-то - больше никак этого детям, которые её ещё не изучали в школе, не объяснишь. Вопрос надо задавать иначе - на решение каких задачь нацелена и где реально применяется? Нацелена на решение широкого круга задачь обработки информации и применяется для этого же в различных сферах как прикладных, так и исследовательских. smile

Цитата(starter @ 27.10.2005, 12:39)
И насчёт Кнута , ты имеешь ввиду иск-во программирования?

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

Цитата(starter @ 29.10.2005, 11:43)
посоветйте хоть что-нибудь , что вы все молчите, а то не знаешь за что хвататься , и главное что после чего надо учить

Ты определись сначала - чем бы ты хотел заниматься. Мне кажется, твоя проблема в том, что ты сам не знаешь, чего ты хочешь и вопросы у тебя получаются абстрактные. Есть куча различных сфер, в которых работают программисты, программирование очень разобщено, что бы понять это, загляни в раздел "Религиозные войны" - часто между двумя программистами больше отличий, чем сходств, а всё потому, что очень разными задачами занимаются. Даже в рамках одного языка программирования бывает, что совершенно невозможно понять друг друга - я, например, очень слабо себе представляю, что есть платформа J2ME и как пишутся на ней Java-игры и софт для КПК и мобильников, но зато хорошо представляю, как пишутся корпоративные автоматизированные приложения на той же Java - просто разные платформы.
А есть ещё очень специфические другие области - игрушки, (причём там 3D, стратежки, ролевые, flash и более мелкие самостоятельные разделы), драверы и системный софт, телекоммуникации, программы сетевой диагностики и автоматизированного администрирования, CASE-ы, разнообразные системы защиты информации и т.д. и т.п.

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

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

Автор: LSD 29.10.2005, 12:22
Конечно Кнут это вещь хорошая и почитать ее стоит, но вот только большая часть задачек там весьма нетривиальна и требует от читателя, чтобы он уже хорошо владел математикой.

Цитата(starter @ 26.10.2005, 16:34)
Интересует тоже что и Guest - какие книги надо изучить кодеру?

ИМХО стоит получить высшее техническое образование (для развития общего кругозора). И читать литературу по теме: учишь например Java читаешь соответсвующую литературу, есть проблемы с алгоритмами лезешь в Кнута, учебник по дискретке и т.п.

Автор: bilbobagginz 29.10.2005, 18:18
ребята. я не хочу повторяться - религиозные и другие войны - не хочу начинать.
Да, есть смышленые ребята, у которых не было времени учиться и к-рые не зная теории на практике все решали сами (*). И пишут они "програмки", даже работают не плохо, и малвер и черт что еще пишут. иногда даже вирусы пишут люди, к-рые в этом деле не профессионалы.
Но дело в том, что это - исключения, и то, в какой десятке или сотне профессионалов они находятся - это тоже не важно ( хотя понятно )
Давайте разделим - "серьезное ПО" и маленькое ПО решающее маленькую несложную прикладную задачу в офисе - напр. Чтобы написать аппликацию для бизнес-фирмы, к-рая будет писать сколько стоит доллар каждые 10 минут на мобильник - не нужна математика ( ну может арифметика smile )
А Факт остается фактом: большинство профессионалов ДА учились где-то чему-то. Можно полистав справочник по математике найти формулу, но не понимая ее ОГРАНЧЕНИЙ, и области применения и остальных деталей всего целого, серьезные задачи - почти невозможно решить не зная математики.
Извините конечно, но во время бума "хай-тека" в сферу разработки ПО просочились (да), все кому не лень, и любой кто-худо бедно мог "хеллоу-ворлд" написать отркывал свою фирму. вкладчики не проверяли настоящих способностей этих молодых людей и очень часто прогорали.

Короче, учи математику.


(*) Кстати, мой один друг (физик по образованию), после 3-х летнего опыта программистом, "изобрел" двоичное дерево. вот. smile ( т.е. изобрел колесо, в принципе )

Пока.

Автор: Dreamer_0x01 31.10.2005, 00:22
Цитата(starter @ 29.10.2005, 11:43)
Блин , ну посоветйте хоть что-нибудь , что вы все молчите, а то не знаешь за что хвататься , и главное что после чего надо учить . Для дискретной математики нужно знать высшую или хватит школы?


Дружище, вы боитесь будущего. Вы пытаетесь заглянуть на 100 лет вперед и постелить соломку на все ямки, которые возникнут на Вашем пути. Это нереально. Более того - пустая трата времени и сил.
Мой вам совет - не бойтесь. Начните с малого. И вы прийдете к большому. А для того, чтобы был стимул идти - определите вашу Цель.
Не бойтесь будущего, оно не кусается. Оно только иногда бъет мордой об стол. Не бойтесь этого, и тогда будет трещать стол,а не морда. Естественно, сразу вы всему не научитесь, и первые шишки набъете обязательно. Ну и что! Зато это будет ваш путь к цели. И опыт.

Фундаментальное техническое образование - это лишь начало вашего жизненного пути, если вы в дальнейшем хотите заниматься техническими науками. (А программирование таковой как раз является.) Не волнуйтесь, если будите обучаться в серьезном ВУЗе - математику вы будите знать в достаточном объеме для решения хотя бы некоторых задач, над которыми вам предется работать. Но кроме математики, уверяю вас, вы обнаружите, что оказывается существуют и другие науки и знания, о которых вы раньше почему-то даже не догадывались, а между тем это такие важные для вас знания и открытия. А дельнейшие знания вы уже найдете по ходу обучения, вы сами поймете, что вам нужно, но лишь после того, как сделаете первые шаги.

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

В общем, это кончно я в лирику вдался. Но резюме таково: математика нужна, но не только она, нужно именно фундаментальное образование. Проверено на себе.

Автор: sts 31.10.2005, 18:00
Я действительно не совсем понимаю те задачи , которые собираюсь решать ,(хотя свои интересы могу назвать уже сейчас-это сеть и системное программирование) но дело в том что я сейчас активно изучаю программирование как таковое и хочу быть компетентным в этой области , хочу понимать так сказать основы .... Мало ли что я буду делать в будущем программирование для меня конечно хобби , но я бы не стал отказываться заработать на этом. В общем из всего разговора я так понял что мне стоит дополнительно к кодингу поучить дискретику
Цитата
Во всех вузах на технических специальностях её проходят.

В том то дело что моя специальность далека от технической - я учусь на
экономиста.
Цитата
математика нужна, но не только она, нужно именно фундаментальное образование.

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

Автор: DENNN 1.11.2005, 14:07
Цитата(bel_nikita @ 25.10.2005, 23:18)
И если нужно будет - есть математические справочники.

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

Автор: Siansor 24.11.2005, 20:48
Кто-то из великих сказал "Математику только потому нужна учить - что она ум в порядок приводит"
smile

Автор: LSD 24.11.2005, 20:53
Цитата(Siansor @ 24.11.2005, 20:48)
Кто-то из великих сказал...

Ломоносов

Автор: newalex 24.11.2005, 23:45
По себе сужу - математика нужна. Причем иногда даже те её разделы, о существовании которых и не подозревал.

Автор: COVD 25.11.2005, 16:31
Нужна не только математика, а и законченное высшее образование. Иначе всю жизнь будете обречены доказывать, что вы не верблюд, будь вы хоть трижды "левша" в программировании.

Автор: CosmoMan 4.12.2005, 20:14
Математика большая. У меня был на первом курсе курс математического анализа. Теперь дифуры.
Вот думаю более детально повторить все заново.
С чего лутчше начать основательное изучение математики? Я учился по Фихтенгольцу, но у него все уж больно сложно.
Есть ли что нибудь более доступное для понимания?

Почему для одних математика намного проще, чем программирование, а для других - наоборот?

Автор: Дмитрий Т 28.1.2006, 16:17
Цитата(sts @ 31.10.2005, 19:00)
Я действительно не совсем понимаю те задачи , которые собираюсь решать ,(хотя свои интересы могу назвать уже сейчас-это сеть  и системное программирование)

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

А вот по сетевому программированию посоветую глянуть кросплатформенную С++ библиотеку АСЕ:

http://www.cs.wustl.edu/~schmidt/ACE.html

по ней есть пара русских книг (из Страустроповской серии), а руководство пока только на анг.
Правда книги тяжёлым языком написаны (автор любит сыпать терминами), но библиотека профессиональная (используются последние достижения в программировании на С++, основатель библиотеки профессор, библиотека применяется в крупных компаниях). Так что надо очень хорошо знать С++ перед тем как за неё браться.

Автор: SoWa 28.1.2006, 21:45
Без математики никак.

Автор: Kuber 12.5.2006, 11:11
http://www.bugtraq.ru/library/misc/creative.html

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

Автор: ALKS 15.5.2006, 17:13
эмм... знать глубоко - не нужно. не нужно помнить, например как интеграл береться. не нужно знать как матрецы умножаються. но... нужно уметь определять к какому разделу относиться проблемма. ну например, взглянув на постановку, понять что это комбинаторика. дальше лезим в нэт и книги, вспоминаем азы, читаем типичные задачи, постепенно рожаем понимание какой класс алгоритмов нам нужен и... вуаля. smile вы программист вам не нужно придумывать эфективный алгоритм и математически  его эффективность доказывать. это то чем занимаються учёные-математики в различных областями прикладной или вычислительной математики. вам нужно понять какой алгоритм наиулучшим образом подходит для вашей задачи и применить его.

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

Автор: Kuber 15.5.2006, 17:53
Ты очень правильно пишешь, но к сожалению щас мало кто разберается в математической эффективности алогоритма(даже я сам), так вот берут нужный алгоритм и применяют его к своему случаю.(Думаю ситуация выглядит так, множество не собирается вникать в мат.дебри...) 

Автор: ALKS 16.5.2006, 12:33
ой ну что может быть проще понятия сложности? O( )
просто как правило ввезде пишут какую сложность вычислительную имеет алгоритм в таком вот виде. почему для этого алгоритма сложность именно такая - приводиться не тривиальное мат-доказательство, которое я например не пойму да и понимать не хочу smile но как иначе алогримы между собой сравнивать?

ну smile вычислительная математика ушла очень далеко. как правило для одной задачи существует несколько алгоритмов. какой-то вычислетельно менее сложный, какой-то по памяти менее сложный, какой-то просто запрограммировать проще smile да причем алгоритмам этим уже лет по 20-25 это самым свежим smile

так что выбирать как правило есть из чего smile

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

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

Автор: Tirael 26.5.2006, 11:35
Цитата(Kuber @  15.5.2006,  17:53 Найти цитируемый пост)
Ты очень правильно пишешь, но к сожалению щас мало кто разберается в математической эффективности алогоритма(даже я сам), так вот берут нужный алгоритм и применяют его к своему случаю.(Думаю ситуация выглядит так, множество не собирается вникать в мат.дебри...) 

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

Вот мне интересно, какой более-менее большой проект можно сделать, без знания математики ? 
Те кто говорят, что математика программисту не нужна, пишут HTML странички. И даже, возможно,  получают за это деньги. Но можно ли это назвать программированием......  

Автор: Sunvas 21.6.2006, 21:20
Логика и смекалка надо. А без математики можно прожить. 

Автор: Romikgy 21.6.2006, 21:48
Цитата(Sunvas @  21.6.2006,  20:20 Найти цитируемый пост)
А без математики можно прожить.  

имхо тяжко smile
т.к. сам процессор ничего кроме математики не знает (практически) 

Автор: Sunvas 21.6.2006, 22:31
Цитата(Romikgy @  21.6.2006,  21:48 Найти цитируемый пост)
т.к. сам процессор ничего кроме математики не знает (практически) 

Ну ты еще и про винт и про сидюк вспомни. Они вообще кроме 1 и 0 ничего не умеют. smile  

Автор: Romikgy 22.6.2006, 08:39
Цитата(Sunvas @  21.6.2006,  21:31 Найти цитируемый пост)
Они вообще кроме 1 и 0 ничего не умеют.

воть воть и вспомню, там и нет ничего кроме 1 и 0  !
smile 

Автор: Kuber 10.7.2006, 01:20
Цитата(Tirael @  26.5.2006,  11:35 Найти цитируемый пост)
Это беда недоучек. Берут, используют, а потом удивляются, почему все работает криво, косо, еще и медленно.Вот мне интересно, какой более-менее большой проект можно сделать, без знания математики ? Те кто говорят, что математика программисту не нужна, пишут HTML странички. И даже, возможно,  получают за это деньги. Но можно ли это назвать программированием......  


Можно и называют. Вот так вот! Математика нужна однозначно, она то как раз развивает Логику и Смекалку! 

Автор: Bulat 11.7.2006, 10:20
Цитата(Kuber @  10.7.2006,  01:20 Найти цитируемый пост)
Математика нужна однозначно, она то как раз развивает Логику и Смекалку! 


Верно!

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

Программирование - необходимость, математика - достаточность. (математический анализ smile )
 

Автор: comtat 12.7.2006, 08:17
Полностью солидарен с Bulat'ом без математики не как
Она наш друг и помощник smile 

Автор: Cashey 25.8.2006, 16:01
Цитата(starter @  25.10.2005,  22:37 Найти цитируемый пост)
или кодеру также необходима математика?

имхо - нет

Автор: ManiaK 27.9.2006, 14:15
Математика нужна там, где она нужна. Я вообще не понимаю науки "чистая математика". Для чего она?
Прикладная математика - не просто нужна, она не обходима и об этом, сталкиваясь с проблемами, не спорят - это просто видят. Но прикладная математика (технарская по-другому) по моему мнению - это не справочная математика. Я не ценю профессионально людей, которые пользуются справочниками - они не понимают того, что от туда берут, не понимают, что делают. Поэтому прикладная математика хоть и не то, что сейчас называют "чистая математика", но довольно близкое приближение к ней.

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

Автор: Rodman 22.11.2006, 17:49
Цитата(bel_nikita @  25.10.2005,  22:18 Найти цитируемый пост)
И если нужно будет - есть математические справочники.


этим справочником и должна быть твоя голова...

Автор: popovda 29.12.2006, 00:31
Я сам математик и считаю, что:
а) "Математика ум в порядок приводит"
б) программисту необходим инструментарий, а чаще всего это какой-либо формализованный математический аппарат, но без четкости мышления не обойтись. 

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


Автор: achepkunov 3.1.2007, 05:27
не, у тех, кто ленится стучать по клавишам - сплошные копи-пасты и преременные 1-2-х буквенные все. 

А чистота кода это от правила "любой кусок программы должен быть написан минимум два раза".

Антиофтопик: математика нужна везде, но в разных "обличиях" и всегда вмеру. smile Так же, как и философия.

Сейчас прочел первый пост - вопрос, решил добавить: Для кодера же, конечно, надо знать 1) язык. И родной, и программирования. Обязательно.
2) предметную область. Желательно.

Автор: Artemios 3.1.2007, 17:49
3) булеву алгебру
...
smile

Автор: x3bytes 4.1.2007, 19:00
Обязательно нужна!
Математичиский склад ума не появится без знаний математики.
..
Сейчас уже нету (хотя по-моему и не было) таких программ что обходятся без знаний математики.
Само программирование было создано для решения математических задач.
..
Насчёт меры - просто учи то что тебе надо. На сегодняшний день существуют такие специализации:
Computer Science - разработка новых алгоритмов и решение новых задач по типу расшифровки ДНК.
Исскуственый интеллект - без комментариев
Графика - здесь математики просто пруд пруди
Программинг + БД - здесь нужна relational algebra и другие оптимизационные алгоритмы
Игры - обычно сочетание всего что написано выше.
Операционные системы и компиляторы - тут тоже математика нужна.

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

p.s.
Я программер и нематематик, просто говорю своё мнение по этому поводу. Ни с кем спорить не собираюсь.

Автор: Foxon 4.1.2007, 21:43
мне тоже кажется - что математика нужна. теже самые графы (дискретная математика) - поиск кратчайшего пути - имеет широкое использование в программировании.
конечно что программист без математики - хорошо, но со знанием математика - еще лучше  smile 
и еще вот вы все говорите "математика"  а что под этим понимаете ВСЮ математику или определенные ее части? 


З.Ы. если что не так прошу извенения - я еще маленький программист (я не программист - я тока учусь smile )

Автор: Addmin 5.1.2007, 16:32
А тут всё относительно. Если человек пишет просто полезные утилитки, то высшая математика ему совершенно не нужна. Но, конечно, без знания, что такое умножение и деление, далеко не уедешь smile

Автор: esperant0 5.1.2007, 16:53
Математика нужна програмисту думающему, програмисту реализующему дословно соствленную инструкцию она не нужна.


Имхо програмист без математики это фельдшер, а программист с математикой это врач.

Автор: nerezus 7.1.2007, 19:11
В вебе математика не нужна, к примеру.
Однако нужны навыки, которые она развивает.

Автор: nickless 7.1.2007, 21:56
Конечно нужна, как говорится
Цитата
Математику уже за то любить стоит,что она ум в порядок приводит
М.В.Ломоносов

Автор: KpoHyc 15.1.2007, 02:20
из знаний математики мне пока пригодилась только булева алгебра и все...остальное логика и отнюдь не математическая)

Автор: Materium 17.1.2007, 17:26
Всё просто господа: смотря что вы пишете.
Если вы спутники программируете, то конечно без математического расчёта никуда.
Лично мне пока математика не нужна была для написания CGI сценариев.
Вначале топика была интересная статья про математиков и лингвистов. И действительно, C++, Perl например созданы лингвистами, а не математиками.
Программирование это нечто другое. Программирование оживляет математику. Математика это просто формулы на бумаге. Они статичны, мертвы. Программирование заставляет работать эти формулы.
И тут уже нужен логический склад ума.
У меня с математикой плохо, но в голове могу реально прикидывать замкнутости из замкнутостей и писать прикольные конструкции, потому что с логикой нормально. )))

Автор: Данкинг 17.1.2007, 17:33
Вообще математики не знаю и считать не умею... В программировании у меня лучше получается....

Автор: S.A.G. 17.1.2007, 17:59
На уровне элементарного нужна. А вообще - в зависимости от задачи.

Автор: bartram 17.1.2007, 21:38
в программировании игр точно нужна, в прикладном программировании вряд ли понадобится, хотя смотря в каком smile

Автор: comtat 27.1.2007, 21:12
2 Voventus
реально в текущий момент веду разработку ГИС системы, где без математики (Алгебры, Геометрии, Матана) не как не возможно, т.к. все основано только на чистой математике

Знание математики очень нужно программисту, 
это становиться явным когда сталкиваешься с проблемой лицом к лицу  smile 

Автор: Kvazilol 16.2.2007, 02:59
все говорят математика нужна, математика ум в порядок приводит, а вы наверное имеете ввиду простую тривиальную школьную математику, которую все и так знают (основы логики. комбинаторики, теории вероятности кое как, но в моей школе проходились).. ну зачем нужно например вам пригодится дифференцирование и всё с ним связанное? ну и школьнику понятно что если x=vt то скорость скачки он какнибудь посчитает, типа Speed = AdditionalData.Lenght / EsplasedTime;
вобщем я считаю что обычной детской математики более чем достатоно чтобы человек имел свободу и представлял с чем меет дело (а стал бы он вообще заниматься программированием еслиб не понимал его математичского устройства!? врядли!)

да, важно, конечно, в чём задача. можно сказать надо те ВОТ ЭТУ область изучить, ну так скачай, прочитай изучи её..
наверно подумаете что я такой двоечник, отвергаю всякие глубокие знания, но.. лично мое изучене математики, программирования главным образом заключаетя в том что я узнаю что это такое и где об этом можно узнать. а когда много узнаеш о программировании или мтематики то даже не зная как вот это устроено или вычисляется ты будеш обладать силой потому что у тебя как бы есть в голове множество Reference-ов на многие знания... которые ты теперь быстро найдеш 
 smile 

Автор: Rodman 16.2.2007, 11:45
Цитата(Kvazilol @  16.2.2007,  01:59 Найти цитируемый пост)
заключаетя в том что я узнаю что это такое

Kvazilol, какое то противоречие...

Автор: Qawra 6.3.2007, 19:00
Извините что я присоединяю свой вопрос к этой теме .Для поступления в европейский университет на специальность " COMPUTER SCIENCE & ARTIFICIAL INTELLIGENCE "  требуют Pure match и Computing  на уровне не ниже Advanced  ( C ) .Я нашла в интернете список литературы для подготовки к Computing Advanced а для Pure match Advanced найти не могу .Не могли бы вы  подсказать какие книжки к этому уровню надо изучать   и   можно ли их будет где-нибудь  скачать ....Может быть какой-нибудь есть специализированный форум (русскоязычный или англоязычный не важно )
посвященный изучению математики , но  я его просто найти не могу !

Автор: Addmin 8.3.2007, 14:09
Qawra, это высшая математика smile По-моему, в любом букинистическом магазине книгу по высшей математике можно и купить.

Автор: Qawra 10.3.2007, 23:42
Книжек конечно в магазинах много smile В интернете   их доступных для скачивания  еще больше лежит ! Правда то что мне нужно пока найти не удалось .Это  
    Bostock L, Chandler S     Mathematics - The Core Course for A-Level 
(Stanley Thornes) ISBN 0 85950 306 2

и 
    Curmi F, et al        Pure Mathematics 2A
(Indigo Books) ISBN 99932 46 06 9
    
Заказывать книги по почте я не люблю .В интернете всегда ищу  smile

Автор: Addmin 11.3.2007, 09:22
Поищи на medigo.ru или poiskknig.ru.

Автор: Qawra 12.3.2007, 23:20
Я у них поискала но ничего нашла.Знакомые достали в оригинале Mathematics - The Core Course for A-Level  на одну неделю с возвратом . Там почти 800 страниц которые я видимо буду сканировать завтра   smile  А вот вторую книжку пока найти не удалось .Там оказывается должна быть не одна а две книжки :
Curmi F, et al        Pure Mathematics 2A
И
Curmi F, et al        Pure Mathematics 2В

Автор: Addmin 13.3.2007, 04:12
Qawra, неужели так хочется в европейский университет? smile

Автор: Qawra 13.3.2007, 11:43
А я живу в Европе поэтому других университетов тут нет  smile 
Теперь вот придется  2 года учить высшую математику а потом по результатам экзамена  буду поступать в университет .За это время я может быть и передумаю туда поступать ...

Автор: Addmin 13.3.2007, 12:23
Qawra, тогда желаю удачи! smile От себя могу попробовать помочь лишь ссылкой:

http://www.mathelp.spb.ru/ - помощь в подготовке студентам в изучении высшей математики. Также есть с десяток книжек, которые можно скачать - http://www.mathelp.spb.ru/magazin.htm. Они бесплатные и довольно компактные smile Есть лекции.

Добавлено @ 12:26 
А насчёт Advanced Computing - ты просто повращайся побольше на этом форуме, и никаких книжек не надо будет smile

Автор: Qawra 14.3.2007, 23:09
Спасибо .Я пока 800 страниц учебника откопировала успела даже  к графикам функций привыкнуть   smile Ничего  супер сложного видимо в высшей математике нет .

Автор: mikla 16.3.2007, 20:54
Цитата(Qawra @ 14.3.2007,  23:09)
Ничего  супер сложного видимо в высшей математике нет .

нуну.... все "очень просто".. желаю удачи smile 
А вообще математика нужна всем, математика основа всего ;-) учите математику) 

Автор: Qawra 18.3.2007, 22:48
Цитата
А насчёт Advanced Computing - ты просто повращайся побольше на этом форуме, и никаких книжек не надо будет


К сожалению только  вращаясь на форуме к экзамену не подготовиться.Там есть определенный список литературы которую надо  освоить .Плюс надо будет  сделать и защить  проект по программированию .

Автор: TupleCa 29.8.2007, 20:33
Цитата(Materium @  17.1.2007,  17:26 Найти цитируемый пост)
Математика это просто формулы на бумаге


НЕА

Автор: ruX 6.10.2007, 21:14
ИМХО

Математика программисту нужна по ходу, но никак не первостепенно.

Посадить состоявшегося программиста за математику - он сможет разобратсья скорее всего, хотя бы потому что мыслит так, пусть будет "математически"
А посадить математика ща программирование ещё не факт что вскоре у него что либо может получитсья. Часто математики дальше формул ничего не видят. Не в обиду.

Например вот в школе/универе как правило первая программа которую заставляют писать это что нить типа нахождение среднего числа, гипотенузы и тд.. Следующая работа - опять полностью математика. (кстати часто это отталкивает народ от написании программ - ибо нет "живого" результата - ничего нигде не появлется, не шипит, не пищит и не мигает) И так продолжается...
Дальше - олимпиады школьные/студенческие по "информатике". Те кто решал их прекрасно знают о том что там практически всё операется на математику. И условия задач такие что область знаний математики которую они затрагивают вряд ли вообще когда нибудь придётся применить.
Сам видел: люди, достигшие больших успехах в такого рода олимпиадах(по информатике -> математике на компьютере) практически сразу опускают руки когда дело доходит до того чтоб написать программу которую будет использовать человек.

Я заинтересовался математикой после программирования, когда я почувствовал что мне для написании чего то нехватает знаний именно математики.

Автор: Aazmandius 7.10.2007, 01:37
Цитата

люди, достигшие больших успехах в такого рода олимпиадах(по информатике -> математике на компьютере) практически сразу опускают руки когда дело доходит до того чтоб написать программу которую будет использовать человек


это точно, сам не раз такое наблюдал smile А что касается нужности математики - скорее нужны ее некоторые области. Да и то - смотря чем программист занимается, это ведь понятие растяжимое smile Сомневаюсь, что товарищу, который разрабатывает, скажем, веб-системы, позарез нужна математика. И наоборот - в 3д графике без аналитической геометрии много не напишешь... Так что для начала определиться нужно, чем конкретный программер занимается, а потом определять, нужна ли ему математика, и какой ее вид конкретно. Лично я вышку в универе на 5 сдал и благополучно забыл - ни разу она мне не пригодилась... вот дискретка - эт другое дело, частенько приходилось в старые конспекты заглядывать smile Хотя для общего развития, так сказать, математика нужна безусловно. Ее большое достоинство - она учит думать.

Автор: Се ля ви 15.10.2007, 11:02
Вот вы тут всё спорите, а я взялся за вопрос с практической стороны. Из одной моей хорошей знакомой-гуманитария делаю программиста, занимаюсь индивидуально каждую неделю... smile Уверен, что всё получится!

Автор: esperant0 15.10.2007, 22:36
Цитата(Се ля ви @ 15.10.2007,  11:02)
Вот вы тут всё спорите, а я взялся за вопрос с практической стороны. Из одной моей хорошей знакомой-гуманитария делаю программиста, занимаюсь индивидуально каждую неделю... smile Уверен, что всё получится!

Как это связано с сабжем?

Добавлено через 2 минуты и 57 секунд
Цитата(ruX @ 6.10.2007,  21:14)
 Посадить состоявшегося программиста за математику - он сможет разобратсья скорее всего, хотя бы потому что мыслит так, пусть будет "математически"
А посадить математика ща программирование ещё не факт что вскоре у него что либо может получитсья. Часто математики дальше формул ничего не видят. Не в обиду.

 

Все как раз наобороь. Но что бы со мной согласиться вы должны быть математиком. Иначе как в анекдоте, мне шаляпин не понравился мне его вчера Сидоров напел.

Автор: Се ля ви 15.10.2007, 23:38
Цитата(esperant0 @  15.10.2007,  22:36 Найти цитируемый пост)
Как это связано с сабжем?

Она и школьную математику помнит не очень хорошо и научить её высшей не представляется возможным. Так что придётся обходиться без неё smile

Автор: morfus 17.10.2007, 16:25
Зависит от задачи, знаю я математику, но в web-сегменте никогда ничего больше 5-го класса средней школы (десятичные дроби) не понадобилось...

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)