1
hitigon 2014-07-12 11:22:10 +08:00 1
算法导论不是只有一本么……
|
2
roamlog 2014-07-12 11:24:11 +08:00 1
如果想补基础的话,我更推荐去啃这本 http://book.douban.com/subject/5333562/
数据结构看这本可能会更容易一些 http://book.douban.com/subject/6424904/ |
3
freedomSky 2014-07-12 11:27:14 +08:00
如果只是想短时间入门,没必要整本的看《算法导论》(当然也要看你的就业方向)。
选择一门语言(c?python?Go?java?),写点儿简单的代码,对编程有点感性的认识, 然后数据结构、数据库、网络、操作系统搞起,这些熟悉一下基本入门了。 |
5
jsonline 2014-07-12 11:29:18 +08:00
你读算法导论是想做游戏开发么?
现在Web开发、客户端开发都用不到算法导论。 我这周也在读这本书,我已经做 Web 开发三年了。 我倒是推荐初学者先看看C语言、数据结构这些。 尤其是《代码大全》《软件沉思录》这两本书,能纠正国内程序员很多错误而又根深蒂固的理念! |
6
fangzhzh 2014-07-12 11:29:27 +08:00
也许你需要一个老师....
|
7
jianzong OP @freedomSky 嗯现在以及从事编程工作差不多一年了,写的是iOS和ruby。上半年看了鸟哥的私房菜把linux一些基本知识看了,觉得虽然很多知识日常工作中用不到,但是却能从多个层面加深对手上问题的理解。所以力所能及情况下,我比较倾向与更多地了解一些“基础”、“底层”的东西。
|
8
jsonline 2014-07-12 11:31:55 +08:00
学C语言能让你对「软件是如何操作内存」有一个初步的了解。随便买一本畅销的、美国人写的C语言教程就好。
虽然我现在主要写 JS/HTML/CSS,但我依然庆幸自己学的第一门语言是 C 语言,而不是 C++/Java 之类的高级(搞基?)语言 |
9
jianzong OP @fangzhzh 的确,如果当初本科选读计算机就好了。。其实想过申请国外的cs master的,可是好像大部分都需要本科是计算机专业的。
|
11
jianzong OP @jsonline 我对游戏开发不太感冒,目前我也是web开发和iOS开发,只是觉得在计算机领域要深入下去,恐怕还是要把一些基础概念啃下来。虽然目前暂时能够胜任手上工作,但是运用高级语言的时候不能了解其后的原理,实在让我心惊惊。等会将大家推荐的书都补充到主题补充里面去:)
|
12
jianzong OP @jsonline 兄台有没有使用过learn C the hard way?我年初的时候也想了解下C语言,好像很多人推荐这个。话说现在我已经学了几门高级语言(iOS、ruby、javascript),学C语言的话,还必要重新学C么。
|
14
jsonline 2014-07-12 11:44:27 +08:00
@jianzong 这就是我说的问题,如果一个程序员的入门语言比较高级(你列的几个都是),但是他又没有一个学过低级语言的朋友交流的话,很容易在使用高级语言一段时间后发现后劲不足。因为他会觉得和计算机之间隔着一层东西,无法深入。
如果你已经熟悉C语言的指针的话,其实就没比较再学一边了,继续看算法导论就很好,可以深入了解数据结构、以及一些精巧的算法。 如果你不熟悉C语言是如何操作内存的话,你可以试着用C把几个著名的排序算法都实现一边,边做边学。 没必要像新手一样把一本书一页一页地看完。 |
15
jsonline 2014-07-12 11:45:17 +08:00
更正:……其实就没必要再学一遍了……
|
17
hitigon 2014-07-12 11:51:45 +08:00 2
三大课:操作系统,编译器,网络
外加:算法(含数据结构) 可选:计算机原理/架构 |
19
66450146 2014-07-12 11:56:38 +08:00 via Android
算法导论是一本非常特别的书。它既是一本教材,也是一本工具书,就看你怎么读它了。
如果你把它当作一本教材,那就像上学的时候一样,一章一章看下去(有一些可以跳过),一个概念一个概念弄明白,刷掉课后习题。这本书的课后习题很棒! 如果你把它当作一本工具书,那就先翻一遍对整本书有个粗略的印象,然后把最近用得上的代码实现一遍保存下来待查阅就可以了。 无论是哪一种读法,只要用心坚持,都会对自己的算法分析能力有很大的提高,这是一本好书 |
20
allenforrest 2014-07-12 11:57:48 +08:00
@jsonline Unix 操作系统设计
|
21
Pandora78 2014-07-12 12:13:33 +08:00
|
22
roamlog 2014-07-12 12:28:43 +08:00
如果能把我推荐的第一本书啃完并理会的话就已经已经非常屌了,其它的书先放一放都没什么关系
|
24
Vernsu 2014-07-12 12:56:17 +08:00 1
不要看算法导论这本大部分程序员谎称自己读过的书了。可能看过的加起来都不到完整的一个章节。
|
25
Fzzf 2014-07-12 13:48:23 +08:00 1
@jsonline 1.如果补基础,就去读 @roamlog 推荐的CSAPP,没记错的话,也是CMU的CS基础课书籍,算法导论先不用看,CS专业的都没有几个有那个基础,数学基础不够,理解不了,看不下去
2. 你们觉得上学时候学习的哪些知识对自己帮助最大? 这些知识都是相辅相成,一环接一环,你觉得哪个可以算最大? ----------------------------------- ps:1.我觉得你可以看c写的一些代码的汇编形式(结合csapp的部分章节),可以让你对程序运行有更进一步的认识。 2 现在计算机发展,抽象包装了很多东西,要想了解,操作系统的知识也是要的 3 程序员有很多,语言也有很多,了解编程范式,编译原理,学好c,但不要以为学好c就能其它也就能掌握的好 4 可以先不看算法导论,不代表不用学算法,用不到算法,只会是层次太低,最起码用别人代码,也知道人家是不是厉害 5 不要问这种问题了,网上到处都是,不要盲目听我们这些人的回答,高手基本不会在这里乱逛,他们很忙。 |
26
yxz00 2014-07-12 13:51:42 +08:00 1
除了要学算法,程序员还要能明白一个高级语言到机器码的过程。就是像c这样直白的语言,你要能看到每一句都能把它翻译成汇编,看到每一个数据在内存里面是怎么摆的。
再去学动态语言的时候了解下他的垃圾回收模型就可以了。 学算法说白了就是研究怎么让程序跑的更快。不懂程序到汇编的过程的人做优化方面的事情是很困难的。算法解决的是数学理论的问题,了解底层原理可以解决现实中的细节问题。 |
27
zhaohaozeng 2014-07-12 16:01:24 +08:00 1
不要一上来就读 CSLR 用不着的东西你死命去读很容易失去目标 也得不到快乐 尤其后面的东西你看懂了也实现不了
不如先看点基础 比如CSAPP 和 数据结构预算法(C 语言实现) 算法和功利性强的东西 竞赛指南之类的东西 剑指 offer 之类的 (看人家怎么实现的) |
28
guoxx_ 2014-07-12 16:32:39 +08:00 1
基础看csapp不错,能够对整个框架有一个基本的认识。对哪方面有兴趣的话可以再深入具体领域学习。
操作系统建议看<<Modern Operating Systems>>。 <<Structure and Interpretation of Computer Programs>>强烈推荐一定要看,可以说这本书拓宽了我编程时候的思路。原来一些死记下来的算法在看完这本书之后就觉得非常自然了。 <<算法导论>>建议用一段时间突击一下,然后配合编程珠玑,找个平台刷题就可以了。leetcode不错,可以用来训练一下思维方式。<<算法导论>>这本书主要还是用来做手册,需要用的时候查阅一下。 另外我也是自学的计算机,最近在学习图形学相关的内容,与楼主共勉。 |
29
jianzong OP @guoxx_
@zhaohaozeng @roamlog @yxz00 感谢楼上各位,我有了比较清晰的思路了,算法导论还是会继续翻,打算去图书馆翻翻CSAPP(以及各位推荐的书),如果不错就买来看。这些书够我业余时间学习很久了:) |
30
guoer 2014-07-12 23:45:26 +08:00
感觉数据结构最重要
|