如何去学习程序员的三大浪漫,编译原理,图形学,操作系统?

目前大二,学了点编译原理,入了操作系统门,图形学一点不懂....但对这些很有兴趣,求点指点,学习规划和书籍列表?
关注者
3,463
被浏览
184,185

20 个回答

书给多了你也就迷惑了.
我给一个基本建议, 不要用c/cpp/java这些语言来写. 用python/ruby/racket随你愿

个人觉得那几本书特别是编译器的书很有可能严重打击你的士气, 因为它们都有严重的毛病
就像这样
(汉化了一下...)


所以可以走easy mode, 比如
编译器你可以...
  1. 先实现lisp语法的解释器(以后你可以拿这个金手指找别人约架...)
  2. 把它编译成一个栈式虚拟机代码
  3. 转换到汇编或者直接用虚拟机跑就随意了

图形学你可以...
放弃, 最后再弄

操作系统你可以...
  1. 先<操作系统概念/现代操作系统/FreeBSD操作系统设计与实现>随便看一本, 理解概念就行
  2. 再去github上抓一个小操作系统来玩, 也就1万行代码不到, 就ok了

然后你别忘了...
计 算 机 网 络, 一个完整的tcp/ip协议栈不过3-5万行代码, 如果你做完了上面的事情, 写个协议栈也就是3-5个月的光景
如果你们学校用锐捷/3com认证网络
如果你们学校限制客户端数量
如果你们学校限制客户端操作系统
如果你们学校限制上网时长
如果....
那你就有救了, 一网在手, 天下你有. (但是的但是千万别专门当写网络程序的程序员, 非 常 无 聊(当然说不定你也许会喜欢什么的...))


(在你觉得空虚无聊寂寞冷的时候, 可以看看SICP, 我认为它是软件工程的精华所在
(moreover, 在Lambda the Ultimate上可以学到很多PL知识


最后, 要当一个好程序员, 一定要好好看看<代码大全>和这个网站The Pragmatic Bookshelf

上的书
编译原理,什么所谓龙书虎书我都尝试读过,不过鄙人才疏学浅,都读不下去,唯有:
Compiler Construction: Principles and Practice: Kenneth C. Louden: 9780534939724: Amazon.com: Books
这本书还算是读完了。而且作者比较敬业,直接问问题基本两天之内都能得到回答。

操作系统,听说有基本讲原理不错的,还听说有个专事教育的系统叫 Minix。不过还是 Understanding the Linux Kernel 读起来感觉不错。后来学 Lua 的时候知道了一个名词,叫 no-drill。