想在技术的道路上走得远,必须有扎实的计算机基础。下面按照学习的先后顺序给出一些推荐的好书:
看经书的同时要多练习和思考,课后题适当选作。如果某些知识 第一遍学习理解比较慢,那就不妨看一些视频来辅助。这些关于基础理论的经典书籍是一定要多读几遍的,相信随着学习的积累,每次读都会有新的体会和收货的。
在基础知识学习的同时,也要同步训练编程能力。对于刷 OJ,首选 C++, 并选用 Linux 平台,OJ 题目代码规模不大,一个自己喜欢的文本编辑器(Sublime, Vim 或 Emacs) 配合 GCC 和 GDB 足以,方便快捷。可以通过下面的步骤来训练:
写博客可以帮助自己归纳整理学过的知识,做开源项目更是有利于自己能力的提高,而且也方便和其他的开发者交流,注册个 GitHub 就可以开始动手实践。
编译器项目是对计算机基础理论的一个很好的实践,而且其本身也是一个充满乐趣的 big clean project
.通过一个小型编译器项目的实践,可以让自己的字符串解析,代码优化,内存管理等各方面的能力得到一个深刻而有效的锻炼:
SICP
,
尝试做一个简单的 Scheme
解释器;CSAPP
,尝试设计指令集并对其写个模拟器;龙书
,尝试自己实现一个小型简单的语言;一些好的参考书籍:
互联网时代,Web 开发可以算是必不可少的技能了。做 Web 讲究快速迭代,在动态语言如此成熟的今天,Ruby
on Rails
和 Python
已经是成为很好的选择。对于小型 Web 项目,可以从下面着手:
原文地址:http://blog.csdn.net/thisinnocence/article/details/41480085