上篇我是如何在一夜拿到阿里巴巴offer的?一文分享给你们后,得到你们一致好评,都说学到了不少面试技巧。程序员
但此次我要说的是面试技巧只能让你提升得到面试资格的几率,最终能不能拿到offer还得看你的硬实力。面试
我在准备10几天的时间下顺利经过面试,也许有人会说是运气,但运气为何有的人有而有的人没?算法
由于运气是留给有准备的人的。就算彩票中奖起码也得比大部分人多作一步,首先得去买张彩票。数据库
所以本篇我不讲速成论,而是让你扎扎实实打牢基础,而后等着运气降临。编程
看过个人编程人生一文的同窗应该知道里面我提到本身读了不少书,专业的非专业的都有。设计模式
在这过程当中我也踩了很多坑,好书读过,烂书也读过。固然话说回来,你不读也不知道它是好是烂,这是个悖论。性能优化
此次我就结合本身的真实学习经验,并结合大学里的课来给你们分享那些年我读过的书。微信
注意,本文提到的书不是网上随便找的书单,所有是本身亲自看过的。网络
为何这节标题是屠龙术,由于我认为读这些书能让你了解计算机科学的本质,掌握屠龙之技。数据结构
了解了本质,一切就变得容易了。
如下书籍重要程度分前后。
你没看错,就是汇编语言。为何是汇编语言,由于我认为如今你们对这门古老的语言都不重视。
这本书是我在大三上汇编语言这门课时买的。当时上课用的教材不是这本,由于我的感受教材不太友好,在网上搜索后买了这本书。
这本书不厚,由浅到深的介绍了汇编语言,重要的是还有实践代码。学完后会让你对汇编语言有必定的了解,不深,可是足够用了。我汇编语言课最后考了94分,这本书功不可没。
不少人会问,汇编语言都淘汰了,学了有什么用,你看如今哪家公司招汇编语言开发?
我想说是的,如今公司不多有用汇编语言的了,毕竟有了农耕机,谁还用牛耕地?
可是,我要说的是,只有用牛耕过地,你才会更了解这片孕育万物的土地。
学任何东西只有了解它的本质,你才能学的更快,学的更深,学的更好。
而汇编语言就是能让你了解语言本质的东西,是全部高级语言的源。
因此无论你是计算机科班出身仍是半路出家,我都建议你去看看这本书。
若是你自己就是计算机专业,那你上课时候必定要认真去学,为你的“专业性”打基础。
若是你是中途转行或者通过培训上岗,我也建议你有空的时候去看看,能让你更了解计算机的本质,缩小和科班的差距。
固然花了这么多篇幅介绍此书,我也不是让你成为汇编语言的高手,只是让你对这门语言有必定的认识。
不会汇编语言不会影响你成为编程高手,可是必定成为不了大师。
这本书不少人应该都知道,是经典书。能让你对整个计算机硬件和软件体系有所了解,建议计算机从业者收藏,反复阅读,常读常新。
若是是计算机专业学生,建议和计算机组成原理这门课搭配使用,能够出奇效。
这本书是我大三上操做系统这门课时看的书,当时上课用的教材不是这本,是我在图书馆看到的。当时看后以为讲的比较详细,就本身买了本看成教材使用了。
这本书如书名,讲操做系统原理,计算机专业学生应该都会上这门课。建议你们上这门课时候都能认认真真上,尤为是考研的同窗,考研会考里面的知识。
为何我建议认认真真上,由于这门课比较枯燥,内容也比较难,因此逃课率很高。我是为数很少历来不逃这门课的学生之一。
这本书讲的比较全面,能够提升对计算机网络系统的认识,一样建议准备考研的同窗好好学这么课。
这是大二下学期咱们上离散数学课的教材,主要讲计算机中的数学知识。
计算机学科本就是从数学发展出来的分支,所以数学对程序员的重要性不言而喻。
写程序最重要的是逻辑性,学习这本书能系统性的提升逻辑推理能力,学的时候最好把每章后面的题作一下。
这是大一下学期上数据结构课时我搭配的一本书。一样上课教材不是这本,是我在图书馆发现的。
讲数据结构的书不少,为何选这本书?
由于这本是用C语言来描述的,示例代码都是C语言。我认为学数据结构算法最合适的语言是C,用纯面向过程的语言去学习数据结构和算法才更能理解其本质。
算法本质是对空间复杂度和时间复杂度的优化。
空间上C语言没有面向对象的特性,声明变量后彻底能够根据变量类型计算出程序总共消耗的内存,能够更准确的评估程序运行过程当中到底消耗了多少内存。
时间上C做为面向过程语言,可用函数库不多,经过本身写代码能让你清楚的了解程序运行时执行了多少指令,让你对你算法效率有更精确的评估。
固然随着计算机CPU性能的提升,内存的不断增加,程序员对时间和空间的要求也没那么严格了。但在系统性能优化和虚拟机优化等难度较高领域对算法仍是有严格的要求。
虽然用Java、Python、JavaScrpit等语言介绍算法的书市面上不少,也能让你对算法有必定了解。但我认为经过这些书去学习算法,仍是有隔靴搔痒的感受,虽然你懂了,可是没有那么透彻,换种语言说不定也就写不出来了。
而用C语言能让你更透彻的理解算法的本质,所以我建议有C语言基础的同窗最好用这本书去学算法。尤为是计算机专业学生,由于大部分专业课教材里涉及到的代码都是用C语言写的。
这是大三下学期学数据库课时我搭配的一本书,一样不是上课教材,是在图书馆发现的。
做为一名程序员,或多或少确定会用到数据库,有的人只会简单的SQL语句或者熟练使用MySql、Oracle、SQLServer等软件就说本身懂数据库了。
其实数据库是一套很完善的数据存储系统,SQL语句只是和用户交互的通道。不了解数据库系统的知识充其量只是个数据库软件熟练工。
而经过看这本书,你能够系统的了解到数据库知识的全貌,学完后甚至能够本身去实现一个小型数据库,这样对别人说本身懂数据库时才更有自信。。
这本书是咱们大一上C++课程时的教材,发的教材实际上是英文版的,这里我给你们介绍中文版。
毕竟是C++之父写的,比世面上其它C++书好太多。由浅入深,知识很全面,书上的代码也都颇有表明性。若是把书上的代码都上机打一遍,C++绝对入门了。
不知道是否是全部计算机专业都会把C++看成第一门语言课,由于C++相对其它语言来讲,入门上手会相对比较难,可能会打消掉一部分同窗的积极性。
但学任何东西其实都有一个学习曲线,只要你沉下心去学,多花点时间,总会跨过那个曲线,后面学习过程就会变得很平滑。学C++也相似,建议你们不要知难而退,而是要迎难而上,翻过大山也许就能看到彩虹。
这里我也提本身一个观点,我认为把C++当成编程语言的入门课实际上是有好处的。由于只要你学会C++,其它面向对象的语言学起来都会很快,只要看一遍语法就能立立刻手。毕竟难的都会了,简单的不更轻松吗?
这本书是我研究生时看到的课外书,也推荐给你们。
书颇有趣,像讲故事同样把计算机的前世此生和重要知识点娓娓道来。若是想偷懒,不想读厚厚专业书的同窗能够经过看这本书来了解计算机体系的总体脉络。
介绍完能够屠龙的书,再来说讲本身读过的一些比较好的书。这些书能够提升你的专业技能,让你的职业道路走的更扎实,更长远,因此我称为乘龙术。
《C程序设计语言》,机械工业出版社,做者Brian W. Kernighan / (美)Dennis M. Ritchie。
C语言之父写的,入门经典书籍,建议你们做为C语言入门的第一本书。
《C Primer Plus》 ,人民邮电出版社,做者Stephen Prata。
能够做为C语言工具书,也能够做为入门。
《C和指针》
深刻了解指针,看完之后对指针再也不惧怕。
《C陷阱与缺陷》
看完后能够避免C语言开发的一些坑。
《Windows程序设计(第5版 珍藏版)》
这是我在大二学C#时候看的一本书,里面的代码我所有在电脑上手打了一遍。
这本书主要介绍Window系统桌面软件的开发,想了解和从事这方面开发的同窗能够看看。
看过这本书,你会对你电脑上用到的软件有一个更深的体会。窗口是怎么出来,菜单点击后是怎么处理的,动画是怎么绘制的,软件又是怎么和操做系统通讯的,看完这本书你统统都会知道。
《Windows核心编程》
若是想对Windows系统有更深的了解能够看看这本书,我当时在图书馆看到了这本书,讲的也挺不错。
《鸟哥的Linux私房菜》
Linux入门书籍。我记得在大一下学期,有段时间本身痴迷安装各类版本的Linux系统,到最后虚拟机上把当时各类Linux发行版都装全了。
《编程之美》
这本书我没有看完,但里面的讲的算法都很不错,想对算法有提升的同窗这本书必定要看看。
《Java核心技术 卷1》,《Java核心技术 卷2》
这两本书是在上Java课时看的,一样不是咱们教材,在图书馆发现的。
讲的很好,能够做为Java入门书籍。
《Java并发编程实战》
讲Java并发库的一本书,这本书强烈推荐。本身看这本书的时间很晚,是研究生找工做时候看的。
找工做时基本都会问到书里的知识点,看这本书能够在找工做时给你带来直接的价值。
《Java并发编程艺术》
一样是讲Java并发编程的。Java并发编程实战相对来讲全是干货,看起来可能比较晦涩。这本书可能看起来更通熟易懂些,可是没有Java并发编程实战全面,你们能够搭配着读。
《第一行代码 Android》
Android开发入门书籍。由于我当时学Android时候这本书尚未,因此本身不是经过这本书入门的。
可是后面看过,讲的不错,能够做为入门书籍之一。
《Android 开发艺术探索》
这本书强烈推荐。是从Android初级向中高级进阶的必看书籍,里面讲的知识点都很好。重要的是Android面试会问到不少这本书里面的知识点,找Android开发必看。
《Android 系统源码代码情景分析》
从源码分析Android系统的书。本身找工做时候反复看了不少遍,面试时候也问到了一些知识点,找Android开发的也能够看看。
《深刻JavaWeb技术内幕》
从Android向后台转型过程当中看的一本书。比较全面的介绍了Java Web知识,能够看成入门辅助书籍。
《Spring in action 中文版》
学习Spring时候看的书,主要介绍了官方文档的知识。讲的很全面,准确度也高。
《Spring MVC学习指南》
Spring MVC入门书籍,能够快速上手Spring MVC。
《Maven实战》
学Java Web离不开Maven,这本是Maven入门书籍,讲的很全面。
《大型网站技术架构》
找工做时看的书,主要讲技术架构从小到大演变的过程。看完之后你就知道为何一个淘宝首页会有那么多程序员维护了,也能让你有理有据回怼对产品提出的“给我作一个淘宝,美团”的需求。
《大型分布式网站架构设计与实践》
主要介绍大型网站建设过程当中使用到的一些技术,能够做为技术参考书。
《大型网站系统与Java中间件开发实践》
从中间件角度介绍大型网站的建设。
《大话设计模式》
大二上设计模式课时看的书。当时的教材晦涩枯燥,在图书馆闲逛时看到了这本书。这本书以讲故事的形式逐一介绍了23种设计模式,生动形象。还有代码示例,能够变学边实践,是入门设计模式的一本好书。
《程序员修炼之道:从小工到专家》
大四时候看的书,能够学习书里提到的编码技巧。
《代码大全》
大四时候看的书,一样能够提升本身的专业素质,构建专业的编码风格。
《疯狂的程序员》
大一时候看的一本小说。讲了一个程序员大学、工做、创业、以及爱情故事经历的励志书籍。我在手机上看完的,看的时候热血澎湃,让我在大一就对程序员这个职业有了一个初步的认识。
《史蒂夫·乔布斯传》
这本书你们应该都听过,是我在大四时候看的。当时实体书比较贵,图书馆也没这本书,我在网上下载了电子版,花了两天时间趴在电脑上看完的。能够学习一下乔布斯创新和执着的精神,苹果有现在的成就不是偶然的,与乔布斯的作事风格有直接的关系。
《浪潮之巅》
研究生时从图书馆借的一本书。是一本互联网发展的历史书,看完能够对互联网的历史有必定的了解。
《黑客与画家》
硅谷教父写的书。我在研一时候看到的书,能够必定程度提升程序员的情商,财商。
这小节的标题是立地成佛。
别想太多,不是说你看完这些书就能成佛。看这些书只是让你的计算机基础更牢固,可是成为高手还有很长的路要走。
上面这些书也只是我读过的书的一小部分,还有不少书我没有提到。要想有更高的成就只读专业的书是不够的,还得读文学、历史、经济、商业等各方面的书。
并且光读书也不够,只能成为书呆子。学很重要,实践更重要,只有把学到的知识应用出来产生价值才能证实你确实学到了,也就是人们所说的学以至用。
因此在这里也建议你们多读书,读好书。
若是你是你学生,很幸运,你有大把读书的时间。少打点游戏,少看点综艺节目,少睡点懒觉,多去图书馆走走,自习室坐坐,你会拥有更精彩的人生。
若是你已经步入职场,工做再忙也要抽出点时间去多读读书,去升华一下本身,只有这样,在这个贩卖焦虑的社会你才会比别人多一份淡定与从容。
最后但愿你们都能活到老,学到老,立地成佛。
好文推荐:
若是想得到更多,欢迎关注公众号:七分熟pizza
若是想添加好友交流,关注公众号后回复:微信
公众号里我会分享更多技术以及职场方面的经验,你们有什么问题也能够直接在公众号向我提问交流。