在没有太多正式培训的情况下,如何学习与编程相关的高级数学?

发布于 2024-08-06 20:44:30 字数 1435 浏览 8 评论 0原文

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(12

隱形的亼 2024-08-13 20:44:30

如果您不想参加课程,您仍然需要获得课程本应为您提供的内容:学习材料的时间和大量练习。

因此,拿起那本教科书并开始做练习题。确实没有其他方法(除非你已经弄清楚渗透实际上是如何发生的......)。

If you don't want to attend a class, you still need to get what the class would have given you: time in the material and lots of practice.

So, grab that text book and start doing the practice problems. There really isn't any other way (unless you've figured out how osmosis can actually happen...).

暖心男生 2024-08-13 20:44:30

没有什么知识只能在课堂上获得。

查看麻省理工学院数学课件

还有他们的YouTube 网站

欧拉计划 也是思考与编程相关的数学的好方法

There is no knowledge that can only be gained in a classroom.

Check out the MIT Courseware for Mathematics

Also their YouTube site

Project Euler is also a great way to think about math as it relates to programming

巷雨优美回忆 2024-08-13 20:44:30

在当地社区大学上课。如果你像我一样,你需要这个结构。对于评分的压力,有一些话要说。我的意思是,要学习的东西太多了,如果你想要获得的不仅仅是一闪而过的点头嗯嗯的理解,单独行动是不切实际的。

Take a class at your local community college. If you're like me you'd need the structure. There's something to be said for the pressure of being graded. I mean there's so much to learn that going solo is really impractical if you want to have more than just a passing nod-your-head-mm-hmm sort of understanding.

一世旳自豪 2024-08-13 20:44:30

听起来你和我的处境一样。我发现关于数学教育的大部分内容都是错误的。无论是原因还是结果,我还发现大多数数学课文都写得不正确。例外情况很少见,但值得注意。例如,Donald Knuth 编写的任何内容都是朝着正确方向迈出的一步。

这里有几篇文章非常清楚地说明了这个问题:

这里有一篇关于旨在保留知识的简单学习技巧的文章:

Sounds like you're in the same position I am. What I'm finding out about math education is that most of it is taught incorrectly. Whether a cause or result of this, I also find most math texts are written incorrectly. Exceptions are rare, but notable. For instance, anything written by Donald Knuth is a step in the right direction.

Here are a couple of articles that state the problem quite clearly:

And here's an article on a simple study technique that aims at retaining knowledge:

年华零落成诗 2024-08-13 20:44:30

考虑在当地大学旁听离散数学和证明课程。离散数学课程将教你一些真正有用的东西(图论、组合学等),证明课程将教你更多关于数学思维和写作风格的知识。

Consider auditing classes in discrete mathematics and proofs at a local university. The discrete math class will teach you some really useful stuff (graph theory, combinatorics, etc.), and the proofs class will teach you more about the mathematical style of thinking and writing.

临走之时 2024-08-13 20:44:30

我同意@John Kugelman的观点,课程是正确完成任务的方法,但我想补充一点,如果你不想上课,互联网上有很多资源可以帮助你,包括我录制的讲座find 比书籍和论文更容易理解。

我建议您查看麻省理工学院的开放课件。有一个 计算机科学数学模块,我很享受吉尔伯特·斯特朗的线性代数视频讲座课程

YouTube 和 videolectures.com 也是视频讲座的良好资源。

最后,有一本免费的 CS 数学书 bookboon< /a>.

I'd agree with @John Kugelman, classes are the way to go to get it done properly but I'd add that if you don't want to take classes, the internet has many resources to help you, including recorded lectures which I find can be more approachable than books and papers.

I'd recommend checking out MIT Open Courseware. There's a Maths for Computer Science module there, and I'm enjoying working through Gilbert Strang's Linear Algebra course of video lectures.

Youtube and videolectures.com are also good resources for video lectures.

Finally, there's a free Maths for CS book at bookboon.

孤独难免 2024-08-13 20:44:30

在此列表中,我现在将添加Haskel 逻辑、数学和编程之路概念数学:类别入门

--- 2009 年 11 月 16 日对后代的回答 --

两本书。 Diestel 的图论,以及 Knuth 的具体数学。一旦掌握了这些技巧,请尝试CAGES

To this list I would now add The Haskel Road to Logic, Maths, and Programming, and Conceptual Mathematics: A First Introduction to Categories.

--- Nov 16 '09 answer for posterity--

Two books. Diestel's Graph Theory, and Knuth's Concrete Mathematics. Once you get the hang of those try CAGES.

想挽留 2024-08-13 20:44:30

找一位好导师,他是该领域的专家,愿意定期与你共度时光。

Find a good mentor who is an expert in the field who is willing to spend time with you on a regular basis.

伴随着你 2024-08-13 20:44:30

学习密集的材料有一个技巧,比如数学和数学计算机科学。学习不熟悉的抽象东西是很困难的,最有效的方法就是分阶段熟悉它。首先,您需要浏览一下:如果您在第一遍中没有理解所有内容,请不要担心。然后休息一下;休息后,再更深入地回顾一遍。起泡沫,冲洗,重复;冥想,最终你可能会开悟。

我不确定从哪里开始,熟悉数学语言;我最终读了很多论文,直到我变得更好。您可能会寻找有关形式数学逻辑的入门教科书,因为许多数学(尤其是语言理论)都是基于此;如果你学会稍微破解一下正式的东西,日常的符号可能看起来会更容易一些。

您可能应该浏览有关您个人感兴趣的主题的书籍;内在的兴趣应该可以帮助你渡过难关。另外,请确保您找到实际上是介绍性的文本;我对那些标有初级 Foobar 理论的细长、未修饰的精装本变得警惕,这些书往往只对拥有 Foobar 博士学位的博士后来说是初级的。

警告:不要从范畴论开始——这是我遇到过的最无聊的数学!由于它与语言设计和类型理论的相关性,我想了解更多关于它的信息,但到目前为止我还无法处理...

对于多种 CS 式数学的一些很好的、漫无目的的介绍,我推荐霍夫施塔特的哥德尔、埃舍尔、巴赫(当然,如果你还没有读过的话)。虽然这不是一本正式的数学书,所以它不会帮助你解决熟悉问题,但它非常鼓舞人心。

There is a sort of trick to learning dense material, like math and mathematical CS. Learning unfamiliar abstract stuff is hard, and the most effective way to do it is to familiarize yourself with it in stages. First, you need to skim it: don't worry if you don't understand everything in the first pass. Then take a break; after you have rested, go through it again in more depth. Lather, rinse, repeat; meditate, and eventually you may become enlightened.

I'm not sure exactly where I'd start, to become familiar with the language of mathematics; I just ended up reading through lots of papers until I got better at it. You might look for introductory textbooks on formal mathematical logic, since a lot of math (especially in language theory) is based off of that; if you learn to hack the formal stuff a bit, the everyday notation might look a bit easier.

You should probably look through books on topics you're personally interested in; the inherent interest should help get you over the hump. Also, make sure you find texts that are actually introductory; I have become wary of slim, undecorated hardbacks labeled Elementary Foobar Theory, which tend to be elementary only to postdocs with a PhD in Foobar.

A word of warning: do not start out with category theory -- it is the most boring math I have ever encountered! Due to its relevance to language design and type theory, I would like to know more about it, but so far I have not been able to deal...

For a nice, scattershot intro to bits of many kinds of CS-ish math, I recommend Godel, Escher, Bach by Hofstadter (if you haven't read it already, of course). It's not a formal math book, though, so it won't help you with the familiarity problem, but it is quite inspirational.

梦言归人 2024-08-13 20:44:30

数学符号类似于多种计算机语言:

  • 简洁
  • 、严格、
  • 基于许多习语的
  • 相当多的本地变体和约定

与计算机语言一样,您不需要“一次清洗整个大象”:将其一部分到时候。

您的暂定计划可能是

  • 确定您感兴趣或重要的数学领域。 (看来你已经对此有所了解,计算机科学已经帮助你培养了相当多的文化。)
  • 参加(或只是旁听)一些该领域的正式课程。我同意这篇文章中的几个答案,在当地大学开设面对面课程更好,但是,也许一开始,或者为了确保充分利用特定课程,首先要自学通过 MIT OCW、类似的在线资源和相关书籍自学该领域是可以的。
  • 如果数学领域在符号或某些基本概念或(最常见的是机械计算和转换技术)的流畅性方面引入了过高的先决条件。没问题!只需回溯一下,学习这些基础(并且只是这些基础!),然后再次前进。
  • 找一个“大师”,一个拥有广泛数学文化和接触的人,不一定是数学家,物理学家也很好,事实上,他们经常能以更实用的方式表达数学。使用这位大师来指导您,因为他/她可以向您展示如何将大的部分组合在一起。

注意:学习数学符号本身并没有什么好处。相反,它应该在上下文中学习,就像 C# 习惯用法在使用时以及与特定任务相关时更好地记住,而不是在真空中学习。然而,相关的 SO 帖子提供了一些资源来破译和学习数学符号< /a>

Mathematical notation is is akin to several computer languages:

  • concise
  • exacting
  • based on many idioms
  • a fair amount of local variations and conventions

As with a computer language, you don't need to "wash the whole elephant at once": take it one part a at time.

A tentative plan for you could be

  • identify areas of mathematics that are interesting or important to you. (seems you already have a bit of a sense for that, CS has helped you develop quite a culture for it.)
  • take (or merely audit) a few formal classes in this area. I agree with several answers in this post, an in-person course, at local college is preferable, but, maybe at first, or to be sure to get the most of a particular class, first self-teaching yourself in this area with MIT OCW, similar online resources and associated books is ok/fine.
  • if an area of math introduces too high of a pre-requisite in terms of fluency with notation or with some underlying concept or (most often mechanical computation and transformation techniques). No problem! Just backtrack a bit, learn these foundations (and just these foundations!) and move forward again.
  • Find a "guru", someone that has a broad mathematical culture and exposure, not necessarily a mathematician, physics folks are good too, indeed they can often articulate math in a more practical fashion. Use this guru to guide you, as he/she can show you how the big pieces fit together.

Note: There is little gain to be had of learning mathematical notation for its own sake. Rather it should be learned in context, just like say a C# idiom is better memorized when used and when associated with a specific task, rather than learned in vacuo. A related SO posting however provides several resources to decipher and learn mathematical notation

别再吹冷风 2024-08-13 20:44:30

欧拉计划断章取义地提出问题,让人们来解决。欧拉计划无法有效地教你任何东西。我认为你应该忘记它,如果它很流行那就没有任何意义。你不能通过欧拉计划学习数学,因为它只包含你应该知道的一些零散的部分(以及一些相当高水平的部分),以便解决问题。学习数学意味着考虑一个主题并阅读一本有关它的书并解决练习或阅读解决方案,这就是您学习数学的方式。如果碰巧通过你的阅读你发现了一些与欧拉项目接近的东西,那么你很幸运,但否则欧拉项目完全是浪费时间。我认为投入时间选择一个特定的数学分支并进行研究会更好。让我解释一下原因:我解决了 3 个相当高级的欧拉计划问题,它们都利用了数论中的知识,而我碰巧拥有数论知识,因为我研究了数论的一部分。我不认为我从欧拉计划中学到了任何东西,只是碰巧我已经了解了一些数论并解决了问题。

例如,如果您发现自己喜欢数论,请选择 H. Davenport ->哈代赖特->肯尼思和罗森的,研究一下。
如果您喜欢图论,请阅读 Reinhard Diestel 的免费书籍并进行研究(或查看 books.google.com 并找到更适合您口味的内容),但不要仅仅因为欧拉计划存在问题而将您的注意力分散在 999999 个方向上从动态规划到高级几何或高级数论,这显然是错误的方法,它不会让你更接近你的目标。

这听起来非常无聊

无聊......当你发现一些你所关注的问题,你喜欢它并且你想找到解决方案,并且当你有足够的时间反思它而不是无聊时,数学并不无聊在电脑屏幕后面。数学主要是用笔和纸完成的(是的,你可以使用计算机..但这不是重点)。

因此,如果您发现一个现实世界的问题,或者一些可以受益于的编程问题
如果您了解一些高等数学,并且您知道您必须学习什么数学,那么以这种方式学习可能会受到激励。

如果你觉得自己没有动力,就很难好好学习。

还有一个问题是,当你说学习时,你真正的意思是什么。当你解决了一本书的章节末尾的问题后,学习过程是否就停止了?好吧,你决定吧。您可以认为您已经完成了该主题的学习,也可以认为您尚未完成并阅读更多相关内容。有整本书都是关于一个方程及其变体的。

未经正规培训,您可以学习的与编程相关的数学量是有限的,但已经足够了。但也许你可以自学。

这一切都取决于您的资源和动力。

要了解数学,你必须做数学而不是编程(欧拉项目)。

Project Euler takes problems out of context and drops them in for people to solve them. Project Euler cannot teach you anything effectively. I think you should forget about it, if it is popular it does not mean anything. You cannot study Mathematics through Project Euler as it contains only bits and pieces(and some pretty high level pieces) that you're supposed to know in order to solve the problems. Learning mathematics means to consider a subject and a read a book about it and solving exercices or reading solutions, that's how you learn math. If it so happens that through your reading you find something that is close to some project euler thing, your luck , but otherwise Project euler is a complete waste of time. I think the time is much better invested choosing a particular branch of mathematics and studying that. Let me explain why: I solved 3 pretty advanced Projec Euler problems and they were all making appeal to knowledge from Number theory which I happened to have because i studies some part of it. I do not think Iearned anything from Project Euler, it just happened that I already knew some number theory and solved the problems.

For example, if you find out you like number theory, take H. Davenport -> Hardy & Wright -> Kenneth & Rosen's , study those.
If you like Graph Theory take Reinhard Diestel's book which is freely available and study that(or check books.google.com and find whichever is more appropriate to your taste) but don't spread your attention in 999999 directions just because Project Euler has problems ranging from dynamic programming to advanced geometry or to advanced number theory, that is clearly the wrong way to go and it will not bring you closer to your goal.

This sounds amazingly boring

Well ... Mathematics is not boring when you find some problem that you are attached to, which you like and you'd like to find the solution to, and when you have the sufficient time to reflect on it while not behind a computer screen. Mathematics is done with pen and paper mostly(yes you can use computers .. but that's not really the point).

So, if you find a real-world problem, or some programming problem that would benefit from
you knowing some advanced maths, and you know what maths you have to study , it can be motivating to learn in that way.

If you feel you are not motivated it is hard to study properly.

There is also the question of what you actually mean when you say learn. Does the learning process stop after you solved the problems at the end of the chapter of a book ? Well you decide. You can consider you have finished learning that subject, or you can consider you have not finished and read more about it. There are entire books on just one equation and variations of it.

The amount of programming-related math that you can learn without formal training is limited, but it's more than enough. But maybe you can self-teach yourself.

It all boils down to your resources and motivation.

To know mathematics you have to do mathematics not programming(project euler).

七堇年 2024-08-13 20:44:30

对于开始学习范畴论,我推荐 David Spivak 的科学范畴论(又名科学家范畴论),因为它相对容易理解,因为有许多例子可以通过类比和理解来理解。这可以快速为理解更抽象的概念奠定基础。

它需要逻辑推理能力和对集合的直观概念。它从集合和函数开始,通过基本范畴论,到伴随函子、函子范畴、滑轮、单子以及操作数介绍。贯穿全文的两个主要线索是根据类别对数据库进行建模,并使用称为 ologs 的注释图来描述类别。参考书目提供了更高级和专业主题的参考,包括 Spivak 博士最近的论文。

阅读本书的预期成果是能够理解为数学家撰写的范畴论文本和论文,例如 Mac Lane 的工作数学家的范畴论

PDF 格式可从 http://math.mit.edu/~dspivak/teaching 获取/sp13/(推荐使用动态版本,因为它是最新的)。开放获取 HTML 版本可从 https://mitpress.mit.edu/books/category 获取-理论科学(推荐使用它,因为它包含附加内容,包括一些练习的答案)。

For beginning to learn category theory I recommend David Spivak's Category Theory for the Sciences (AKA Category Theory for Scientists) because its relatively comprehensible due to many examples that enable understanding by analogy and which quickly builds a foundation for understanding more abstract concepts.

It requires the ability to reason logically and an intuitive notion of what is a set. It proceeds from sets and functions through basic category theory to adjoint functors, categories of functors, sheaves, monads and an introduction to operads. Two main threads throughout are modeling databases in terms of categories and describing categories with annotated diagrams called ologs. The bibliography provides references to more advanced and specialized topics including recent papers by Dr. Spivak.

An expected outcome from reading this book is the capability of understanding category theory texts and papers written for mathematicians such as Mac Lane's Category Theory for the Working Mathematician.

In PDF format it is available from http://math.mit.edu/~dspivak/teaching/sp13/ (the dynamic version is recommended since its the most recent). The open access HTML version is available from https://mitpress.mit.edu/books/category-theory-sciences (which is recommended since it includes additional content including answers to some exercises).

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文