java程序员进阶相关书籍
引言
java自从1995问世以来,经过20多年的发展,涉及的领域很广,业界都把它为它j2se,j2ee,j2me(已被android代替)。在apache的官方上,可以看到,从a-z字母排序的这些开源项目中,绝大多数的开源工具都是使用java开发的,由此可见,java仍是世界各国程序员喜欢并常用的语言。工作八年,java一直在用,有时身边的同事会问,推荐几本java相关的书籍。正好今天没加班,可以好好总结一下,希望能对初学者有用。
回忆
工作后,买了很多书,涉及java、flex/as3、游戏编程、html5、android等,只可惜每次搬家都要抛弃不少书,记得在北京的那些年,每年房租基本都涨30%以上,然后就跟同学一起搬家了,在号称为北京的码农线(13号线)沿线的几个站边上都住过,从西二旗从回龙观东大街。。。一把辛酸泪,估计这也是不少草根漂难以忘怀的一段往事吧,即使像我这种已离开的人。。。2014年12月离开北京时,有些书实在是不舍得扔,只好邮寄过来了。但快递太贵,只能通过物流,记得物流费就花了近500元。。。
推荐书籍
1.《深入分析Java Web技术内幕》,这本书是阿里的P8级专家(看其最新动态,2016年底去滴滴研究院了,title是研究员)写的,内容涉及http、tomcat、jetty、selvlet等,可能在大部分人眼里,这些内容可能
毕业一两年的初学都都会。但是,虽然此书没有将每一个知识点都讲的很深入,但他将互联网web开发相的一系列相关技术都一一列出,没有在互联网呆过的同学,很多技术都可能接触不到,此书可以让你历经互联网所使用的相关技术,如果能深入,可以专门研某一个知识点,如果http、tomcat、nginx、
缓存等。正所谓师傅领进门,成就在个人。
2.《大型网站技术架构 核心原理与案例分析》,此书也是阿里专家级别程序员
的佳作,如果你想了解分布式,看此书就对了。同时,你还可以看到一个小网
站如何慢慢成长为互联网巨头时,会经历哪些技术难题。
3.《大型网站系统与Java中间件实践》此书也是阿里专家级别程序员,跟上本书
的内容有些重叠,在此书中,你也可以看一个小网站在成长过程中会遇到哪些
技术难题,然后又是如何解决的,如:服务化、消息中间件、集中配置管理等。
4.《从Paxos到ZooKeeper 分布式一致性原理与实践》,作者还是阿里的。如果
想了解分布式,此书是必看的,你可以了解到CAP、2PC、3PC等。如果你想对
zookeeper有更加深入的了解,那本书就更应该看看了。作者带你了解zookeeper
在阿里的运用,如:服务重量级框架dubbo、storm的阿里版jstorm、mysql的
binlog同步工具canal,然后再让你从源码的角度深入了解zookeeper。
5.《深入理解Java虚拟机:JVM高级特性与最佳实践》,当你的生产环境出现这种
奇怪问题,不知道如何定位时;如果你不想仅限于写代码,希望把代码运行的
更高效时;如果你想对java运行机制有更深入的了解;那这本书可以帮你。此书
介绍了jvm的运作机制、jvm性能监控工具、gc等内容。
6.《Java并发编程实战》此书是老外写的,理论太多,实践太少,想了解概念的
可以看看。
AI/机器学习
以下几本书,跟java其实关系不大,但眼下大数据趋于平淡,AI作为时代的弄潮儿,甚至AI跟大数据一样,今年7月已被国家上升为*战略,可见AI之火。我认为数学、统计学是AI的基础,基本上从事这项工作的程序员,基本上是硕士级别及以上学历。2014年初,在五道口参加过机器学习相关的技术培训,让我感受到数学和统计学是如此的重要,只可惜当初在学校时没能好好学。但是,没有研究生的屌丝也不能气馁哇,正所谓勤能补拙,亡羊补牢,犹未迟也
1.《集体智慧编程》,此书是IBM资深工程师编写。作者从真实的案例,让你了解
机器学习在日常生活中的运用,如:商品的推荐系统,当你在jd上浏览某个商品
后,然后近期都会看到jd给你推荐相关的商品;还有google、baidu成功的秘诀:
倒排索引等等。
2.《数学之美》,此书是前google、tecent工作过的吴军博士编写。作者把把生活
中遇到的复杂的、摸不着头脑的问题,以简单清晰和直观有效的模型或者公式解
答出来。将生活中的现象与数学联系起来了。书中有模电、数电的内容,貌似也
很适合在校生看。
3.《统计学习方法》,此书一直被奉为经典,只可惜身为学渣的我,看到此书的公式
就头痛,始终都找不到看到的动力啊。。。不过,还是要推荐一下。
4.《程序员的数学1+2+3 数学思维+概率统计+线性代数》,作者是日本人。虽然中国人跟小日本有仇,曾经抗战了14年之久。但知识无国界,抛开这历史先。此书内容是计算机基础数学,用程序员的思维去讲解数学,恰好可以弥补像我这种学渣的数学基础。
总结
以上纯属个人看法,算是工作八年对java的部分总结吧。身为程序员,需要不断充实自己,以免跟不上时代的潮流。但是,有句话说的好:纸上得来终觉浅,绝知此事要躬行。书中的知识看懂了,还是要运用中实际工作中,才能更好的领悟。。。