读算法导论

2014-07-12 11:10:42 +08:00
 jianzong
因为我是转行做程序员的,所以想自学补充一些计算机基础知识。经计算机系的同学指点以及Quora指教,发觉算法导论是本好教材。

只是看起来实在太慢了,年初给自己定的目标是半年内至少看完一本(一共三本)。但是因为工作时间少,导致前面看的后面就忘了,对许多知识点也只是有个模糊印象。

其实我觉得算法还挺有意思的,大家有没有更好的学习方法建议呢。
6488 次点击
所在节点    问与答
30 条回复
Pandora78
2014-07-12 12:13:33 +08:00
roamlog
2014-07-12 12:28:43 +08:00
如果能把我推荐的第一本书啃完并理会的话就已经已经非常屌了,其它的书先放一放都没什么关系
hitigon
2014-07-12 12:33:02 +08:00
@jsonline Stevens的那几本比较实用,可以配合恐龙书等OS常规书入门。
Vernsu
2014-07-12 12:56:17 +08:00
不要看算法导论这本大部分程序员谎称自己读过的书了。可能看过的加起来都不到完整的一个章节。
Fzzf
2014-07-12 13:48:23 +08:00
@jsonline 1.如果补基础,就去读 @roamlog 推荐的CSAPP,没记错的话,也是CMU的CS基础课书籍,算法导论先不用看,CS专业的都没有几个有那个基础,数学基础不够,理解不了,看不下去
2. 你们觉得上学时候学习的哪些知识对自己帮助最大? 这些知识都是相辅相成,一环接一环,你觉得哪个可以算最大?
-----------------------------------
ps:1.我觉得你可以看c写的一些代码的汇编形式(结合csapp的部分章节),可以让你对程序运行有更进一步的认识。
2 现在计算机发展,抽象包装了很多东西,要想了解,操作系统的知识也是要的
3 程序员有很多,语言也有很多,了解编程范式,编译原理,学好c,但不要以为学好c就能其它也就能掌握的好
4 可以先不看算法导论,不代表不用学算法,用不到算法,只会是层次太低,最起码用别人代码,也知道人家是不是厉害
5 不要问这种问题了,网上到处都是,不要盲目听我们这些人的回答,高手基本不会在这里乱逛,他们很忙。
yxz00
2014-07-12 13:51:42 +08:00
除了要学算法,程序员还要能明白一个高级语言到机器码的过程。就是像c这样直白的语言,你要能看到每一句都能把它翻译成汇编,看到每一个数据在内存里面是怎么摆的。
再去学动态语言的时候了解下他的垃圾回收模型就可以了。

学算法说白了就是研究怎么让程序跑的更快。不懂程序到汇编的过程的人做优化方面的事情是很困难的。算法解决的是数学理论的问题,了解底层原理可以解决现实中的细节问题。
zhaohaozeng
2014-07-12 16:01:24 +08:00
不要一上来就读 CSLR 用不着的东西你死命去读很容易失去目标 也得不到快乐 尤其后面的东西你看懂了也实现不了

不如先看点基础 比如CSAPP 和 数据结构预算法(C 语言实现) 算法和功利性强的东西 竞赛指南之类的东西 剑指 offer 之类的 (看人家怎么实现的)
guoxx_
2014-07-12 16:32:39 +08:00
基础看csapp不错,能够对整个框架有一个基本的认识。对哪方面有兴趣的话可以再深入具体领域学习。
操作系统建议看<<Modern Operating Systems>>。
<<Structure and Interpretation of Computer Programs>>强烈推荐一定要看,可以说这本书拓宽了我编程时候的思路。原来一些死记下来的算法在看完这本书之后就觉得非常自然了。

<<算法导论>>建议用一段时间突击一下,然后配合编程珠玑,找个平台刷题就可以了。leetcode不错,可以用来训练一下思维方式。<<算法导论>>这本书主要还是用来做手册,需要用的时候查阅一下。

另外我也是自学的计算机,最近在学习图形学相关的内容,与楼主共勉。
jianzong
2014-07-12 20:12:07 +08:00
@guoxx_
@zhaohaozeng
@roamlog
@yxz00
感谢楼上各位,我有了比较清晰的思路了,算法导论还是会继续翻,打算去图书馆翻翻CSAPP(以及各位推荐的书),如果不错就买来看。这些书够我业余时间学习很久了:)
guoer
2014-07-12 23:45:26 +08:00
感觉数据结构最重要

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/122273

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX