A lot of talented programmers understand algorithms before understanding the maths behind them. Maths are only there to help, they are not here to make you understand everything. You will need to spend more time reading about algorithms and complexity, then you might get a sense of how to evaluate them.
I recommend you to read more books about algorithm complexities.
In your long experience as a professional programmer, there surely are topics and sub-domains that you are most curious about. My advice is: identify those areas and go after them. It might be code-breaking, number theory, recursion, functional programming, computational origami, logical puzzles, crystal structures, graphs, genetic algorithms, splines...
Take your own remark to heart:
but when trying to get through things like the Donald Knuth books, or even
things like this link:...I wind up looking at math that means
absolutely nothing to me
What sort of math fascinates you?
I could say there are lots of intriguing puzzles at Project Euler. After you solve a programming challenge, you have access to a forum in which other folks share their solutions and occasionally refer to some body of knowledge they were drawing on. I love it. But what matters is what you like. Your own interests are the key to your learning.
If math and programming no longer have any appeal--you don't like doing them in your spare time--find something else to get into: acting, foreign languages, travel, French cooking, biking. Who knows, maybe you're burned out.
There is a plenty of good video-lectures on Discrete Math, Calculus and Applied Math. Just watch them every evening, make notes and try to solve simple problems. To prepare yourself for Knuth, try "Discrete Mathematics". To understand deeply what is math and how all things in the universe are interconnected (including algorithms), try "Joy of Mathematics".
I was looking for just the same thing. I couldn't afford any of the material suggested here so far so here's a link to a YouTube lecture series on Discrete Mathematics. I wish there was a playlist but unfortunately there is not.
The videos are taken uploaded from http://www.aduni.org who ask for a donation of 25c per video to cover operation costs.
I actually recommend taking a discrete mathematics course at your local university. This helped me out tremendously. Until I had this, I did not understand recursion (which is based on mathematical induction.) There are a number of other concepts which you will learn in a good discrete mathematics course which are extremely, extremely helpful (graph theory, asymptotic notation, combinatorics...)
I also recommend taking the class for a grade. I have always noticed that this makes people take the course more seriously, even if it is not in line with a degree path or anything past the grade.
If your local university is good, they will likely have tutoring sessions and office hours available that you can go to in order to ask questions and get clarification. These are really, really valuable and helped me learn things in a deeper manner, and more quickly, than I ever could have on my own.
You may need to take calculus in order to meet the prerequisites, but that is something I would also recommend if you'd like to increase your mathematical literacy. This 'answer' will take at least a semester, and more like two, but I think this is the way to go. It's not an immediate solution, but you will become better at math if you perform well in these two classes (and you have a good university close by.)
Your profile says you are in Dallas. I found this course (with no prerequisites!) for you. The syllabus looks like it covered a lot of good material, and the course met at 5:30 p.m. (good for working people!). If they are offering anything similar next semester, I'd consider it. If you call up the instructor, I'm sure he'd be happy to talk with you about what he knows for summer and fall scheduling.
发布评论
评论(8)
您可以尝试以下操作: http://www.amazon.com/Concrete-Mathematics-Foundation- Computer-Science/dp/0201558025
网上有该文档的 pdf 版本,您可以轻松地用 google 搜索到。
我的许多优秀程序员朋友都推荐了它。
You can try this: http://www.amazon.com/Concrete-Mathematics-Foundation-Computer-Science/dp/0201558025
There's a pdf version of this available online, you can easily google it out.
Many of my friends who are great programmers recommended it.
许多有才华的程序员先了解算法,然后再了解其背后的数学。数学只是提供帮助,并不是让你理解一切。您需要花更多时间阅读有关算法和复杂性的内容,然后您可能会了解如何评估它们。
我建议你多读一些关于算法复杂性的书籍。
A lot of talented programmers understand algorithms before understanding the maths behind them. Maths are only there to help, they are not here to make you understand everything. You will need to spend more time reading about algorithms and complexity, then you might get a sense of how to evaluate them.
I recommend you to read more books about algorithm complexities.
在您作为专业程序员的长期经验中,肯定有您最好奇的主题和子领域。我的建议是:确定这些领域并继续努力。它可能是密码破译、数论、递归、函数式编程、计算折纸、逻辑谜题、晶体结构、图形、遗传算法、样条曲线……
牢记你自己的话:
什么类型的数学让你着迷?
我可以说 Project Euler 有很多有趣的谜题。解决编程挑战后,您可以访问一个论坛,其他人可以在其中分享他们的解决方案,并偶尔参考他们所利用的一些知识体系。我喜欢它。但重要的是你喜欢什么。你自己的兴趣是你学习的关键。
如果数学和编程不再有任何吸引力——你不喜欢在业余时间做它们——那就找点别的事情来做:表演、外语、旅行、法国烹饪、骑自行车。谁知道呢,也许你已经精疲力竭了。
In your long experience as a professional programmer, there surely are topics and sub-domains that you are most curious about. My advice is: identify those areas and go after them. It might be code-breaking, number theory, recursion, functional programming, computational origami, logical puzzles, crystal structures, graphs, genetic algorithms, splines...
Take your own remark to heart:
What sort of math fascinates you?
I could say there are lots of intriguing puzzles at Project Euler. After you solve a programming challenge, you have access to a forum in which other folks share their solutions and occasionally refer to some body of knowledge they were drawing on. I love it. But what matters is what you like. Your own interests are the key to your learning.
If math and programming no longer have any appeal--you don't like doing them in your spare time--find something else to get into: acting, foreign languages, travel, French cooking, biking. Who knows, maybe you're burned out.
我建议买一本关于离散数学的好书和一本关于组合学的书。这是我喜欢的一些。罗森的书是一个很好的起点。
I'd say get a good book in discrete math and one in combinatorics as well. Here are a few I've liked. The Rosen book is good place to start.
根据 Vincent 所说,我推荐 O'Reilly 的 Algorithms in a Nutshell(此处< /a>)。
In line with what Vincent said, I recommend Algorithms in a Nutshell from O'Reilly (here).
有很多关于离散数学、微积分和应用数学的优秀视频讲座。每天晚上看它们,做笔记并尝试解决简单的问题。要为 Knuth 做好准备,请尝试“离散数学”。要深入了解什么是数学以及宇宙中的所有事物如何相互关联(包括算法),请尝试“数学的乐趣”。
There is a plenty of good video-lectures on Discrete Math, Calculus and Applied Math. Just watch them every evening, make notes and try to solve simple problems. To prepare yourself for Knuth, try "Discrete Mathematics". To understand deeply what is math and how all things in the universe are interconnected (including algorithms), try "Joy of Mathematics".
我一直在寻找同样的东西。到目前为止,我还买不起此处建议的任何材料,因此这里有一个 YouTube 讲座系列的链接离散数学。我希望有一个播放列表,但不幸的是没有。
这些视频是从 http://www.aduni.org 上传的,他们要求每个视频捐赠 25c覆盖运营成本。
I was looking for just the same thing. I couldn't afford any of the material suggested here so far so here's a link to a YouTube lecture series on Discrete Mathematics. I wish there was a playlist but unfortunately there is not.
The videos are taken uploaded from http://www.aduni.org who ask for a donation of 25c per video to cover operation costs.
实际上,我建议您在当地大学学习离散数学课程。这对我帮助很大。直到我有了这个,我才理解递归(基于数学归纳法)。您将在良好的离散数学课程中学到许多其他概念,这些概念非常非常有帮助(图论、渐近符号、组合学) ...)
我还建议参加该课程以获得成绩。我一直注意到,这让人们更加认真地对待这门课程,即使它不符合学位路径或任何超过成绩的东西。
如果您当地的大学很好,他们可能会提供辅导课程和办公时间,您可以去询问问题并获得澄清。这些真的非常非常有价值,帮助我比我自己更深入、更快地学习东西。
您可能需要学习微积分才能满足先决条件,但如果您想提高数学素养,我也会推荐您学习微积分。这个“答案”至少需要一个学期,更可能需要两个学期,但我认为这是正确的方法。这不是一个立竿见影的解决方案,但如果你在这两门课上表现出色(并且你附近有一所很好的大学),你的数学成绩将会变得更好。
你的个人资料显示你在达拉斯。我为您找到了此课程(没有先决条件!)。教学大纲看起来涵盖了很多好材料,课程在下午 5:30 开课(对上班族来说很好!)。如果他们下学期提供类似的东西,我会考虑的。如果你打电话给教练,我相信他会很乐意与你谈论他对夏季和秋季日程安排的了解。
这条路对我来说效果很好。
祝你好运!
I actually recommend taking a discrete mathematics course at your local university. This helped me out tremendously. Until I had this, I did not understand recursion (which is based on mathematical induction.) There are a number of other concepts which you will learn in a good discrete mathematics course which are extremely, extremely helpful (graph theory, asymptotic notation, combinatorics...)
I also recommend taking the class for a grade. I have always noticed that this makes people take the course more seriously, even if it is not in line with a degree path or anything past the grade.
If your local university is good, they will likely have tutoring sessions and office hours available that you can go to in order to ask questions and get clarification. These are really, really valuable and helped me learn things in a deeper manner, and more quickly, than I ever could have on my own.
You may need to take calculus in order to meet the prerequisites, but that is something I would also recommend if you'd like to increase your mathematical literacy. This 'answer' will take at least a semester, and more like two, but I think this is the way to go. It's not an immediate solution, but you will become better at math if you perform well in these two classes (and you have a good university close by.)
Your profile says you are in Dallas. I found this course (with no prerequisites!) for you. The syllabus looks like it covered a lot of good material, and the course met at 5:30 p.m. (good for working people!). If they are offering anything similar next semester, I'd consider it. If you call up the instructor, I'm sure he'd be happy to talk with you about what he knows for summer and fall scheduling.
This path has worked well for me.
Good luck!