Я программист-самоучка. Я, честно говоря, не очень хорош в математике. Какой совет вы можете дать, чтобы улучшить свои математические навыки, чтобы я не чувствовал себя так неуверенно среди моих коллег-программистов? Какие шаги или рекомендации вы можете порекомендовать для улучшения моих математических навыков?
Существует ли книга, которая является стандартом де-факто для описания лучших практик, методологий проектирования и другой полезной информации по математике для программистов? Что из этой книги делает ее особенной?
Ответы:
Хм, из того, что вы говорите, кажется, вы хотите начать с самого начала. Ничего плохого в этом нет, я сделал то же самое. Моя математика была в основном на уровне средней школы, и многое о ней забыли.
Начните с Академии Хана , перейдите в раздел практики и посмотрите, как далеко вы можете продвинуться. Это даст вам хорошее представление о том, что вы можете сделать и с чего начать обучение.
Не беспокойтесь о просмотре видео. По крайней мере, для меня видео - это медленный способ изучения, а фильмы Кхана очень скучные. Есть много других ресурсов для изучения основ математики. Как некоторые из WikiBooks или CK -12
Этот вопрос обсуждается на Math.StackExchange достаточно часто, и поиск «бесплатных ресурсов» или «бесплатных книг» принесет вам много информации и материалов. То же самое касается поисковых терминов, таких как «начало» или «новичок». Или задайте свой вопрос там. Это также работает в подразделе / r / math на Reddit. Там вы найдете больше subreddits, например, для изучения математики.
Практикуйтесь много. Недостаточно просто понять концепцию и перейти к следующему. Вы должны чувствовать себя комфортно, чтобы применить это. Вы не поймете проценты, если вам не удобны деление и умножение (в качестве примера). Это верно и для высших понятий. Вот почему для меня секция практики в Хан гораздо ценнее, чем видео.
Как и в случае с программированием, поддержание связи с сообществом будет поддерживать мотивацию. Просто заходите на какой-то форум время от времени и читайте, о чем говорят люди.
источник
Конкретная математика: Фонд компьютерных наук (2-е издание) был бы моим выбором для хорошей книги по математике, охватывающей различные области математики наряду с некоторым юмором к книге, которая может быть полезной.
источник
Онлайновые заметки Пола из Университета Ламара представлены в формате PDF. Это очень хорошо для быстрой ссылки, и на каждой странице есть примеры. Если я когда-нибудь захочу освежиться в теме или что-то понять, я, как правило, возвращаюсь на этот сайт.
Вот набор:
Алгебра (Math 1314): полные заметки
Список содержимого
Исчисление I (Математика 2413): разделены на
Проблемы с назначением
Исчисление II (Математика 2414) Полные заметки
Исчисление III (Math 2415) Полные заметки
Линейная алгебра (Математика 2318) Полные заметки
Дифференциальные уравнения (Math 3301) Полные заметки
Вы можете проверить сайт для остальной части списков тем.
источник
Я понимаю, что это не книга, но я думаю, что это может быть хорошим способом расширить ваши представления о математике. Попробуйте поработать над проблемами Project Euler .
Например, первый :
источник
Я всегда рекомендую дискретную математику Кеннета Розена и ее приложения . Он охватывает много разных тем (как и любая хорошая книга по дискретной математике) с хорошим балансом теории и применения. У этого также есть много интересных боковых панелей на математиках и компьютерных ученых, которые создали рассматриваемые понятия.
источник
Хотя чтение 1000 дискретных учебников по математике является хорошим решением, оно не может быть оптимальным путем, если время является ограничением. Если вы хотите узнать, сколько математики вам нужно, не углубляясь, взгляните на приложение A введения книги (cormen) Algorithm : http://www.acmsolver.org/books/ Введение% 20to% 20Algorithms,%% 20Ed двести второго% 20-% 20Thomas% 20H.% 20Cormen.pdf
Я прочитал приложение, и оно дало мне лучшее представление о том, какие математические темы мне следует рассмотреть больше. Как только вы знаете, чего ожидать, посмотрите на:
http://www.amazon.com/Journey-into-Mathematics-Introduction-Proofs/dp/0486453065/ref=sr_1_15?ie=UTF8&qid=1308591694&sr=8-15
На мой взгляд, умение доказывать (особенно по индукции) является краеугольным камнем в понимании алгоритмов анализа . К сожалению, большинство алгоритмов и даже курсы по математике CS не слишком сосредоточены на доказательстве. они уже предполагают, что вы компетентны в этом, поэтому они не выходят за рамки нескольких страниц. Книга «Путешествие в математику» очень маленькая и легко читаемая. Он использует задачи CS и их математический аспект. Другими полезными темами для изучения являются матричная арифметика , вероятность , счет и теория графов .
Два других популярных больших учебника: Discrete Math и его приложение из EPP (мой любимый) и другой от Розена.
http://www.amazon.com/Discrete-Mathematics-Applications-Susanna-Epp/dp/0534359450/ref=sr_1_4?ie=UTF8&qid=1308591784&sr=8-4
http://www.amazon.com/Discrete-Mathematics-Applications-Kenneth-Rosen/dp/0073229725/ref=sr_1_1?ie=UTF8&qid=1308591784&sr=8-1
Я не имел удовольствия читать учебник под названием « Конкретная математика », но я всегда слышал об этом хорошие вещи.
источник
Честно говоря, вы можете быть совершенно адекватным программистом во многих областях без фундаментально очень глубоких знаний математики. Возможно, вы не очень способны к игровым движкам или оптимизации сетевой маршрутизации, но, по правде говоря, многие бизнес-приложения довольно просты. Тем не менее, я бы посоветовал вам сохранить надежду и не отказываться от математики.
Существует большая разница между математикой, которую вы берете на более низком уровне, и математикой, которую вы берете на более высоком уровне. Говорить о том, что ты плох в Calculus (я был - я потерпел неудачу с Calc я первый раз, когда я его принимал), совсем не то, что сказать, что ты плох в теории графов. По мере продвижения по математике основное внимание уделяется не простому решению задач, которое, откровенно говоря, довольно скучное и повторяющееся, и с таким же успехом может быть выполнено вашим графическим калькулятором. Вместо этого основное внимание уделяется навыкам логического мышления: создание доказательств откровенно похоже на написание программного обеспечения.
Лучший урок математики, который у меня когда-либо был, это то, что я считал своим первым «настоящим» уроком математики: в основном введение в класс доказательств, охватывающий широкий спектр областей от теории графов до теории чисел. Текст, который мы использовали, был великолепен (« Математическое мышление: решение проблем и доказательства» Д'Анджело и Уэста .) Вы можете найти полезным просто проработать эту книгу, чтобы получить некоторые идеи атакующих доказательств.
В общем, мне действительно нужна была какая-то математика в колледже? Нет, наверное нет. Но наличие некоторой формальной подготовки дало мне лучшие навыки критического мышления, лучшее воображение (как правило, есть много способов решить проблему, иногда хорошее, иногда плохое, но уникальная идея может быть полезной) и уверенность в решении проблем.
источник
Слушай, я хорошо разбираюсь в математике, но я вообще не использую ее для программирования, и я довольно много программирую. Я бы посоветовал просто привыкнуть не знать достаточно и попросить кого-нибудь сделать за вас математику.
Есть так много вещей, которые нужно знать, вы не можете ожидать, что они будут хорошими во всех из них, но математика, в частности, это не очень полезно.
Конечно, вам это может понадобиться, потому что ваши программы являются чем-то научным, в противном случае используйте это время для изучения чего-то более полезного.
источник
Глядя на примечания к некоторым курсам (для начинающих) из раздела ESSLLI «Логика и вычисления» (например, предстоящая программа 2011 года или программа 2010 года , поиск дополнительных) может быть интересным. Это даст вам представление о текущих теоретических разработках в области, связанной с программированием. Затем вы можете более глубоко изучить основы определенного подполя, затронутого в этих курсах.
(В противном случае, трудно ответить на ваш вопрос, существует так много разных «математик», в которых вы, возможно, не нуждаетесь или не заинтересованы. Одна из причин, по которой курсы ESSLLI могут оказаться интересными для нас, заключается в том, что они отражают некоторые современные исследования, то есть они решают определенные головоломки, и попытка решить определенную головоломку является важным компонентом в процессе реального понимания теории, понимания того, что за ней интересно.)
источник
Если вы правильно изучаете математику CS, то смотрите на такие вещи, как математическая логика и теория множеств. У них есть некоторые довольно сложные математики, поддерживающие их. Поэтому, если ваш базовый уровень математики немного затруднен, тогда вам лучше начать с основ, а затем переходить к более связанным с CS областям.
Поэтому я бы предложил начать с инженерной математики К. А. Страуда . Хорошо написано, легко следовать и охватывает основы, а также более продвинутые вещи.
источник
Начните с основ, а затем перейдите к специализированной: «Восторг математика» и « Как ее решить» - две отличные книги для начала. Восторг математика подходит к фундаментальным математическим темам (например, геометрия, алгебра, исчисление и т. Д.) В дружелюбной и забавной манере. Я еще не читал, как решить эту проблему, но он сосредоточен на том, как атаковать математические задачи, рассуждая.
источник