Подтвердить что ты не робот

Математика, программирование и обучение

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

В моем недавнем исследовании программирования я все больше и больше желал, чтобы я лучше разбирался в математике. Вы все знаете сценарий, когда книги по программированию начинают обобщать что-то математически ( "Поэтому мы можем сказать, что для всех <some single letter>, <lots of letters>" ). Мои глаза глазуют в таких ситуациях. Я знаю, что это в основном из-за того, что я глуп, но кажется, что если бы я мог просто улучшить свои высшие математические навыки, возможно, я мог бы получить больше от таких вещей.

Основной вопрос: Является ли математика действительно чем-то, на что можно "поправиться", или это ваш мозг, который либо подключен к нему, либо нет?

Важный последующий вопрос: если ответ на вышеизложенное да, то каковы некоторые способы его решения?

4b9b3361

Ответ 1

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

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

Некоторые рекомендации:

  • Если вы можете найти копию, получите Mathematica и хорошую книгу о ней (схема Шаума на самом деле довольно хорошая и дешевая). Я все время использую его для визуализации вещей.

  • Как программист, вы, вероятно, хотите больше ориентироваться на дискретную математику, чем на исчисление.

  • Книга Бетонной Математики, упомянутая в другом месте, превосходна.

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

  • Линейная алгебра полезна, если вы собираетесь делать 3D-графическое программирование. Большинство вступительных текстов для инженеров научат вас тому, что вам нужно знать. Линейная алгебра Done Right, вероятно, является лучшей в "реальной" линейной алгебре, если вы хотите что-то более теоретическое.

  • Ищите книги Мартина Гарднера и играйте со своими головоломками. Он отличный писатель и учитель.

Помните, что математика не так сильно изменилась. Вы можете использовать книги по дешевке на Amazon и в используемых книжных магазинах. Я всегда ищу версию n-1, когда я покупаю учебники.

Ответ 2

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

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

Математика просто такая. Ваши глаза затуманиваются, потому что вы не изучили язык. Возможно, в школе вы не особенно любили математику, потому что вы не видели никаких практических приложений для нее. Конечно, способ, которым мы преподаем математику нашим ученикам, ужасен, поэтому неудивительно, почему многие проходят школу, не будучи хорошо разбирающимися в ней (для дальнейшего чтения, проверьте The Mathematicians Lament, в котором обсуждается, насколько ужасен наш нынешний метод преподавания математики).

Тем не менее, никогда не поздно освоиться до уровня профессионализма, который позволит вам читать многие научные статьи в области компьютерных наук. Начинайте с Pre-Calculus в местном колледже в ночное время (чтобы освежить все, что вы забыли). Затем перейдите к Исчислению и после этого возьмите дискретную математику. Честно говоря, это все математика, вам понадобится 99,99% времени. Менее чем в 2-3 семестра вы можете быть полностью пойманы, и у вас больше не будет глаз, когда вы будете читать что-то с некоторыми математическими корнями.

Ответ 3

Я могу поделиться своим опытом...

Я был в ужасе от математики со школы. Ненавидел его, не понял, не преследовал его.

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

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

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

Сейчас я изучаю разработку игр, и это - какое-то серьезное математическое программирование. ПУТЬ больше, чем развитие бизнеса, которое я делал до сих пор. Тем не менее, я не считаю это таким сложным, потому что он применяет математику. Работа по решению практических проблем, по-видимому, делает исследование менее утомительным и гораздо более интересным. Я нашел Wikipedia и Wolfram Mathworld полезными. Если вы уже знаете, как программировать, вы опережаете математику обучения игре.

Ответ 4

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

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

Ответ 5

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

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

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

Ответ 6

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

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

Я также покупаю интересные учебники в магазинах подержанных книг. Их дешево и медленно ваши навыки улучшаются. Я использую их совместно с MIT Open Course ware.

Ответ 7

Увлекательный способ практиковать математику http://projecteuler.net/. Хотя это менее систематично/эффективно, чем делать курс или читать учебник.

Ответ 8

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

Математика - это то, чему каждый может научиться. Некоторые утверждают, что с возрастом становится все труднее, но я встречал людей, которые продолжали работать на 60, которые легко справляются с занятиями по математике. Там одна женщина в моем университете, которая собирается в течение 70 лет, и она несколько месяцев после окончания со степенью в области математики. Если вы хотите научиться математике, то сейчас самое подходящее время, хотя я буду первым, кто скажет, что это непросто. В то время как вы обнаружите, что многие проблемы чрезвычайно легки в процессе программирования, вы все равно обнаружите, что при решении ряда проблем требуется много времени из вашего дня. Я почти закончил курс MIT OpenCourseWare по линейной алгебре, а затем получил новую работу на неполный рабочий день, работая 10 часов в день, 7 дней в неделю и забыв большую часть того, что узнал.

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

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

Ответ 9

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

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

Дискретная математика также предоставляет вам проблемы программирования, о которых вы, возможно, и не подумали. Возможно, вы можете взломать хорошую эвристику, чтобы решить NP-полную проблему, такую ​​как проблема N-city Traveling Salesman. Возможно, даже придумайте пару решений и проверьте, какие из них лучше всего работают в этих обстоятельствах.

(Я никогда не брал уроки CompSci в колледже. Вероятно, вы можете сказать.)

Ответ 10

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

Ответ 11

Прежде всего, я бы порекомендовал Steve Yegge Math For Programmers. Это в значительной степени подводит итог вашей борьбе.

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

Ответ 12

1) Да.

2) Изучите математические вопросы, которые кажутся интересными. Покупайте/читайте книги, которые дают вам необходимую информацию. Повторить.

Ответ 13

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

Рекомендуемые курсы:

  • Дискретная математика
  • Математическая мысль
  • Абстрактная алгебра
  • любые другие курсы проверки

Рекомендуемая книга:

  • Гайки и болты доказательств, Антонелла Куллильяри

Я настоятельно рекомендую взять один или несколько из этих курсов в какой-то школе. Найдите локальный колледж и проверите курс.

Ответ 14

Второе голосование за Локхарта "Математический плач", в котором рекомендуется, чтобы математика преподавалась как живопись, поэзия или музыка - не для этого практическая полезность, а для простого удовольствия:

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

Посмотрите на диаграммы в недавней бумаге Кнута, Dancing Links, и скажите, что он не получал удовольствия от этого.

Ответ 15

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

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

Так или иначе, только потому, что ваши глаза глазуруют, не означает, что вам нужно сдаться. В первый раз, когда вы увидите уравнения, вы, вероятно, будете читать текстовый текстовый режим и должны сделать паузу, чтобы рассмотреть их. Двигаясь над ними медленно и обращая внимание на то, что все символы означают один шаг за один раз, может дать вам ответ. Если есть какие-то обозначения, которые вы не видели раньше, возможно, есть глава или приложение, в которых описываются обозначения, поэтому проверьте там. Наконец, ищите другие источники. Используйте google/wikipedia, чтобы найти уравнения для концепции, и вы можете найти вывод и/или доказательство, за которым вы можете следовать. Кроме того, другой может помочь вам лучше понять текущие доказательства/деривации. Даже если ваше понимание доказательства/вывода не улучшится, ваши дополнительные исследования, вероятно, помогут вам понять уравнение.

Ответ 16

Я думаю, что есть две вещи для изучения математики: 1. Изучение общих техник. Т.е. как добавить две фракции, как дифференцировать, интегрировать. 2. Изучение проблемы решает и применяет математику к реальному миру.

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

Чтобы узнать 2, я думаю, что математические учебники не помогают, поскольку каждый раздел имеет проблемы, связанные с этим разделом. Иногда есть несколько проблем с "смешанным обзором" или "обзор главы", который смешивает проблемы, но они, как правило, находятся далеко между ними. Научные учебники, такие как физика, биология, химия и т.д., Как правило, лучше для этого. Там вы часто читаете проблему, выкладываете ее и в конечном итоге используете множество математических инструментов для ее решения. Иногда исчисление, линейная алгебра и геометрия находятся в одной и той же проблеме. Значение здесь в том, что он учит вас решать проблему. Как правило, SAT/GRE не тестируют, знаете ли вы, как делать алгебру, они тестируют, если вы знаете, как применять ее к реальному миру, и научная проблема действительно поможет вам здесь. Также программирование в целом касается решения проблем, и чем лучше вы решаете проблему, тем лучше вы будете программировать. В основном в программировании вы принимаете проблемы, создаете ментальную модель, разрабатываете решение, а затем моделируете его на выбранном вами языке программирования. Это похоже на физику. Вы смотрите на проблему, извлекаете математическую модель, разрабатываете решение, даете некоторые уравнения с моделью решения, затем включаете числа. Я настоятельно рекомендую физику, потому что после того, как мои слова в классе физики колледжа стали простыми для меня, и они использовали быть довольно сложным (хотя и не невозможным).

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

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

Ответ 17

Мне нравится комбинаторика и алгоритмы - с удовольствием вы учитесь быстрее.

Ответ 18

исследование исследования!

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

Ответ 19

практика практической практики!

Шаумские контуры хороши для этого. Если вас интересует вероятность (которая касается комбинаторики), см. 50 "Проблемы с вероятностью вероятности".

Ответ 20

Краткий ответ:
Могут быть люди, которые глупы, чтобы получить хорошую математику. Но эти люди, как правило, тоже глупы, чтобы программировать.

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

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

Ответ 21

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