最近有学弟/妹问我,找工作的话需要看那些书,想想距离上一次写书单已经两年了,索性再更新一版吧,希望里面的书能有所帮助(PS:然而大多数人的做法是,买了好多书,然后就没有然后了......当然也有我......)
因为我找的是Java方向的工作,所以本书单大部分都是跟Java相关的,书单中大部分的书我都看过,也会列入一些打算看的书,另外会推荐一些书之外的、我个人很喜欢的东西
《Java编程思想(Thinking in Java)》
这应该是Java程序员买的最多的书了,好吧,我并没有全部看完,从我刚开始学Java到工作,每次都是简单的翻了一下,不过每次看这本书都会有不同的收获,这本厚重、印刷差、排版难看的书在我心中的地位也越来越高
《Effective Java》
这是一本我快要翻烂了的书,也是我工位上一直放着的书。个人认为,这本书是从学会Java到学好Java必看的一本书
《Head First设计模式》
一本和《Thinking in Java》差不多厚的书,但是丰富的插图和轻松地讲解,让阅读这本书的过程中充满乐趣。设计模式也是一个程序员需要掌握的基础知识,另外也推荐一下四人帮的《设计模式》一书(没看过,不做评论)
《代码整洁之道》
我觉得这也应该是每一个Java程序员应该读一读的书,在公司中,每天都需要阅读大量的、前人的代码,然而出于某种原因,某些代码的质量实在让人不敢恭维,时常会听见“x,谁写的什么xx玩意儿”。批评别人之前,最好是先把自己的做好
(PS,上面两本书让我对写代码有了全新的认识,大概是“原来代码还可以这样写”的感觉)
《Java并发编程实战》
某东神强烈推荐的,据说他跟面试官扯了一个小时这本书的内容,然后成功入职某巴巴。虽然我这么干了没成功,不过还是推荐一下。初上手觉得书的内容略难,我读了三遍左右,才敢说稍微懂了点书中的内容。随着信息的膨胀,用户的增长,并发编程扮演着越来越重要的角色,Doug Lea大神的concurrent包,应该被装进每一个Java程序员的工具包内
《深入理解Java虚拟机》
国人出的书中难得的精品。对于了解虚拟机的一些实现机制来说,这本书的内容足够了(面试也足够了)。书中部分章节比较枯燥(字节码那部分),需要一定的耐心,不过整体来说可读性还是很高的
《Java程序员修炼之道》
一本着重介绍Java7之后的“世界”的书,讲解了Java7的一些新特性,Jvm上多语言编程是我买这本书的原因,不过其他章节的内容也深深的吸引了我
《Spring in Action》
Spring框架不需多说,这个已经可以算作Java的基础知识之一了,《Spring in Action》也是最火的Spring入门书籍。如果英文够好的话,直接去阅读Spring的官方文档是一个更好的选择
《Maven实战》
提这本书不是想说这本书有多好,只是想表达maven很重要,Java程序员必须会的东西
《数据结构与算法分析:Java语言实现》
数据结构可以说是基础中的基础,曾经有句话叫“程序=数据结构+算法”,这句话笑笑就好,不过数据结构也一直是面试的重点,贯穿应届校招到社招
《啊哈,算法》
为了突击面试买的算法书,小而短,讲的内容不多,可以当作休闲用书;算法不是我的强项,平时对算法的研究,基本就是熄灯之后,睡觉之前,讨论一下一些有趣的算法题。算法类有名的书《算法导论》、《编程之美》、《算法》、July的博客(网易公开课上有)
《代码的未来》
学一门脚本语言很重要,日呆的我更喜欢来自岛国的Ruby,通过其作者也了解到了这本书。Matz从自身经验出发,介绍了过去、现在,也预测了一下未来,书的内容是他发的文章整理起来的,对于拓宽一下视野很有帮助
《Ruby基础教程》
上文说过喜欢Ruby,所以买了这本Ruby的入门书籍。其实没看多少,学Ruby基本都是靠Ruby Koans:)对于打算学习脚本语言的同学,我想说的是,Python用的比较多......
《鸟哥的Linux私房菜》
或许每一个想要学习Linux的人,都听过这本书。讲的也比较轻松有趣,不过我始终认为,学习Linux的最好方式,就是装一个系统天天玩
《Java性能优化权威指南》
去年系统出现了严重的性能问题,因此入了这本书,只看了前几章。不过那段时间确实学到了一些查bug的技巧,跟上一条一样,实践出真知(不过学习Linux不会有人逼着你必须今天下班之前搞定.....)
《Operating Systems: Three Easy Pieces》
豆瓣评分9.5的操作系统相关的书籍,全英文版的,个人阅读的速度比较慢,整体内容很吸引人。作为程序员的三大浪漫之一,操作系统相关问题也是面试中的常客,或多或少都需要有一些了解
《第一本Docker书》
14年年末了解到的Docker,感觉Docker在一瞬间就火遍了大江南北,不了解一点相关的内容,怎么在地铁、微博、朋友圈跟别人谈笑风生?(更大的悲剧是,朋友圈里都是聊技术的......)
《数据库系统概念》
基础知识类的,至少需要把常用的SQL、几范式搞懂,避免设计出来的东西在需求会上被喷
《Groovy程序设计》
Jvm上的多语言编程充满魅力,而学习其他Jvm语言的话,Groovy无疑是最快的一个。了解一下,面试的时候也会多一个吹嘘的资本
《七周七并发模型》
Paul Butcher大神的书,介绍了7种并发模型,当然全看完的话不需要七周。有幸听过Paul Butcher大神在Qcon上的演讲,一句话总结就是,并发不难,多用成熟的框架就好,自己从Thread开始写会类似
一些其他的书
《数学女孩》
一直都很喜欢数学,看到这本封面还挺文艺的,就买来看了。讲的东西由浅入深,穿插着高中生朦胧的小暧昧......看完这本书我只有一个感想,当年我数学也挺好的,怎么没给我几个这样的妹纸?
《白夜行》
看完这本成了东野圭吾的脑残粉。推荐的原因一个是好看,一个是挺长的,地铁上能看好几天
有点跑偏,好吧,想介绍的其他的东西是:
Vim
这是程序员智慧的结晶,能极大的提升生产效率,类似的还有emacs
Markdown
总写东西的话,这个推荐了解一下,上手极其容易,这个也是我使用简书的原因,不多介绍,可以自行百度
暂时先写这么多,从手边的书柜上挑了一些想写的,还有一部分不在身边的和看过的电子书,后续继续更新