从嵌入式到互联网-非典型程序员的个人书单

从嵌入式到互联网

我是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基础教程》(当“字典”使用吧)

《流程的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

博客:www.jianshu.com/u/bf03aa158e75

github:https://github.com/CaiquanLiu