从嵌入式到互联网
我是06年进的大学,从大二的时候参加电子设计,大三的时候进入电子设计的校队,并参加了09年的全国大学生电子设计竞赛,但遗憾的是只拿了四川省的一等奖。整个排名下来,在我们队的前一名就是国二,当时负责硬件的队友比赛结束都掉了眼泪。由于学校的原因,电子设计和机器人是学校在当时非常重视的竞赛,选拔和培训机制也比较完善。在我的记忆里电子设计竞赛学校从来都是全国的第一名。也正是这样的原因导致自己形成了一个非常错误的观念:硬件和嵌入式最难,最牛逼。什么互联网之类的无非是做做网页,连高中生都搞的定,数学之类的也就只能用来搞研究了。
13年研究生毕业,期间在微软亚洲研究院实习。毕业后经历了传统的嵌入式公司,之后进入了国内Top3的互联网公司,现在回过头来看10年前的自己,当时的想法是多么的片面和无知。嵌入式的进入门槛确实相对要高些,但跨过门槛之后,会发现技术不分高低贵贱,只是方向和领域不同罢了。互联网技术虽然入门简单,但随着需求和规模的变化和增长,技术门槛也会发生指数级别的上升,而数学在其中又扮演着至关重要的角色。
认识的转变除了工作环境的变化之外,读书也发挥了很大的作用,下面来分享下从嵌入式到互联网我这个非典型程序员的个人书单(过程中读过的书远不止文中罗列的内容,一些质量不高的书目在此略过)
书单
汇编
汇编方面除了《微机原理》和《计算机组成原理》的课程学习外,自己也单独买过汇编的书籍,但总的来说都收获不大印象也不深刻。真正对汇编有深刻的理解是在实际的工作中。工作需要在一个没有MMU的控制器上实现Bios、Bootloader、App三个独立的运行空间,当时的解决方案是手动编写两级中断向量表。自此之后对汇编不再有恐惧的感觉。所以,很多时候实践是最好的学习方法。
C语言
C语言方面只使用了谭浩强的那本《C程序设计》。虽然这本书在网上被吐槽的很厉害,但因为当时自己年少无知,加上时间宽裕,整本书看了三四遍,同时,书上的例子也都自己手动敲过一遍(高中基本没接触过电脑,打字都要对着键盘边看边打,所以,测试例子就当做练习打字了),所以,整体下来这本书也基本够用。
C++
《C++ Primer Plus》
《Effective C++》
《C++ 标准程序库》
Java
《Java核心技术》
《Effective Java》
《深入理解Java虚拟机》
Python
《Python基础教程》(当“字典”使用吧)
HMTL5
《HTML5权威指南》(当“字典”使用吧)
设计模式
《大话设计模式》
《重构》
编译链接
《编译原理》(龙书)
《程序员自我修养-链接、装载与库》(正和这本书的名字一样,我觉得每个程序员都应该读一下)
操作系统
《自己动手写操作系统》
《嵌入式实时操作系统 ucOS II》
《无线传感器网络操作系统 TinyOS》(内容基本是官方文档的摘抄,但国内关于TinyOS的中文资料确实不多)
计算机网络
《图解HTTP》
Linux
《鸟哥的私房菜》
《嵌入式Linux应用开发完全手册》(书名感觉有些low,但韦东山的作品确实经典,尤其是他的视频)
《Linux内核完全剖析》(通过这本书才真正理解了实模式和保护模式、段页式管理、内核态和用户的切换实现,而不是停留在枯燥的概念上)
《Linux内核设计与实现》
《Linux内核源代码情景分析》
《Unix环境高级编程》
Android
《疯狂Android讲义》(入门经典)
《Android开发艺术探索》(估计现在变成面试宝典了)
《Android群英传》
《Android框架揭秘》(这本书比较老,但对于开始理解Android的系统框架还是挺有帮助的)
《深入理解Android内核设计思想》
《Android系统源代码情景分析》(可能功力不够,一直都读不动。感觉更适合作为“字典”来使用)
后台服务
《Java Web整合开发王者归来》(Java EE的经典之作)
《后台开发:核心技术与应用实践》(C++后台)
《自己动手写网络爬虫》(基于Java的)
分布式系统
《大型网站技术架构》
《Hadoop权威指南》
算法与数据结构
《数据结构(C语言版)》(对于常用的数据结构都有对应的C语言实现)
《编程之美》
《算法导论》(坦白的将这本书来来回回尝试阅读了两三次,但每次都是读到一半就读不下去了,期间还看了MIT的公开课。最终还是觉得这本书当做“字典”来使用更合适)
《进军硅谷》(内容基本都是LeetCode的原题,可以先刷题再看书)
机器学习
《机器学习》(周志华)
《机器学习实战》(基于python的基础实现)
《Python机器学习及实践:从零开始通往Kaggle竞赛之路》(基于Python库实现)
《统计自然语言处理》(内容严谨、全面)
《TensorFlow Machine Learning Cookbook》(Tensorflow入门超棒的资料,但目前好像只有英文版)
《集体智慧编程》(Simons大神推荐的图书)
其他
《这就是搜索引擎》
《浪潮之巅》
《数学之美》
《沸腾15年》(互联网的编年史风格跟吴晓波的《激荡三十年》很像)
《淘宝技术这十年》
书单可能有遗漏,后面会慢慢再补充完整。
个人博客和Github
github:github.com/CaiquanLiu