年初到现在,历时 3 个月,终于看完了 CSAPP,很多知识点现在似乎都串起来了,简直太畅快了。
自己基础太差,决定今年用一整年的业余时间来补基础。
求大家推荐一些能修炼内功的计算机书籍啊,抱拳感谢了!
1
neoblackcap 2019-03-14 17:27:50 +08:00
《现代操作系统》
|
2
Mistwave 2019-03-14 17:49:19 +08:00 via iPhone 3
操作系统 推荐 OSTEP 自学的话比楼上的现代操作系统要好
数据结构 算法第四版 软件工程 构建之法 编译原理 编程语言实现模式 网络 不熟 请楼下推荐 综合:The Pragmatic Programmer (薄) 和 Code Complete (厚) 当然还有更多好书 比如 SICP 重构啥的 慢慢来吧 |
3
lostberryzz 2019-03-14 17:51:15 +08:00 17
又到了我最喜欢的推荐自己没看过的书的环节了 (doge
|
4
111qqz 2019-03-14 17:52:19 +08:00
推荐 ostep+1,看得非常舒服
|
5
maoyun234 2019-03-14 17:53:46 +08:00
计算机网络,自顶向下方法
CSAPP 目前也在看 |
6
cyaki 2019-03-14 18:06:04 +08:00 2
使用对话形式讲解操作系统, 很直白易懂
[Operating Systems: Three Easy Pieces]( http://pages.cs.wisc.edu/~remzi/OSTEP/) |
7
x97bgt OP @Mistwave #2 SCIP 会不会比较适合工作一段时间的人读,似乎是比较偏哲学的?(我还没工作……
|
8
lxy42 2019-03-14 18:15:27 +08:00
我正在慢慢看英文原版,很久之前看过中文版。
你看得挺快的,有做课后习题吗? |
10
IsaacYoung 2019-03-14 18:18:40 +08:00 via iPhone
🐮🍺
|
11
x97bgt OP @lxy42 #8 就看的中文版第 3 版,翻译挺好的,阅读很流畅。课后习题有做。习题比较简单,不会花很多时间。
|
12
jetbillwin 2019-03-14 18:25:21 +08:00
计算机系统要素
|
13
CocaColf 2019-03-14 18:30:25 +08:00 via Android
楼主可以分享一下怎么阅读这本书的,这本书一直没有坚持看完,你三个月看完真是很快了。
|
15
xFrye 2019-03-14 18:32:06 +08:00
最近在看 sicp,感觉还是挺有意思的
|
16
Mistwave 2019-03-14 18:35:28 +08:00 via iPhone
@x97bgt
SICP (不是 SCIP )我是在校的时候读的 适合拿来作为 FP 入门(用 Scheme 讲解)和软件工程入门(控制复杂度) 也正是用的 Scheme 的原因,导致与实际工程联系不强,所以我没有放在前面推荐。 OSTEP 就是上面老哥给链接的那本。 我推荐的都是我看过的书,除了 Code Complete 是正在看,同样非科班出身,可以多多交流。 |
17
nimrc 2019-03-14 18:52:03 +08:00
三个月真的能读的完吗
|
18
x97bgt OP @CocaColf #13
我的策略是力求理解,但不求记忆。偶尔遇到搞不懂的,做个标记,在不影响后面阅读的情况下就跳过了。 此外每阅读完一章,就做一个简短的提纲,写明这一章的每一节讲了什么。 别对这本书太畏惧。一开始我总是想着“找一个大块的时间(比如整个下午)”后,才开始阅读。 后来都是早起睡前读一会,慢慢地就能读完。这在精神上还是蛮容易坚持的。 总结一下,就是 养成每天读一点的习惯+不要拖延。 |
20
jdhao 2019-03-14 18:54:58 +08:00 via Android
纯用时多少,三个月只是笼统时间,另外只是看完吗
|
21
x97bgt OP @jdhao #20 纯用时没计算过,基本都是工作日早起睡前和周末下午阅读的。内容是感觉都理解了,至少读下来挺顺畅的,逻辑都能理清。
不过我的策略原本就是先完整读一遍,有时间再多翻一翻。好书肯定不能只读一遍。 |
22
letianqiu 2019-03-14 19:20:52 +08:00 1
操作系统和编译原理都不是看一本书就够了的。除了楼上提到的威大的那本,还有一本 Operating System in Depth 不错。现代操作系统偏理论,实践部分不足。编译原理的话建议先看 MIT 的 Theory of Computation,之后龙书,engineering a compiler 互相参考。龙书因为是多位作者合著的,所以章节安排方面有很大的问题,不太连贯,对编译原理没有概念的话直接看龙书太痛苦了。
|
23
ChristopherWu 2019-03-14 20:55:34 +08:00
楼主加个微信互相打卡?
|
24
mengqi 2019-03-14 21:02:00 +08:00 1
如果平常经常和数据库打交道的话,推荐一本《 Designing Data-Intensive Applications 》
|
25
x97bgt OP |
26
kristpan 2019-03-14 21:54:55 +08:00 via Android
读算法导论吧,我最近刚入坑,公式推得头疼。https://panqiincs.me/2019/03/01/clrs-learning-plan/
|
27
CharmanderS5 2019-03-14 21:56:35 +08:00 via Android
收藏咯,大神们继续
|
28
none 2019-03-15 00:26:01 +08:00
同在看这本书,刚开始不久,不知道楼主看完觉得如何? 看完这个再去读内核源码会不会容易理解很多?
|
29
wangluofansi 2019-03-15 00:28:25 +08:00
SICP 讲的是函数式编程和抽象,抽象即隔离变化的部分。我真正理解递归是从这本书开始的。
另外楼上推荐的 Designing Data-Intensive Applications 适合所有后端入门分布式系统。而且不是简单的入门,我个人感觉这本书对于分布式系统的逻辑是自洽的,有种融会贯通的感觉。 |
30
Mirana 2019-03-15 00:29:05 +08:00
算法导论。。。
|
31
HeliumTang 2019-03-15 06:20:48 +08:00 via Android
正在看 The Linux Command Line,比鸟哥更适合新手的 linux 基础书。
同推荐 SICP |
33
x97bgt OP @HeliumTang The Linux Command Line 蛮不错,不过只讲命令行表层的使用,没有涉及原理。但偶尔翻一翻还是不错的。
|
34
catcn 2019-03-15 10:01:55 +08:00
程序员的自我修养,准备读第三遍,这次要细致的读,这次要细致的读,这次要细致的读
|
36
hackpro 2019-03-15 12:34:39 +08:00
@x97bgt @neoblackcap @Mistwave @lostberryzz @111qqz @maoyun234 @cyaki @lxy42 @IsaacYoung @jetbillwin @CocaColf @hackerang @xFrye @nimrc @jdhao @letianqiu @ChristopherWu @mengqi @kristpan @CharmanderS5 @none @wangluofansi @Mirana @HeliumTang @catcn
贴个我自己维护的书单 大部分是我自己读过或者 Team 内部 Training 用的教材 欢迎各位老哥 star |
37
hackpro 2019-03-15 12:35:26 +08:00
|
38
lostberryzz 2019-03-15 12:37:56 +08:00
@hackpro 一上来就 PRML 合适吗( doge
|
39
jdhao 2019-03-15 12:42:28 +08:00 via Android
@HeliumTang 有一本「 Unix & Linux 大学教程」,个人感觉写的非常好,基础入门 Linux 使用书籍,也可以作为参考书
|
40
hackpro 2019-03-15 12:48:50 +08:00
@lostberryzz #38 我这书单并没有说按照顺序阅读 没有基础的初学者可以先看 ISLR
另外你讲话也没必要这么阴阳怪气的 Team 里面有不少 Intern 实习结束的时候这本书都啃完了 |
41
lostberryzz 2019-03-15 12:49:58 +08:00
@hackpro 只是吐槽一下。。
|
42
lxy42 2019-03-15 12:54:09 +08:00 via Android 1
CSAPP 正在看第二遍(英文版)。
第一次是在大学的时候看的中文版,当时看的比较快,一些细节没有深究直接跳过了,课后习题也没怎么认真做,看完依然觉得很有收获。 说一下我的心得: - 一定要静下新来慢慢看,不要忽略细节,遇到推导公式试着自己计算一下。 - 课后习题认真完成,对知识点的理解很有帮助。 - 把书中的源码下载下来,编译运行一下,最好修改代码验证一下对应的知识点。 |
43
hackpro 2019-03-15 13:54:45 +08:00
@hackpro #36
由于书的种类较杂 根据某位老哥的建议修改了 Repository Name 另外对书籍类别进行了细分 https://github.com/hao-lh/books-making-you-better |
44
Lostars 2019-03-15 14:20:25 +08:00
intel 手册,arm 手册(老实人的笑容)
|
46
skywalkerfc 2019-03-15 15:42:42 +08:00
去年看了下 ostep,确实挺好的
|
47
dinjufen 2019-03-15 15:57:45 +08:00
大家都是看的英文版吗,感觉英文版看的比较慢。。
|
48
syc721 2019-03-15 16:03:58 +08:00
Computer Organization and Design : The Hardware/Software Interface
|
49
Stevenv 2019-03-15 16:06:22 +08:00
CSAPP 我看了几章,汇编那有点难搞。。
|
52
nicoley 2019-03-15 17:09:27 +08:00
请问 ostep 有中文版嘛
|
54
x97bgt OP @Stevenv 如果实在不理解,你可以看一下 [汇编语言]( https://book.douban.com/subject/1215178/) 这本,汇编就大致能掌握下来了。
|
55
kristpan 2019-03-15 17:38:47 +08:00 1
@Stevenv 如果之前有 C 语言以及操作系统的基础,仔细阅读,基本上都能读懂的。最好用大块的时间读,要有耐心,一章的内容看个几天也很正常,不能心急。
|
56
lxy42 2019-03-15 17:45:59 +08:00 1
@Stevenv #49
我正在看第 3 章。 我觉得理解汇编的关键是: - CPU 做的都是非常简单的计算,加法乘除,位运算之类的。对应汇编中的操作符、操作数。 - 理解栈帧的作用,过程调用(函数调用)时栈空间是如何变化的,如何保存和恢复当前函数的状态。 建议:最好像书中那样,动手把栈画出来,标上变量名、地址等。 关键字:call、ret、%ebp、%esp 等。 大概就想到这些。可能因为我有工作经验和看第二遍的关系,我觉得还是比较好理解的。 |
57
lyminghao 2019-03-15 18:01:05 +08:00
计算机程序设计艺术
The Art of Computer Programming (TAOCP) 大概是最少人读下来的计算机经典了。 |
58
justou 2019-03-15 18:42:57 +08:00
当初为了看懂第三章的汇编, 专门去补了汇编基础: 王爽的那本汇编, 还有本 Assembly Language for x86 Processors, 然后发现第三章没有必要看了...
|
59
Justin13 2019-03-15 18:50:28 +08:00 via Android
sicp...
我是项目间隔时期在公司刷的,刷到逻辑编程那卡住了,再加上项目一开始忙就没继续。 回头有空继续看看。。。 |
61
daryl 2019-03-15 19:53:28 +08:00 via iPhone
三个月?我四个月才看完第一部分……
|
62
1998qiu 2019-03-15 23:50:43 +08:00 via Android
楼主,你是直接看书学习?还是看书加上 cmu 视频学习啊?
|
63
1998qiu 2019-03-15 23:53:08 +08:00 via Android
@HeliumTang 赞同
|
66
Chell 2019-03-16 12:14:47 +08:00
这还是有点强的,上学期学校上这门课,加上做 Lab 时间不少了,最后还是虚得一笔
|
67
hx1997 2019-03-16 16:04:23 +08:00 via Android
Sanjoy Dasgupta 的《算法概论》,在看,讲得不错,但示例代码比较少,基本是讲原理。
网络的话推荐 Kurose 的《计算机网络:自顶向下方法》,不推荐 Tannenbaum 的《计算机网络》,那本讲了太多琐碎细节,厚厚一本,还有他的《现代操作系统》也是这个风格。 |