Чистая и прикладная математика для программистов [закрыто]

13

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

Мой вопрос заключается в следующем: от какой математической дисциплины будущий программист получит больше пользы? Прикладная математика или чистая математика?

Мне нравится учить себя, и я уверен, что смогу научиться быть хорошим программистом, но я все еще планирую получить образование в CS!

Joose
источник
16
Если вы всегда находили математику «легкой», я полагаю, вы еще недостаточно далеко.
Марк С
Проще говоря, относительно того, как это находят другие люди.
Джус

Ответы:

12

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

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

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

Но в целом, чем больше прикладной математики вы знаете, тем лучше.

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

В принципе, вы не ошибетесь в любом случае.

joe_coolish
источник
Разработка игр не повредила бы моим чувствам, но я слышал, что это непростая задача. И я не могу себе представить, что отсутствие степени CS поможет моим шансам.
Joose
Разработка игр очень конкурентоспособна. Вы были бы удивлены. Особенно со всеми приложениями iOS, Android, WP7, набирающими популярность. Было намного сложнее войти (как профессиональные 3D-аниматоры. Это было моей мечтой до CS), но мобильная арена открыла новые двери. В любом случае, с разработкой программного обеспечения, если у вас есть навыки, найти работу не проблема. Я заканчиваю через 2 месяца, и мой консультант говорил мне, что наш отдел CS. имеет 100% трудоустройство для своих выпускников. Это число типично для крупных университетов и
колледжей
4

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

Это действительно зависит от области, в которую вы входите.

Джон Боде
источник
Очень верно. Но продвинутая математика пригодилась один раз, и, вероятно, пригодится еще как минимум еще до того, как вы уйдете на пенсию. Где, как мой класс подводного плетения, еще не доказал свою полезность в моем опыте. По сути, чем больше математики, тем больше инструментов вам нужно для решения проблем. Это никогда не плохая идея, чтобы взять больше математики
joe_coolish
И есть степень, в которой вы можете изучать то, что вам нужно, когда вам это нужно, особенно если у вас уже есть сильные математические знания. Я изучал CompSci, но когда на своей первой работе мне нужно было знать сферическую геометрию, я пошел и провел немного времени в библиотеке моего старого колледжа, чтобы почитать об этом.
Питер Тейлор
@joe_coolish Разве ты не знал? Они ищут экспертов в этой области, чтобы помочь с Underwater Basketweaving Simulator 2011.
Maxpm
3

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

Дейв
источник
2

Думаю, я бы порекомендовал какой-то баланс.

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

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

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

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

Майк Данлавей
источник
2

Я заканчиваю степень по чистой математике в настоящее время, но я также потратил много времени, работая в исследовательских проектах прикладной математики. Хотя каждая дисциплина проводит свои собственные культурные границы, различие между чистой и прикладной математикой часто более неуловимо, чем мы хотели бы признать. До недавнего времени в истории математики почти вся математика была тем, что мы сейчас называем «прикладной математикой». (Предоставьте исключение для теории чисел, если хотите.) Иногда границы тоже сдвигаются. Один из моих исследовательских интересов был мотивирован чрезвычайно «прикладной» проблемой, соответствующей реальной физической системе, но вырос, чтобы охватить центральные методы из теории полугрупп и формального языка, относительно «чистые» темы. Помните, что даже Гаусс, принц чистого, часами вычислял орбиту Цереры вручную.

Очень сложно сказать намного больше о вашей ситуации без конкретных подробностей о курсовой работе и возможностях исследования, но было бы справедливо сказать, что прикладная математика даст вам гораздо больше опыта в программировании. Это не значит, что в «чистой математике» нет вычислительных проблем (они есть!), Но это не будет подчеркнуто, и вам придется искать их самостоятельно. С другой стороны, кажется, что большинству людей легче перейти от чистого к прикладному и наоборот. Здесь есть много возможностей для смешивания переменных, но это может дать вам паузу.

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

Вы должны научиться распознавать свои собственные склонности и нежелания и перенаправлять их.

wvoq
источник
1

Чистая математика, безусловно. В частности, дискретная математика и математическая логика.

Математический факультет Университета Иллинойса имеет интересную программу MS под названием Applied Math (Теория вычислений). Это совместная программа между отделом математики и отделом CS. Это может быть то, что вы хотите, но это программа для выпускников.

Пол Райнерс
источник
В качестве специалиста по прикладной математике (по крайней мере, в университете, в который я собираюсь поступить) мне придется пройти курс дискретной математики. Я заметил, что есть много курсов, перечисленных как Pure и Applied.
Joose
Дискретная математика необходима!
Морган Херлокер
1

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

Я предполагаю, что это «чистая» математика, но я никогда не думал об этом так - она ​​была настолько сфокусирована на компьютерах, что вычислительная математика была действительно хорошим описанием.

bethlakshmi
источник
1

Если вы думаете о финансовой карьере: статистика, анализ, PDE, симуляции Монте-Карло (и разные "математические (псевдо) случайности"), алгебра.

quant_dev
источник
У меня нет намерений работать в финансовой сфере. :)
Joose
Молодец :)
quant_dev
++ Они ценны гораздо больше, чем финансы.
Майк Данлавей
1

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

Омега Центавра
источник