Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Программирование и математика. Очень общий вопрос.

29K
27 сентября 2008 года
EXAngel
29 / / 08.07.2008
Здравствуйте.

Объясните мне пожалуйста в каком объеме и какие разделы математики используются в программировании?

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

Я начал с С++ (так сказать матчасть) с прицелом на PHP.
551
27 сентября 2008 года
Pavia
357 / / 22.04.2004
Все используются.
Ты давай конкретную облость.
Математика она вся используется, все разделы.

Геометрия изпользуется в компьюторной графике.
Работа с матрицами используется во всех расчетах.
Преобразование фурье в обработки сигналов.
Теория графов тоже выскакивает много где.
Теория оптимизации сама в себе и повсюду.
Дифференциальные вычисения, применительно к описанию динамических процессов.
1.9K
27 сентября 2008 года
andriano
474 / / 10.01.2008
В первую очередь теория алгоритмов, математическая логика и т.п.
Но здесь, мне кажется, не совсем верно поставлен вопрос. И, главное, это симптоматично.
Многие начинающие программисты почему-то считают, что для того, чтобы написать программу, нужно уметь программировать.
Это условие необходимое, но не достаточное.
Для того, чтобы написать книгу, мало уметь писать буквы и складывать их в слова. Нужно еще, как монимум, два фактора:
1. Умение внятно излагать свои мысли.
2. Наличие тех самых мыслей, которые предполагается изложить.
И в программировании - все то же самое: необходимо хорошо разбираться в предметной области, в которой будет работать программа (скажем, в области физики, акустики, биоакустики, физиологии слуха, ТФКП, дифференциального и интегрального исчисления, если пишется звуковой редактор), с другой - обладать собственными идеями, которые нуждались бы в программной реализации.
Умение программировать - это всего лишь умение писать буквы. Одного его явно недостаточно.
29K
27 сентября 2008 года
EXAngel
29 / / 08.07.2008
Я понял, уточню.
С++ изучаю как базу. После него буду изучать PHP, соответственно для создания сайтов (веб-программирование).
Соответсвенно и мат. знания нужны ближе к этой области.
63
27 сентября 2008 года
Zorkus
2.6K / / 04.11.2006
Цитата: andriano

1. Умение внятно излагать свои мысли.
2. Наличие тех самых мыслей, которые предполагается изложить.
И в программировании - все то же самое: необходимо хорошо разбираться в предметной области, в которой будет работать программа (скажем, в области физики, акустики, биоакустики, физиологии слуха, ТФКП, дифференциального и интегрального исчисления, если пишется звуковой редактор), с другой - обладать собственными идеями, которые нуждались бы в программной реализации.
Умение программировать - это всего лишь умение писать буквы. Одного его явно недостаточно.


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

5
27 сентября 2008 года
hardcase
4.5K / / 09.08.2005
Цитата: EXAngel
Объясните мне пожалуйста в каком объеме и какие разделы математики используются в программировании?


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

Пожалуй единственная математическая теория имеющая непосредственное отношение к программированию - это теория языков программирования. Все остальное цепляется к программированию через неё.

Цитата: EXAngel
Я начал с С++ (так сказать матчасть) с прицелом на PHP.

Зря вы это затеяли... зря. Есть более удачные языки для изучения, Boo/Python хотябы или C#/Java.

Мой совет. Выкидывайте C++ и PHP они вас ничему хорошему (хорошему стилю!) не научат.

1.9K
27 сентября 2008 года
andriano
474 / / 10.01.2008
Цитата: Zorkus
А как же разделение труда?
...
Нет никакой нужны в специалистах, умеющих делать все это одновременно.


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

63
27 сентября 2008 года
Zorkus
2.6K / / 04.11.2006
Цитата: andriano
Как говорится, не следует выплнескивать ребенка вместе с водой.
Программист может не уметь рисовать, а дизайнер может не уметь программировать, но оба они должны иметь представление о физике звука, иначе результат будет далек от ожидаемого: интерфейс будет красив, но неудобен, а используемые алгоритмы будут вносить искажения в обрабатываемый сигнал (вспоминаю, например, дискуссии по поводу того, что линейную интерполяцию при пересчете на другую частоту дискретизации лучше заменить на сплайн. Очевидно, метод интерполяции - прерогатива именно программиста, а не физика.).


Знания любого профессионала имеют пик и расходятся вниз от его вершины -- конечно, любой программист имеет представление о физике, математике etc.
Но в вашем примере -- красивость и удобство дизайна - это все задача дизайнера. Чтобы он был функцинален -- дизайнер должен знать возможности, которые должна предоставлять программа на общем уровне. Для этого есть SRS-документы + консультации с другими специалистами + консультации с пользователями, профессионами в области работы со звуком.
Так же определение метода интерполяции -- это как раз таки задача физика и математика. Задача программиста здесь:
- грамотная реализация самого метода по его точному описанию
- высококачественный код
- разработка API для интеграции с другими компонентами программы
и тому подобное.

87
27 сентября 2008 года
Kogrom
2.7K / / 02.02.2008
Цитата: hardcase
Зря вы это затеяли... зря. Есть более удачные языки для изучения, Boo/Python хотябы или C#/Java.

Мой совет. Выкидывайте C++ и PHP они вас ничему хорошему (хорошему стилю!) не научат.


Что-то опять я мысль не понял. Зачем для изучения PHP вначале учить другой язык? Чем это поможет?

Про математику: а как же алгебра логики?

5
27 сентября 2008 года
hardcase
4.5K / / 09.08.2005
Цитата: Kogrom
Зачем для изучения PHP вначале учить другой язык? Чем это поможет?

Где я сказал что нужно изучать нечто перед тем как изучать PHP? Я сказал


Аха. И она тоже :) Но в меньшей мере. Если(условие) и без нее понятно бывает.

1.9K
27 сентября 2008 года
andriano
474 / / 10.01.2008
Цитата: Zorkus
Знания любого профессионала имеют пик и расходятся вниз от его вершины -- конечно, любой программист имеет представление о физике, математике etc.

Твоими бы устами да мед пить!

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

Он должен ПОНИМАТЬ задачи, ешаемые при помощи программы и способы их достижения.

Цитата:
...+ консультации с пользователями, профессионами в области работы со звуком.

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

Цитата:
Так же определение метода интерполяции -- это как раз таки задача физика и математика. Задача программиста здесь:
- грамотная реализация самого метода по его точному описанию
- высококачественный код
- разработка API для интеграции с другими компонентами программы
и тому подобное.

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

260
27 сентября 2008 года
Ramon
1.1K / / 16.08.2003
[QUOTE=hardcase]
Не те это языки для начального изучения программирования.
[/QUOTE]
Язык не имеет значения для "начального изучения программирования", впрочем как не существует ни "начального изучения программирования" ни "конечного".

[QUOTE=hardcase]
Выкидывайте C++ и PHP они вас ничему хорошему (хорошему стилю!) не научат.
[/QUOTE]
Стиль же зависит не от языка, а от идиота, который на нем пишет.

Возвращаясь к теме. Выбрав область работы, инструмент выбирается приемлимый и что не менее важно - широко применяемый в данной области. Математика же в программировании в чистом виде встречается крайне редко, посему достаточно знать к чему или к кому обратиться в случае сей крайней необходимости.
1.9K
27 сентября 2008 года
andriano
474 / / 10.01.2008
Цитата: Kogrom
Что-то опять я мысль не понял. Зачем для изучения PHP вначале учить другой язык? Чем это поможет?

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

63
27 сентября 2008 года
Zorkus
2.6K / / 04.11.2006
Цитата: andriano
Твоими бы устами да мед пить!


А что, не так?

Цитата:
Он должен ПОНИМАТЬ задачи, ешаемые при помощи программы и способы их достижения.


Понимать - да. Быть на одном уровне с профессионалами
предметной области - нет. Посуди сам: если бы программисты могли в любой области, где они пишут программы, обретать знания эквивалентные знаниям соотв. профессионалов в этой специальной области, зачем вообще бы нужны были последние? :) Зачем бы был нужен кроме кто-то программистов? :D

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


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

Цитата:
Если проект будут делать несколько сотен человек, наверняка он будет коммерчески провальным (затраты не окупятся), если же коллектив будет состоять примерно из 10 человек, то вряд ли среди них будет более одного программиста, вынужденного также совмещать профессии кодера, алгоритмизатора, составителя ТЗ на программную часть, а заодно и математика.


Все проекты, в которых больше сотни человек -- провальные???
А парни-то и не знают:D
Последний предложенный тобой вариант с ролями в команде из 10 человек мне кажется диковатым.

87
27 сентября 2008 года
Kogrom
2.7K / / 02.02.2008
Цитата: hardcase
Зря вы это затеяли... зря. Есть более удачные языки для изучения, Boo/Python хотябы или C#/Java.

Мой совет. Выкидывайте C++ и PHP они вас ничему хорошему (хорошему стилю!) не научат.


Может в этих словах и есть смысл, жаль нет доказательств :)
Насколько я понял из намеков, синтаксис этих языков не позволяет компилировать программы, содержащие ошибки стиля.

Не знаю. Может тоже что-то из этого изучить для понятия уровня стиля. Тем более, что andriano сказал, что "любой язык потом можно будет освоить за 2 недели". Вдруг я уже достиг этого "потом" :)

29K
27 сентября 2008 года
EXAngel
29 / / 08.07.2008
C++ выбрал т.к. давно читал "С++ для Чайников" усвоил примерно 70% материала.
Ещё из-за его супер-мега-крутизны :)
Но основная причина это то, что PHP и Java(javascript) похожи на C++.

Почему не начал изучать сразу PHP, на данный момент не нашёл правильного учебника.
Я купил "ООП в С++. Р.Лафоре 4-е издание 2007". Отзывы очень положительные.
(Страуструпа на начальном этапе не предлагать :) )

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

У меня пока 0 опыт программирования и я не могу поспорить с профессионалами. Но мне кажется сложность С++ преувеличена, если подобрать грамотный учебник сложность будет не намного выше.
Зато крепкие фундаментальные знания.
63
27 сентября 2008 года
Zorkus
2.6K / / 04.11.2006
Цитата: EXAngel

Но основная причина это то, что PHP и Java(javascript) похожи на C++.


Хочу гранатомет и в партизаны...

Цитата:
Почему не начал изучать сразу PHP, на данный момент не нашёл правильного учебника.


Ерунда.
Изучать PHP не стоит по гораздо более серьезным причинам ;).

Цитата:
Для меня сейчас более важно выучить не синтаксис какого-либо языка, а понимание сути программирования, ознакомление с базовыми алгоритмами, ООП, техникой написания программ.



+1.

5
28 сентября 2008 года
hardcase
4.5K / / 09.08.2005
Цитата: EXAngel
Ещё из-за его супер-мега-крутизны :)


:D

Цитата: EXAngel
(Страуструпа на начальном этапе не предлагать :) )

Прально. Книжка трупа страуса отлично подходит для растопки камина, но только не для обучения человека.

Цитата: EXAngel
Для меня сейчас более важно выучить не синтаксис какого-либо языка, а понимание сути программирования, ознакомление с базовыми алгоритмами, ООП, техникой написания программ.

Хорошая цель. Жаль, что вас ждет адское разочарование в ООП в C++.

Цитата: EXAngel
Но мне кажется сложность С++ преувеличена

Нисколько. Вы еще не наступали на грабли с конструктором копирования? А с наведенными "странными" ошибками по причине неправильной работы с памятью? Ничо! Все впереди! :)

Цитата: EXAngel
Зато крепкие фундаментальные знания.

Может быть. Зависит только от вас.

87
28 сентября 2008 года
Kogrom
2.7K / / 02.02.2008
Цитата: EXAngel
У меня пока 0 опыт программирования и я не могу поспорить с профессионалами. Но мне кажется сложность С++ преувеличена, если подобрать грамотный учебник сложность будет не намного выше.


Я более 1,5 года изучаю его - до сих пор свой уровень оцениваю как начальный (правда, это не мешает мне писать сравнительно большие программы). Однако, я ленив и долго занимался написанием кривых и страшных кодов на Паскале (Дельфи).

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

29K
28 сентября 2008 года
EXAngel
29 / / 08.07.2008
Цитата:
Нисколько. Вы еще не наступали на грабли с конструктором копирования? А с наведенными "странными" ошибками по причине неправильной работы с памятью? Ничо! Все впереди!


Думаю вы правы :)

Цитата:
Изучать PHP не стоит по гораздо более серьезным причинам


По каким?

Я только не понял в каком контексте критикуются C++, PHP? Как первый язык или вообще?
И тогда какие им альтернативы, конкретно С++, конкретно PHP.

3
28 сентября 2008 года
Green
4.8K / / 20.01.2000
Цитата: hardcase

Хорошая цель. Жаль, что вас ждет адское разочарование в ООП в C++.


Как, впрочем, и в любом другом языке программирования. :)

5
28 сентября 2008 года
hardcase
4.5K / / 09.08.2005
Цитата: Green
Как, впрочем, и в любом другом языке программирования. :)

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

63
28 сентября 2008 года
Zorkus
2.6K / / 04.11.2006
Цитата: Kogrom

...
Но тут лучше Zorkus знает.


Я чувствую, что уже не вполне объективен :).
Да С++ знаю сам на начально-среднем уровне, потому никаких сравнительных анализов делать не стану.

535
29 сентября 2008 года
Нездешний
537 / / 17.01.2008
Руки прочь от С++ !!! :D

Про математику: курс матанализа всяко стоит усвоить хотя бы для "вставки" мозгов.
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог