Thomas H.Cormen的《算法导论》:这是一本算法宝典,它险些涵盖了算法和数据构造的所有方面,并且深入地去讲解和剖析,《算法导论》值得每位程序员都买上一本,建议把它摆在电脑桌旁作为参考书。
Jon Bentley的《编程珠玑》:Jon是一位算法大师,被评为影响算法发展的十位大师之一,大家都知道James Gosling和Joshua Bloch吧,他们都曾是Jon的学生。《编程珠玑》可以说是一套算法的智力题,它总会带给读者意外和惊喜,这是本翻开后就会不克不及自休的书;其余它的习题和正文一样有趣,一定不要错过。相信我,这本书值得读上好几遍。
可能精通算法的你会抱怨说算法类的书本怎么能没有Donald E.Knuth的《打算机程序设计艺术》;TAOCP确实是本伟大的书本,但由于我没有读过,以是没有列出来;不过还是向希望对算法有深入研究的程序员推举下。
软件工程类:
Freeman的《Head First设计模式》:这是一本java程序员学习设计模式的绝佳入门书本,它并没有涵盖GoF的《设计模式》中所有的23种设计模式,但是它还是有自己的独特一壁,比如它先容了几种在GoF的《设计模式》中没有提到的模式:大略工厂和空工具;而且它还会给出一些编程时十分精良的建议。如果在读GoF的《设计模式》时觉得不好理解,建议先读读这本书;它就像一杯下午茶,能让你愉快地、轻松地进入设计模式的天下。
Martin Fowler的《重构 改进既有代码的设计》:重构可以说是程序员编程时做得最多的一件事,而这本书则是重构领域的王者之作;或许你会认为自己已经对重构十分熟习了,不再须要任何书本了;但是这本书还是非常值得读一读的,它给出了非常详细的重构的方法及过程,还先容了如何去嗅出代码中的坏味道。
GoF的《设计模式 可复用面向工具软件的根本》:设计模式领域的王者之作,这本书详细地讲解了23种经典的设计模式及其运用处景;这本书绝对值得读好几遍。
Frederick P.Brooks的《人月神话》:这本书在软件工程领域的影响十分深远,它的内容来自于Brooks在IBM的OS/360的项目管理履历。Brooks在这本书中提出了两个十分经典的不雅观点:1)向一个韶光上已经掉队的项目投入更多人力只会使得这个项目更加掉队;2)没有银弹。个中第二个不雅观点到现在还被大家热议。
Tom DeMarco的《人件》:这本书和《人月神话》并称为软件图书“双子星”;如果说《人月神话》先容的是如何管理“软件”,那《人件》先容的便是如何管理“人”;这本书思想前卫,不雅观点深入,举例详细,是一本管理者必看的书本;如果你的团队很低效,离职率高,创新能力差,那你一定要翻翻这本书,由于你很有可能从中找到办理之道。
Steve McConnell的《代码大全》:这本书涵盖了软件生命周期的每一个阶段,它不仅是写给开拓职员看的,同时还适宜需求和测试职员阅读;《代码大全》先容的内容太多太全面了,我就不一一列举了;这里我大略提下它在“个人性情”一章中给出的几点建议:1)做一个谦逊老实的程序员;2)如果你确信你是对的,那么要敢于和你的上司说不;3)每周坚持读几十页经典的书本或技能文章,一段韶光往后你会创造自己和身边的人不一样了(如果他们不这样做的话)。
j2se类:Horstmann Gay S.的《Java核心技能》:这是一本绝佳的java入门书本。有人说《Java编程思想》是java的最佳入门书本,我可不赞许;个人认为《Java编程思想》更适宜那些有编程履历的人来学习java;而对付没有任何编程履历的人来说,这本普通易懂的书是最佳选择。其余这本书有高下两卷,第一卷先容根本知识,第二卷先容高等特性;我只看了第一卷,不敢对第二卷有任何评价;不过还是推举大家去读一读第二卷;相信它不会让大家失落望的。
Bruce Eckel的《Java编程思想》:这是一本全面、深入地先容java特性的精良书本。由于这本书Bruce一度被评为影响java天下的十大人物之一。
Joshua Bloch的《Java解惑》:你可能在事情时掉入了一些java的陷阱,而这本书可以帮你走出来;《Java解惑》非常适宜你觉得无所事事时拿出来翻翻,一旦打开它,你会创造它十分有趣。
Joshua Bloch的《Effective Java中文版》:当你读完这本书,你就会明白为什么Joshua能带领java走向辉煌。这本书给出了70多条java编程时的精良建议;每位java程序员都该当买上一本并把它放在电脑桌旁作为参考书。下面这段话来自James Gosing的书评:“我很希望10年前就拥有这本书。可能有人认为我不须要任何Java方面的书本,但是我须要这本书”。
Bill Venners的《深入Java虚拟机》:和前面几本书不一样,这本书先容的并不是java特性,而是java实现机制和jvm。你可能知道怎么精确地去利用java,但是却不清楚为什么这么用,而这本书正能给你答案;强烈推举大家去细细品味它。
Tim Lindholm的《Java虚拟机规范(Java SE 7版)》:这是一本先容虚拟机规范的书本,oracle官方发布的书本(书本封面是这么说的);它和《深入Java虚拟机》不同之处在于这本书先容的内容比《深入Java虚拟机》要新,其余这本书是本先容纯理论的书本(险些没有示例),以是须要耐心来阅读(建议先理解下汇编干系知识)。买一本吧(当然是作为参考书啦)。
Charlie Hunt的《Java性能优化威信指南》:这是一本先容Java SE和Java EE性能调优的书本,本书前几章先容了JVM的一些特性、优化和垃圾回收机制(非常详细)等,中间几章先容Java SE方面的调优,紧张是环绕Windows、Llinux、和Solaris三种操作系统来先容的,末了几章先容了Java EE方面的调优,紧张先容了web运用、Web Service、EJB等方面的调优。本书被奉为java性能调优的圣经,James Gosling是这么评价这本书的:“本书是Java性能优化的圣经!
如果你是一个细节控,那么这本书正适宜你。”。
Marty Hall的《Servlet与JSP核心编程》:这本书是学习servlet和jsp的绝佳书本,它继续了精良书本的一向传统:大略易懂和全面。这本书分为两卷,第一卷讲的是servlet和jsp的根本知识,第二卷讲的则是实战方面的知识。虽然这边书并没有先容j2ee的主角EJB,但是它仍是java web开拓的精良参考书。
Rod Johnson的《expert one-on-one J2EE Development without EJB》:这本书客不雅观地批评了传统的j2ee架构,更是把矛头指向了大名鼎鼎的EJB;它指出了EJB的几大缺陷,比如学习周期长、可测试性差、实体bean的性能问题等等;他还先容了EJB的更换框架:spring。
Ricbard Monson-Haefel的《Enterprise JavaBeans》:这是一本讲解EJB的精良书本,它补充了《Servlet与JSP核心编程》的空缺;这本书十分详细而全面地讲解了EJB,是一本十分精良的EJB入门书本。
Michael Girdley的《J2EE运用与BEA WebLogic Server》:这是一本讲解J2EE的绝佳书本,它涵盖了j2ee的所有方面,并给出了j2ee各个部分的最佳实践;推举每位j2ee的开拓职员都买上一本作为参考书。
Deepak Alur的《J2EE核心模式》:这是一本讲解j2ee架构的书本,它把j2ee模式分为了三类:表现层模式、业务层模式和集成层模式;并且详细讲解了各种模式的设计技巧。很多公司的核心软件架构都是按照这本书的先容来设计的(你以为我会见告你我现在这家公司的整体架构便是按照这本书的先容来设计的?)。每位j2ee程序员都该当买上一本作为参考书。
Linux:Richard Blum的《Linux命令行与Shell脚本编程大全》:这是一本先容linux和shell的绝佳入门书本,它由浅入深地讲解了Linux和shell编程,非常适宜初学者学习;然而书中还有大量的shell脚本示例,非常适宜作为demo学习,当然也可以用于日常事情之中。
web前端类:Andy Budd的《精通CSS 高等Web标准办理方案》:这是本讲解css的完美书本,十分易读和全面,每位前端开拓职员都该当买上一本作为参考书。
Dave Shea的《CSS禅意花园》:当你读完这本书,你会创造css是一门艺术,细细去品味它吧。
Nicholas C.Zakas的《JavaScript高等程序设计》:这是一本讲解js的经典书本,你在js编程时碰着的问题险些都能在这本书上找到答案。每位js程序员都该当买上一本作为参考书。
Ryan Asleson的《Ajax根本教程》:虽然这是一本讲解ajax的根本书本,但不能粉饰它的经典。它的后端实例代码都是用servlet和jsp实现的,非常适宜java程序员阅读。
我的学习重点是在后端,对前端研究不是很深,有些经典的书本可能没有打仗过,欢迎大家补充。Viaweb
非技能类:Paul Graham的《黑客与画家:硅谷创业之父paul graham文集》:这并不是一本先容技能的书本(除了文末先容的过滤垃圾邮件的方法),但它的吸引力十分惊人:下载完它的pdf文件后我花了两个通宵去读完了它(以至于我都没有韶光去买这本书)。你是否有过创业的想法?如果有,一定要去阅读这本书;Paul在这本书中详解地先容了Viaweb的创业过程以及个中碰着的困难,你一定会从中找到共鸣并受益匪浅。
转自:https://www.jianshu.com/p/b94a9266b48a