这是对我以前的问题的延续,我在这里问,是否有必要学习算法和数据结构。我觉得是的。
现在我工作的环境中,我永远不会有机会通过实验、实践或任何作业来学习。什么是正确的方法,比如正确的书籍,正确的问题,正确的资源,我可以花六个月或两年来学习算法和数据结构?同时,我的思维方式也可以将问题与数据结构和算法联系起来。
发布于 2010-11-12 17:16:25
朗读。
不,真的,读读。
阅读所有关于算法和设计的内容,你可以找到。外面有很棒的书。塞奇威克算法书很好。Skiena的算法设计手册也很好。在我去的每一份工作上,这些书都跟在我的书架上,还有神话般的男人月。
那就问问吧。
和你尊敬的人谈谈。问他们有什么决定要点,以及他们为什么要做决定。好的人总是能告诉你“我选择了X,因为在这些方面它比A,B更好,我可以用C,但我觉得这是一个更好的选择。”
下一个,做。
造些东西。建造一些你永远不会使用的东西。建造你永远不需要的东西。去写一个解决数独谜题的程序。现在再来一次。一遍又一遍。建立它的5个完全不同的方式。构建一个程序,生成数独拼图,并将其提供给求解者。找出哪个解算者最快。然后..。
找出原因。
“什么”几乎从不重要。我的意思是,是的,完成手头的项目是至关重要的,但最后如果你不知道“为什么”就知道“什么”,那么你最好从一开始就不做。你的简历上有重点。去吃块饼干,恭喜你自己。“为什么”比“什么”更重要。
作为记录,数独就是一个例子。我花了大量的空闲时间在这个练习中学习了一堆关于孔雷杰的逻辑谜题,并从中学到了很多东西。
http://www.amazon.com/Bundle-Algorithms-Parts-1-5-Fundamentals/dp/020172684X/ http://www.amazon.com/Algorithm-Design-Manual-Steven-Skiena/dp/1848000693/ http://www.amazon.com/Mythical-Man-Month-Software-Engineering-Anniversary/dp/0201835959/
发布于 2010-11-12 22:55:08
十二岁的时候,我在一个团体里上了魔术课。魔术师的名字叫乔·卡洛塔。有一次他耍了个小把戏,我脱口而出,“你是怎么做到的?”从那一天起,他说了一些一直困扰着我的话。
乔的回答是:“迈克尔,如果你真的想知道这个把戏是怎么做的,你必须弄清楚你自己会怎么做。”
当然,这不是我想听到的,但这确实让我的注意力集中在解决问题上。从我的角度来看,这是解决问题的方法。如果我第一次尝试解决这个问题的步骤是十七个步骤,而且真的很笨拙的话,那么好消息是我解决了这个问题。
然后,通过查看我开发的解决方案,并寻找改进该解决方案的方法,我将学习如何简化最终结果。后来,在我的计算机编程生活中,我发现这个过程被称为“逐步细化”。我想今天他们称之为重构。
它起了作用,现在仍然有效。
发布于 2012-02-16 17:48:43
下面的链接将您重定向到麻省理工学院最成功的DS和算法类之一。
http://academicearth.org/courses/introduction-to-algorithms
希望你会喜欢这个视频系列。祝好运!
https://softwareengineering.stackexchange.com/questions/18679
复制相似问题