Как улучшить мои математические навыки для становления лучшим [закрытым] программистом

Мне удалось это сделать. Для записи на случай, если кому-то будет интересно, я создал два запроса sql:

select * from Trends_Database where (
Machine_Name in (select Max(Machine_Name) from Trends_Database group by Machine_Name) AND
(Status LIKE 'Deployed') AND
(date(`Date of Snapshot`) == date('now')))

и

select * from Trends_Database where (
Machine_Name in (select Max(Machine_Name) from Trends_Database group by Machine_Name) AND
(Status NOT LIKE 'Deployed') AND
(date(`Date of Snapshot`) == date('now','-1 day'))

Я прочитал их в пару кадров данных Pandas и взял пересечение двух .

Я получил это от здесь

9
задан Leonard Ehrenfried 14 May 2009 в 11:37
поделиться

9 ответов

Похоже, у вас неплохие математические навыки - вы понимаете механику и, возможно, немного интуиции, лежащей в основе того, что вы узнали, - но вам немного не хватает хорошей задачи - навыки решения , особенно если вы говорите: «Я действительно знаю только, как решать проблемы, с которыми [ранее сталкивался]».

Чтобы исправить это, я бы взглянул на Project Euler . Определенно не существует предписанного способа решения этих проблем, и они часто требуют синтеза нескольких областей знаний для успешного решения каждой из них. Вы' Я буду есть свой пирог и тоже его съеду - стану лучшим программистом / математиком и лучшим решателем общих проблем, увидев, как использовать множество вещей для решения конкретной проблемы. И вы получите более глубокое понимание того, как вещи, которые кажутся совершенно разными, могут на самом деле объединяться в единое целое. (Это особенно верно в отношении многих областей математики.)

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

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

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

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

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

26
ответ дан 4 December 2019 в 06:23
поделиться
  1. Практика Практика Практика
  2. Воспользуйтесь услугами репетиторства, которые обычно доступны в большинстве университетов (обычно они бесплатны и оплачиваются из ваших денег на обучение).
2
ответ дан 4 December 2019 в 06:23
поделиться

Я бы пошел со следующими полями:

Дискретная математика, линейная Алгебра, Комбинаторика, вероятность и Статистика, теория графов, математическая логика.

Это даст вам представление о большинстве областей CS. Если вы хотите углубиться в специальные области, вам придется особенно погрузиться в некоторые области:

Computer graphics -> Linear Algebra
Gaming -> Linear Algebra, Physics
Computer Linguistics -> Statistics, Graph Theory
AI -> Statistics, Stochastics, Logic, Graph Theory

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

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

1
ответ дан 4 December 2019 в 06:23
поделиться

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

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

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

0
ответ дан 4 December 2019 в 06:23
поделиться

I думаю, это зависит от обстоятельств. Одна книга, которую мне понравилось читать - которая начинается с повторного рассмотрения математики - это Мэтт Бакленд «Программирование ИИ на примере игры» .

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

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

0
ответ дан 4 December 2019 в 06:23
поделиться

Перейти на веб-сайт www.projecteuler.net. Вы встретите сложные проблемы. Попробуйте решить их, и однажды вы будете гордиться собой. удачи

0
ответ дан 4 December 2019 в 06:23
поделиться

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

-1
ответ дан 4 December 2019 в 06:23
поделиться

Ultimately, you need to "spend some time in the saddle" and pick something of interest and then learn how to use it. I was interested in game programming math and picked up the New Riders book on the subject - don't remember the name at the moment. It had concepts and exercises and as I progressed through it, I felt that not only did I understand the concepts and theory but how to put it into practice.

You might take a look at some of these related questions. There are some good answers there. They might not all be applicable in your case, but some will be.

How can I learn the math necessary for working with computer vision?

How to learn mathematical notation?

https://stackoverflow.com/questions/651865/basic-math-book-for-a-programmer

Learning Applied Statistics with a focus on R

https://stackoverflow.com/questions/568899/user-friendly-math-textbooks

https://stackoverflow.com/questions/509488/recommendations-for-discrete-math-resources

https://stackoverflow.com/questions/488502/best-language-to-program-some-math-free-fast-easy-cool-etc

Learning game programming (part 2) (math)

Math Resources for C/C++ Programmers

https://stackoverflow.com/questions/420500/helpful-math-classes-for-programmers

Math, programming, and learning

9
ответ дан 4 December 2019 в 06:23
поделиться

Агрегат. A Lot.

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

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

Поиск корня. Решение линейных систем и другие манипуляции с матрицами (например, разложение LU и эффективные детерминантные алгоритмы). Решение нелинейных систем. Метод наименьших квадратов (непрерывный и дискретный). Интерполяция (в основном полиноны Лагранжа и простая матричная интерполяция.) Численное интегрирование (я думаю, что это самый простой ... Ньютон – Котес, Чебышев – Гаусс, Гаусс – Лагер и т. Д.) Числовые обыкновенные дифференциальные уравнения (РунгеКутта и многоступенчатые методы)

Теперь некоторые нечисловые предметы:

Операционные исследования / Линейное программирование / Оптимизация: начните с симплексной записи с матричной нотацией (я лично называю этот комплекс), затем попробуйте BranchAndBound и погрузитесь в динамическое программирование ..

Теория чисел имеет несколько интересных приложений, особенно безопасность и криптографию

Реализуйте класс Vector3D самостоятельно.

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

Если вы хотите испытать себя, углубитесь в оптимизацию: теория очереди. Принятие решения. Оптимизация колонии муравьев.

Надеюсь, я дал вам немного информации и не напугал вас! :)

1
ответ дан 4 December 2019 в 06:23
поделиться
Другие вопросы по тегам:

Похожие вопросы: