曾经我看到一个前阿里的技术大牛说过这样一句话:我面试了很多很多程序员,一问他们什么是进程什么是线程,没几个人能答上来的。看到这句话后,我受到了一万点暴击,因为我也不会,当时结合自身的情况来看,主要是环境影响,我是做web开发,周边人很少对进程和线程有深入讨论的,大家都是在讨论业务。久而久之,操作系统、数据结构这些大学学的东西慢慢从脑中淡去,那时的我就是一个大家经常说的只会curd的程序员。后来看了一些数据库索引的知识,发现基础知识的缺乏一直让我难以理解很多底层的东西,慢慢我地坚持去学数据结构、操作系统相关的知识,我想就是因为这份坚持,才成就了我薪水和职位上质的飞跃的原因吧。

1.jpg

为什么要学习基础知识

很多程序员,特别是培训机构出来的程序员一开始学习就是mysql、redis、java、php这些,先配开发环境,然后直接开发,项目是做出来的,但是你知道你的一条sql机器是怎么执行的吗?高级开发和初级开发的差别并不是工作年限的差别,你可能工作了5年,但你也可能只是个只会curd的普通程序员,因为你底子差,就好比练武功,学一些花式的招式不顶用的,别人三拳两脚就把你撂倒了,你不要羡慕别人薪水高,抱怨自己薪水低,别人在练内功,你却不以为是。如何练就扎实的基本功,进入BAT,下面推荐基本书给大家。

2.jpg

现代操作系统

现代操作系统是一本非常好的书,读完这本书你可以知道,你的一个初始化变量操作系统究竟干了哪些事,你的一个脚本是如何跑起来的,日志是怎么写到文件上的...

进程与线程内存管理文件系统IO原理

3.jpg

数据结构

读完这本书,你可以了解数据结构是怎么实现的,为什么数据组可以读取那么快,而队列要一个一个读...

数组栈队列链表树散列表堆图

4.jpg

TCP/IP详解

读完这本书你可以知道,网络是怎么传输的,当我们在浏览器上输入网址,为什么就出来这么多数据,我发的微信消息,你是怎么收到的...

TCP/IP各层协议封装 协议拆封 数据传输

5.jpg

不管你从事的或者学习的是什么语言,上面三本书绝对是你成为大牛的三大法宝。

(文章来源:修炼内功的程序员)