当前位置: 华文星空 > 知识

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

2016-04-01知识

书给多了你也就迷惑了.

我给一个基本建议, 不要用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

上的书