精华内容
下载资源
问答
  • 值得一读好书

    2016-11-17 11:33:46
    有童鞋想要我介绍一些好书给大家,其实网上搜索一下,有很多名家或好大学开出过类似"一生必读的X本X书"这样的书目,鉴于层次和类型的适当性不一,这里也简单摘录一些,希望对大家有所帮助。 1. 科普类 自私的基因...

    转载:http://blog.sina.com.cn/s/blog_6c73f6ef01013arz.html

    有童鞋想要我介绍一些好书给大家,其实网上搜索一下,有很多名家或好大学开出过类似"一生必读的X本X书"这样的书目,鉴于层次和类型的适当性不一,这里也简单摘录一些,希望对大家有所帮助。

    1. 科普类

    自私的基因,道金斯(Dawkins Richard), 卢允中,张岱云译:http://dl.dbank.com/c0e2xcoray

    物种起源. 达尔文,周建人待译:http://dl.dbank.com/c013bn38cj

    方舟子带你走进科学,方舟子.(因版权问题,没有下载链接)

    寻找生命的逻辑,方舟子.(同上)

    2. 数学类

    数学史概论(第2版.(A.History of Mathematics(2nd).李文林。(同上)

    几何原本, 欧几里得, 兰纪正,朱恩宽译:http://dl.dbank.com/c0n3630g6k

    数学圈(In Mathematical Circles), (美)H. W. 伊弗斯,李泳译。(同上)

    数学史上的里程碑(Great.Moments.in.Mathematics).(美)H.W.伊弗斯,欧阳绛等译。(同上)

    3. 逻辑类

    逻辑与知识(1901-1950年论文集),(英)伯特兰 罗素, 苑莉均译: http://dl.dbank.com/c0b00jdris

    GEB,EGB-哥德尔,艾舍尔,巴赫:集异璧之大成.(美)侯世达, 郭维德等译:http://dl.dbank.com/c0tj5b6g8r

    4. 英语学习类

    超越哈佛,徐老师原典英语自学法. 徐火辉。(同上)

    超觉英语学习法,新东方论坛:http://dl.dbank.com/c0984o591h

    一壶烧不开的水:如何快速提高英语口语水平,(新加坡)李福海.(同上)

    5. 其它

    ACM图灵奖(1966-2006)(第三版)计算机发展史的缩影,吴鹤龄,崔林.(同上)

     

    (以后将不断更新)

    展开全文
  • Java_程序员们值得一看好书推荐.pdf是推荐给java程序员的书籍
  • 哪些技术好书值得一读?阿里大牛列了经典书单   喜爱读书,就等于把生活中寂寞无聊的时光换成巨大享受的时刻。有了书,各个领域的智慧,几乎触手可及。我们能有幸站在前辈、巨人的肩膀上,更远的风景...

    哪些技术好书值得一读再读?阿里大牛列了一份经典书单

     

    640?wx_fmt=png&wxfrom=5&wx_lazy=1

    喜爱读书,就等于把生活中寂寞无聊的时光换成巨大享受的时刻。有了书,各个领域的智慧,几乎触手可及。我们能有幸站在前辈、巨人的肩膀上,看更远的风景。

     

    4月23日世界读书日,阿里九位技术大牛为你推荐好书,与你一起共同成长、探索未来。

    世界图书日

     

     

     

    推荐书籍:《Effective Software Testing》

     

     

    640?wx_fmt=png&wxfrom=5&wx_lazy=1

     

    推荐者:霜波(资深测试开发专家)

     

    推荐理由:和其他传统软件测试书籍相比较,对自动化和持续集成的方案研究比较深入,能直面自动化和持续基础现阶段的一些问题,将软件测试的周期提前到需求,设计和开发的阶段,估计产品和开发一起加入测试的工作。同时对于质量的管理有一些自己的见解和实践经验,推荐给所有技术同学一起共享。

     

    阿里妹:天猫双11大队长推荐的好书,相信会为你打开一个新世界。

     

    推荐书:《程序员修炼之道-从小工到专家》

     

     

    640?wx_fmt=png

     

    推荐者:叔同(资深技术专家

     

    推荐理由:这是一本阐述方法论的书,关于程序员的自我修养,解决问题的方式、态度和哲学,是向高级程序员和专家进阶的思想启蒙书。从基本原则到编程风格,从思维方式到职业规划,内容覆盖广泛,兼具思想性和实用性,非常开拓视野提升格局。行文简单易懂,运用和实践却是不易,值得一读再读。

     

    推荐书籍:《设计模式之禅》

     

     

    640?wx_fmt=png

    推荐者:孤尽(阿里巴巴代码中心)

     

    推荐理由:对于设计模式,它能够指导我们编写出可维护性好、可扩展性强的代码,对于设计模式的理解层次,我分成五个等级,以金庸小说人物为例:第一级是杨铁心,即只知道所有设计模式的概念和定义;第二级是丘处机,能够写出相关设计模式的demo;第三级是梅超风,能够在现实中找出各个设计模式的原型;第四级是郭靖,能够在系统中抽象出来设计模式,并且合适地使用,有效隔离变化点。第五级是扫地僧,完全忘记设计模式,但写出来都是设计模式。《设计模式之禅》是一个非常好的入门,至少武功能够达到郭靖层面,讲解各个模式比较浅显易懂,促进大家在软件设计能力上的进步。

     

    阿里妹:提到孤尽,很多人都会想起《阿里巴巴JAVA开发手册》。在阿里技术公众号回复“手册”,即可下载哦。

     

    推荐书籍:《Spoken Language Processing: A Guide to Theory, Algorithm and System Development》

    640?wx_fmt=png

     

    推荐者:智捷(资深算法专家)

     

    推荐理由:“当今的知识世界是一个扁平的世界,很多人工智能算法已经通过open source的工具和opensource的数据库,使得大家可以轻易的获得并复现出结果。在这些“新知”之外,今天咱们要推荐一本老书,即由黄学东(微软Technical Fellow,语音及语言AI技术负责人)、Acero(Apple Siri高级总监)和洪小文(微软亚洲研究院院长)在多年前合著的语音和语言入门级专著。这本书深入浅出,将基础理论、语音识别、语音合成、语义理解和对话系统等进行了系统性的介绍,是了解口语对话系统最基础模块的一条捷径。通过这本书的‘面’上的引导,我们可以发现感兴趣的‘点’,并从这些点上更深入的进行研究和实践的工作。”

     

    推荐书籍:《机器学习导论》

     

    640?wx_fmt=png

     

    推荐者:粤谦(资深技术专家)

     

    推荐理由:这是一本很好的机器学习入门级教程,非常适用于高年级的本科生、研究生等同学学习机器学习领域的知识。这本书基本上涵盖了机器学习的相关知识,从无监督学习、参数方法、非参数方法、线性判别式、决策树、概率图模型、贝叶斯估计,到多层感知器、SVM和核机器、组合学习、强化学习等,都有较为全面的介绍。对算法原理阐述的比较清晰,也提供的相关的伪代码做深入的研究,并附带课程作业,非常适合机器学习的爱好者在熟悉理论基础的同时,可以进一步了解算法的原理并加以实践。

     

    阿里妹:机器都开始学习了,何况我们呢~?

     

    推荐书籍:《Reinforcement Learning: An Introduction》

     

    640?wx_fmt=png

     

    推荐者:仁重(资深算法专家)

     

    推荐理由:本书是强化学习领域的最经典书籍,它既是初学者打好强化学习基础的必读著作,也是强化学习研究者们需要温故而知新的强化学习宝典。该书的作者Richard S. Suttion和Andrew G. Barto是强化学习顶尖学者的代表,在此领域深耕超过30年。这本书详细地介绍了强化学习发展历程、经典方法以及现实应用。该书第一版于1998年发表,第二版于最近撰写完成。第二版保留了第一版的整体结构,对一些细节问题进行了更深入的剖析(比如:通过策略梯度的推导说明了经典的Tabular Actor-Critic方法的由来),同时也加入最近十几年强化学习领域的重要进展。 

     

    同时也推荐我们阿里自己的作品《强化学习在阿里的技术演进与业务创新》,本书从多个实例讲述强化学习如何在工业界应用。强化学习已经在游戏中获得了巨大的成功,但在实际工业界中,大家都还处于初步的尝试阶段,本书给大家提供一些思路,我们是怎么把强化学习应用在实际业务中,以及会遇到什么样的问题,怎么去解决,希望可以给大家一些帮助。

     

    阿里妹:关注阿里技术公众号,回复“强化学习”,即可下载《强化学习在阿里的技术演进与业务创新》(一般人我不告诉他)~

     

    推荐书籍:《Programming Rust》

    640?wx_fmt=png

    推荐者:布民(资深技术专家)

     

    推荐理由:随着互联网与移动应用的普及,大规模分布式系统正变得越来越重要。系统构建优势往往可以直接对应到商业竞争优势。与此形成对比的是,系统编程——也就是在资源受限情况下,实现安全、稳定和高性能(并发)系统——并不为大部分程序员所熟知。Rust是一门新兴的系统编程语言,它为安全性和并发而设计,提供高层的抽象,同时有C/C++的性能。希望大家通过阅读“Programming Rust”,不仅能欣赏到系统编程的美,也能帮助普及和推广系统化(编程)思维。

     

    阿里妹:这本书特别适合有经验的开发者(特别是C++)阅读,最好能够边做项目边学习,理解会更加透彻。

     

    推荐书籍:《Machine Learning: A Probabilistic Perspective》

     

     

    640?wx_fmt=png

     

    推荐者:鸿侠(资深算法专家)

     

    推荐理由:当今网络化的电子数据洪水泛滥,大数据公司的每一个项目都需要自动化的数据分析方法。机器学习提供了相应的解决方案,不仅可以自动检测数据中的模式,也可以使用学习到的模式来预测未覆盖到的数据。推荐的这本书使用统一的概率方法为机器学习领域提供了一个全面和独立的介绍。

     

    本书的深度和广度覆盖都很好,涵盖了概率,优化和线性代数等必要的背景材料,并详尽的涵盖了机器学习的最新发展,包括条件随机场,L1正则化和深度学习等比较流行的方向,并且提供了相应算法的伪代码。所有主题都用彩色图像进行了丰富的说明,并从生物学,文本处理,计算机视觉和机器人等应用领域中绘制了实例。

     

    阿里妹:ML领域经典教材,能够帮你建立起对该领域的整体认知。理解80%以上内容的童鞋,请不要犹豫速砸简历来~

     

    推荐书籍:《Architecture of a Database System》

     

    640?wx_fmt=png

     

    推荐者:圭多(资深技术专家)

     

    推荐理由:此书是数据库图灵奖获得者Stonebraker老爷子在2007年完成的,全书不长(119页),但极具功底。老爷子通过此书,向大家剖析了一个成熟数据库系统的整体架构,以及数据库的各个核心模块,包括:SQL与优化器、内存和存储管理、事务和并发控制等的设计原则和实现方式,是全面了解数据库系统的第一选择。

     

    阿里妹:想要了解数据库整体架构、内部运行机制,看这本就对了。

     

     

     

    640?wx_fmt=png

    以上的技术好书,只是冰山一角。你会为大家推荐哪一本好书(不仅限于技术类)?推荐理由是什么?欢迎在留言区分享,我们期待看到更多不同类型的好书。

    阿里妹将会选出最用心的10位童鞋,送出神秘的阿里技术限量周边一套。

    PS:受微信系统限制,上墙留言仅限100条,阿里妹会尽量让大家多上墙!

     

    活动截止:5月3日

    开奖方式:留言区置顶通告

     

     

     

    640?

     

    你可能还喜欢

    点击下方图片即可阅读

     

     

    640?wx_fmt=png

     

    速度收藏!《阿里技术参考图册》

     

    640?wx_fmt=jpeg

     

    使用开源项目的正确姿势,都是血和泪总结!

     

    640?wx_fmt=jpeg

     

    当数据库遇见FPGA:

    X-DB异构计算如何实现百万级TPS?

     

    640?wx_fmt=png

     

    关注「阿里技术」

    把握前沿技术脉搏

    展开全文
  • Java 程序员们值得一看好书推荐

    千次阅读 2016-11-07 18:26:25
    作者:mdcc ... 来源:知乎 著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。...能出版出来的书一定是经过反复的思考、雕琢和审核的,因此从专业性的角度来说,好书的价值远超其他资
    作者:mdcc
    
    链接:https://zhuanlan.zhihu.com/p/23444919
    来源:知乎
    著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

    “学习的最好途径就是看书“,这是我自己学习并且小有了一定的积累之后的第一体会。个人认为看书有两点好处:


    能出版出来的书一定是经过反复的思考、雕琢和审核的,因此从专业性的角度来说,一本好书的价值远超其他资料对着书上的代码自己敲的时候方便“看完书之后再次提升自我的最好途径是看一些相关的好博文“,我个人认为这是学习的第二步,因为一本书往往有好几百页,好的博文是自己看书学习之后的一些总结和提炼,对于梳理学习的内容很有好处,当然这里不是说自己的学习方法,就不再扯下去了。


    很多程序员们往往有看书的冲动,但不知道看哪些书,下面我就给各位Java程序猿们推荐一些好书(每本书的作者会加粗标红),其中绝大多数都是我自己平时在看的书,也算是我对于平时读的书做一个小总结和读后感吧。


    目前市面上讲解设计模式的书很多,我前面讲了看书是最好的,对设计模式感兴趣的朋友们,,要了解设计模式的大体路线:


    1、随便开篇点明该设计模式的定义


    2、图文并茂讲解该设计模式中的结构


    3、以详细的代码形式写一下该种设计模式的实现


    4、补充内容


    5、讲解该设计模式的优缺点


    对于一个设计模式我们关注、学习的知识点,不就是上面这些吗?不过我要重点提醒一下网友们,同一种设计模式的写法有多种,并不是说只有按某种写法来写才是这种设计模式。比方说适配器模式,我们关注适配器模式一定要关注的是什么是适配器模式不是怎么写适配器模式,不要认为某段代码不是按照适配器模式的写法写下来的它就不是适配器模式了,记住这一点,你在学习设计模式的时候一定会对代码中用到的设计模式有更深入的理解。


    《深入理解Java虚拟机:JVM高级特性与最佳实践》


    如果你不满足于做一个只会写if…else…的Java程序员,而是希望更进一步,我随便举几个例子吧:


    1、了解Java代码的底层运行机制


    2、定位性能问题


    3、对整个系统进行性能调优


    4、解决各种奇奇怪怪的线上线下问题


    5、更加高级别的,为自己的项目量身定做一款适合自己项目的虚拟机


    那么Java虚拟机是你必学的一门技术。《深入理解Java虚拟机:JVM高级特性与最佳实践》作者是周志明,这本书可以说是国内写得最好的有关Java虚拟机的书籍,近半年,前前后后这本书我起码看了有5遍。国内写虚拟机的书除了这本,其实还有一些其他的,我也买过,不过粗略看下来,很多内容也是《深入理解Java虚拟机:JVM高级特性与最佳实践》此书里面的。另外值得一提的是,《深入理解Java虚拟机:JVM高级特性与最佳实践》这本书,有电子版的,网上搜一下就能下载到了。不过建议有兴趣的朋友还是去买书看,电子版本下载到的一般是比较老的版本,相比最新修订版的《深入理解Java虚拟机:JVM高级特性与最佳实践》,有很多作者新补充的知识点是没有的。


    《HotSpot实战》


    所有的Java虚拟机都是遵循着Java虚拟机规范来的,市面上的Java虚拟机几十款,《深入理解Java虚拟机:JVM高级特性与最佳实践》一书里面讲的虚拟机并不针对某种特定的虚拟机,而是从Java虚拟机规范的角度来讲解Java虚拟机。


    我们平时使用的乃至商用的大多数Java虚拟机都是Sun公司的HotSpot,大家cmd进入命令行,使用”java -version”命令就可以看到了。如果希望在Java虚拟机规范的基础上更加深入地去理解虚拟机的一些细节是怎么实现的,就可以看一下《HotSpot实战》一书,作者是陈涛。不过由于HotSpot的源码都是C/C++写的,所以要求读者有非常好的C/C++基础,如果对这两门语言不是很熟悉的朋友,看这本书可能对你帮助不是很大。最后提一句,如果有兴趣的朋友,不妨先去网上下载一个openJDK,HotSpot的源码就在上面。


    《Java并发编程实战》


    这本书常常被列入Java程序员必读十大书籍排行榜前几位,不过个人不是很推荐这本书。


    《Java并发编程实战》作者是Brian Goetz,怎么说呢,这本书前前后后我也看了两遍左右,个人感受是:


    1、文字多代码少


    2、讲解多实践少


    我觉得这可能就是老外写书的特点吧,因为Java是北美国家(加拿大、美国)开发和维护的,所以老外对Java方方面面的理论知识体系都掌握得是非常清楚和透彻的。翻开这本书看,多线程什么用、什


    么是死锁、什么是竞争、什么是线程安全等等,方方面面的知识点都用大量的文字篇幅讲解,不免让人感觉十分枯燥,也难让读者有实质性的进步。我这本书看了两遍也属于一目十行意思,有兴趣的地方就重点看一下。无论如何,作为一本常常位于Java程序员必读十大书籍排行榜前几名的书,还是一定要推荐给大家的。


    《java多线程编程核心技术》


    《Java多线程编程核心技术》作者高洪岩。想要学习多线程的朋友,这本书是我大力推荐的,我的个人博客里面二十多篇的多线程博文都是基于此书,并且在这本书的基础上进行提炼和总结而写出来的。此书和《Java并发编程实战》相反,这本书的特点是大篇幅的代码+小篇幅的精讲解,可能这和中国人写的书比较偏向实用主义的风格有关。本书关于线程安全、synchronized、Reentrant、Timer等等都用详细的代码进行了讲解,而且每个大知识点下的多个小知识点都会详细讲解到,非常有实践价值。


    有兴趣的朋友们,我相信只要你们跟着这本书里面的代码敲、运行、思考,三步走,对于多线程的使用与理解一定会进几大步。


    不过这本书的缺点就是对于Java并发包下的一些类像CountDownLatch、Semphore、CyclicBarrier、Future、Callable等都没有讲到,重点的CAS和AQS也没有触及,重点类的实现原理也没有提。当然,这很深入了,在学习了这本书之后如果能再去对这些知识进行一些学习、研究的话,你一定会慢慢成长为一个很厉害的多线程高手。


    《Effective Java中文版》


    这是唯一一本我没有买的书。初识这本书,是在我的博文Java代码优化(长期更新)里面,底下评论的时候有朋友提到了这本书,当时我说要去买,不过这两个月一直都没时间去逛书店,甚是遗憾,之后肯定会找时间去买这本书的。


    《Effective Java中文版》的作者是Joshua Bloch,这个人就很厉害了,他是谷歌的首席架构师,属于超级技术大牛级别了吧,呵呵。由于没有看过这本书,所以我不好发表评论,但是从这本书的知名度以及其作者的来头来看(多提一句,这本书也是Java之父James Gosling博士推崇的一本书),我相信这一定是一本值得一看的好书。


    好的代码是每个Java程序员都应该去追求的,不是说我今天写一段好代码相比写一段烂代码对性能会有多大的提升,更多的应该是提升了代码的可读性以及可以规避许多潜在的、未知的问题,避免代码上线之后出问题而花时间去维护—-无论从时间成本、人力成本还是风险成本来说,这都是非常高的。


    《深入分析Java Web技术内幕》


    《深入分析Java Web技术内幕》,作者许令波,淘宝工程师。


    这本书我用一个字概括就是:全。真的非常全,HTTP、DNS、CDN、静态化、Jetty、Tomcat、Servlet、Spring、MyBatis等等,什么都有,涉及知识面非常广,但又不像专门精讲某个知识点的书籍一样讲得非常深入,感觉这本书就是尽量去用短的篇幅讲清楚一些Java Web使用到的技术的内幕,让读者对这些知识点的技术内幕有一个理性的认识。


    不过,尽管每个知识点的篇幅都不多,但是重点都基本讲到了,是一本让人真正有收获的书。如果想进一步了解这些技术的技术内幕,就要自己去买相关书籍或者自己上网查资料了,有种抛砖引玉,或


    者说师傅领进门、修行在个人的感觉。


    《大型网站技术架构 核心原理与案例分析》


    一个字评价这本书,屌;两个字评价这本书,很屌;三个字评价这本书,非常屌。呵呵,好了,再说下去可能别人以为我是水军了。


    《大型网站技术架构 核心原理与案例分析》的作者是李智慧,原阿里巴巴技术专家。


    Java的大多数应用都是用在Web上的,现在只要稍微大型一点的Web应用,都一定是一个分布式系统,那么一个分布式系统用到了哪些技术?一个大型网站是如何从一个小型网站成长起来的?如何保证你的网站安全?分布式系统使用到了缓存,有哪些缓存?缓存的使用有哪些值得注意的事项?


    关于分布式的知识点,都在这本书里面有体现,只有你想不到,没有他写不到,而且写得非常易懂,基本属于看一两遍,再记一些笔记就知道是怎么一回事儿了。多看几遍,对分布式的理解一定会加深


    不少。而且里面不仅仅是分布式的知识,还非常接地气地写了如何做一个好的架构师,其实我认为这不仅仅是写给想做架构师的读者看的,就是给读者一些建议,如何更好地提出意见、如何更让别人关注你的声音、如何看到他人的优点,入木三分,让人获益匪浅。


    《大型网站系统与Java中间件实践》


    《大型网站系统与Java中间件实践》作者曾宪杰,是淘宝的技术总监,算起来应该在阿里有至少P8的级别了吧。


    这本书的部分内容和上面一本李智慧的《大型网站技术架构 核心原理与案例分析》有所重合,像分布式系统的演化、CDN、CAP理论和BASE理论等等,这也更说明这些都是分布式系统或者说是一个大型网站重点关注的内容,当作一次再学习也不错。


    本书要突出的重点是中间件三个字,中间件是分布式系统中一个非常重要的东西,其最重要的作用应该就是解耦,降低模块与模块之间的强依赖,不同的模块之间的依赖度降低,便可以各自独立地开发自己的功能,这也可以说是软件工程发展的目标和驱动力。


    因此,本书有一部分的内容就是基于中间件,详细讲解了中间件与JMS的各种知识,适合对分布式系统比较熟悉并且想要往中间件方面有一定研究的读者。



    《MySQL5.6从零开始学》


    《MySQL5.6从零开始学》,作者刘增杰和李坤。


    作为一名Java程序员,我认为我们千万不要觉得数据库是DBA的事情,数据库对一个Java程序员来说也是必须掌握的一门知识,丰富的数据库性能优化经验是一个顶尖程序员必备技能。

    目前主流的数据库有Oracle和MySQL,当然推荐大家的是MySQL,主要原因我认为有两点:


    1、MySQL相比Oracle更轻量级、更小、安装和卸载更方便,SQL其实都是差不多的,如果想学数据库,学MySQL就可以了,在家里面可以自己方便地研究,如果你的公司使用Oracle,只要再用对比学习法,关注一下Oracle和MySQL的差别即可


    2、随着2009年阿里巴巴去IOE的运动的进行,目前国内的很多互联网公司都会选择MySQL作为它们使用的数据库,因为MySQL免费,所以既省钱又不需要出了问题就依赖甲骨文公司


    MySQL学习我推荐的是这本我自己学习看的《MySQL5.6从零开始学》,我是觉得挺好的这本书,书里面的知识点很细致、很全面,读者选择书籍的标准大多不就是这两点吗?


    《Spring源码深度解析》


    《Spring源码深度解析》,作者郝佳。


    Spring这个框架做得太好了,功能太强大了,以至于很多开发者都只知Spring,不知什么是工厂、什么是单例、什么是代理(我面试别人的真实体会)。这种功能强大的框架内部一定是很复杂的实现,


    这就导致一旦你的程序使用Spring,出了问题,可能是Error、可能是Exception、可能是程序运行结果不是你的预期的,出现诸如此类问题的时候,将会让你感到困惑,除了上网查资料或者问别人似乎没有更好的解决办法。


    研读Spring的源代码不失为一种很好的学习方法,我个人认为这有很多好处:


    1、理解框架内部的实现之后,可以主动去解决问题,而不需要依赖别人


    2、Spring框架内部实现用到了很多设计模式,很好的代码设计思路,这将会对你写代码、对你理解设计模式有很大的提高


    3、研究Spring框架将会大大增强你读代码的能力,我相信只要你能研究清楚Spring内部是如何实现的,其他任何一个框架的源代码都难不倒你


    总而言之,我认为读代码的能力是一个普通的程序员和一个好的程序员之间最大的差别之一,前者只会把别人写好的东西拿来用,后者不仅能用好,还清楚知道别人写好的东西底层是如何实现的,在出现问题的时候可以轻松解决。


    Spring源代码,个人推荐《Spring源码深度解析》一书,真要研究透并且写清楚Spring源代码,恐怕三四本书都不够,作者在近400页的篇幅中尽量去讲解Spring源代码是如何实现的,殊为不易,尽管无法讲得完全,但是相信作者的讲解配合上读者自己的研究,一定可以对Spring的实现有更深度的理解。(本书中28页的XmlBeanDefinitionReader写成XmlBeanFactoryReader,除此之外自己跟着源代码,然后一边看着书,感觉还是很不错的,不过这本书对于那些大牛来说可能作用不是很大。)


    后记


    以上就是我推荐给Java开发者们的一些值得一看的好书。但是这些书里面并没有Java基础、Java教程之类的书,不是我不推荐,而是离我自己学习Java基础技术也过去好几年了,我学习的时候看的什么也忘了,所以我不能不负责任地推荐一些我自己都没有看过的书给大家。

    ---------------------------------------------------------------------------------------------------------------------------

    关于这些书我都已经整理出来放在了我的群文件里面,如果有需要的同学可以进群459907919

    群链接如下:二维码页面

    展开全文
  • 学习的最好途径就是看书 "学习的最好途径就是看书",这是我自己学习并且小有了一定的积累之后的第..."完书之后再次提升自我的最好途径是一些相关的好博文",我个人认为这是学习的第二步,因为本书往往有好几

    学习的最好途径就是看书

    "学习的最好途径就是看书",这是我自己学习并且小有了一定的积累之后的第一体会。个人认为看书有两点好处:

    1、能出版出来的书一定是经过反复的思考、雕琢和审核的,因此从专业性的角度来说,一本好书的价值远超其他资料

    2、对着书上的代码自己敲的时候方便

    "看完书之后再次提升自我的最好途径是看一些相关的好博文",我个人认为这是学习的第二步,因为一本书往往有好几百页,好的博文是自己看书学习之后的一些总结和提炼,对于梳理学习的内容很有好处,当然这里不是说自己的学习方法,就不再扯下去了。

    很多程序员们往往有看书的冲动,但不知道看哪些书,下面我就给各位Java程序猿们推荐一些好书(每本书的作者会加粗标红),其中绝大多数都是我自己平时在看的书,也算是我对于平时读的书做一个小总结和读后感吧。

     

    《深入理解Java虚拟机:JVM高级特性与最佳实践》

    如果你不满足于做一个只会写if...else...的Java程序员,而是希望更进一步,我随便举几个例子吧:

    1、了解Java代码的底层运行机制

    2、定位性能问题

    3、对整个系统进行性能调优

    4、解决各种奇奇怪怪的线上线下问题

    5、更加高级别的,为自己的项目量身定做一款适合自己项目的虚拟机

    那么Java虚拟机是你必学的一门技术。《深入理解Java虚拟机:JVM高级特性与最佳实践》作者是周志明,这本书可以说是国内写得最好的有关Java虚拟机的书籍,近半年,前前后后这本书我起码看了有5遍。国内写虚拟机的书除了这本,其实还有一些其他的,我也买过,不过粗略看下来,很多内容也是《深入理解Java虚拟机:JVM高级特性与最佳实践》此书里面的。

    另外值得一提的是,《深入理解Java虚拟机:JVM高级特性与最佳实践》这本书,有电子版的,网上搜一下就能下载到了。不过建议有兴趣的朋友还是去买书看,电子版本下载到的一般是比较老的版本,相比最新修订版的《深入理解Java虚拟机:JVM高级特性与最佳实践》,有很多作者新补充的知识点是没有的。

     

    《HotSpot实战》

    所有的Java虚拟机都是遵循着Java虚拟机规范来的,市面上的Java虚拟机几十款,《深入理解Java虚拟机:JVM高级特性与最佳实践》一书里面讲的虚拟机并不针对某种特定的虚拟机,而是从Java虚拟机规范的角度来讲解Java虚拟机。

    我们平时使用的乃至商用的大多数Java虚拟机都是Sun公司的HotSpot,大家cmd进入命令行,使用"java -version"命令就可以看到了。如果希望在Java虚拟机规范的基础上更加深入地去理解虚拟机的一些细节是怎么实现的,就可以看一下《HotSpot实战》一书,作者是陈涛。不过由于HotSpot的源码都是C/C++写的,所以要求读者有非常好的C/C++基础,如果对这两门语言不是很熟悉的朋友,看这本书可能对你帮助不是很大。

    最后提一句,如果有兴趣的朋友,不妨先去网上下载一个openJDK,HotSpot的源码就在里面。

     

    《Java并发编程实战》

    这本书常常被列入Java程序员必读十大书籍排行榜前几位,不过个人不是很推荐这本书。

    《Java并发编程实战》作者是Brian Goetz,怎么说呢,这本书前前后后我也看了两遍左右,个人感受是:

    1、文字多代码少

    2、讲解多实践少

    我觉得这可能就是老外写书的特点吧,因为Java是北美国家(加拿大、美国)开发和维护的,所以老外对Java方方面面的理论知识体系都掌握得是非常清楚和透彻的。翻开这本书看,多线程什么用、什么是死锁、什么是竞争、什么是线程安全等等,方方面面的知识点都用大量的文字篇幅讲解,不免让人感觉十分枯燥,也难让读者有实质性的进步。我这本书看了两遍也属于一目十行意思,有兴趣的地方就重点看一下。

    无论如何,作为一本常常位于Jva程序员必读十大书籍排行榜前几名的书,还是一定要推荐给大家的。

     

    《Java多线程编程核心技术》

    《Java多线程编程核心技术》作者高洪岩。想要学习多线程的朋友,这本书是我大力推荐的,我的个人博客里面二十多篇的多线程博文都是基于此书,并且在这本书的基础上进行提炼和总结而写出来的。

    此书和《Java并发编程实战》相反,这本书的特点是大篇幅的代码+小篇幅的精讲解,可能这和中国人写的书比较偏向实用主义的风格有关。本书关于线程安全、synchronized、Reentrant、Timer等等都用详细的代码进行了讲解,而且每个大知识点下的多个小知识点都会详细讲解到,非常有实践价值。

    有兴趣的朋友们,我相信只要你们跟着这本书里面的代码敲、运行、思考,三步走,对于多线程的使用与理解一定会进几大步。

    不过这本书的缺点就是对于Java并发包下的一些类像CountDownLatch、Semphore、CyclicBarrier、Future、Callable等都没有讲到,重点的CAS和AQS也没有触及,重点类的实现原理也没有提。当然,这很深入了,在学习了这本书之后如果能再去对这些知识进行一些学习、研究的话,你一定会慢慢成长为一个很厉害的多线程高手。

     

    《Effective Java中文版》

    这是唯一一本我没有买的书。初识这本书,是在我的博文Java代码优化(长期更新)里面,底下评论的时候有朋友提到了这本书,当时我说要去买,不过这两个月一直都没时间去逛书店,甚是遗憾,之后肯定会找时间去买这本书的。

    《Effective Java中文版》的作者是Joshua Bloch,这个人就很厉害了,他是谷歌的首席架构师,属于超级技术大牛级别了吧,呵呵。由于没有看过这本书,所以我不好发表评论,但是从这本书的知名度以及其作者的来头来看(多提一句,这本书也是Java之父James Gosling博士推崇的一本书),我相信这一定是一本值得一看的好书。

    好的代码是每个Java程序员都应该去追求的,不是说我今天写一段好代码相比写一段烂代码对性能会有多大的提升,更多的应该是提升了代码的可读性以及可以规避许多潜在的、未知的问题,避免代码上线之后出问题而花时间去维护----无论从时间成本、人力成本还是风险成本来说,这都是非常高的。

     

    《深入分析Java Web技术内幕》

    《深入分析Java Web技术内幕》,作者许令波,淘宝工程师。

    这本书我用一个字概括就是:全。真的非常全,HTTP、DNS、CDN、静态化、Jetty、Tomcat、Servlet、Spring、MyBatis等等,什么都有,涉及知识面非常广,但又不像专门精讲某个知识点的书籍一样讲得非常深入,感觉这本书就是尽量去用短的篇幅讲清楚一些Java Web使用到的技术的内幕,让读者对这些知识点的技术内幕有一个理性的认识。

    不过,尽管每个知识点的篇幅都不多,但是重点都基本讲到了,是一本让人真正有收获的书。如果想进一步了解这些技术的技术内幕,就要自己去买相关书籍或者自己上网查资料了,有种抛砖引玉,或者说师傅领进门、修行在个人的感觉。

     

    《大型网站技术架构 核心原理与案例分析》

    一个字评价这本书,屌;两个字评价这本书,很屌;三个字评价这本书,非常屌。呵呵,好了,再说下去可能别人以为我是水军了。

    《大型网站技术架构 核心原理与案例分析》的作者是李智慧,原阿里巴巴技术专家。

    Java的大多数应用都是用在Web上的,现在只要稍微大型一点的Web应用,都一定是一个分布式系统,那么一个分布式系统用到了哪些技术?一个大型网站是如何从一个小型网站成长起来的?如何保证你的网站安全?分布式系统使用到了缓存,有哪些缓存?缓存的使用有哪些值得注意的事项?

    关于分布式的知识点,都在这本书里面有体现,只有你想不到,没有他写不到,而且写得非常易懂,基本属于看一两遍,再记一些笔记就知道是怎么一回事儿了。多看几遍,对分布式的理解一定会加深不少。而且里面不仅仅是分布式的知识,还非常接地气地写了如何做一个好的架构师,其实我认为这不仅仅是写给想做架构师的读者看的,就是给读者一些建议,如何更好地提出意见、如何更让别人关注你的声音、如何看到他人的优点,入木三分,让人获益匪浅。

     

    《大型网站系统与Java中间件实践》

    《大型网站系统与Java中间件实践》作者曾宪杰,是淘宝的技术总监,算起来应该在阿里有至少P8的级别了吧。

    这本书的部分内容和上面一本李智慧的《大型网站技术架构 核心原理与案例分析》有所重合,像分布式系统的演化、CDN、CAP理论和BASE理论等等,这也更说明这些都是分布式系统或者说是一个大型网站重点关注的内容,当作一次再学习也不错。

    本书要突出的重点是中间件三个字,中间件是分布式系统中一个非常重要的东西,其最重要的作用应该就是解耦,降低模块与模块之间的强依赖,不同的模块之间的依赖度降低,便可以各自独立地开发自己的功能,这也可以说是软件工程发展的目标和驱动力。

    因此,本书有一部分的内容就是基于中间件,详细讲解了中间件与JMS的各种知识,适合对分布式系统比较熟悉并且想要往中间件方面有一定研究的读者。

     

    《从Paxos到ZooKeeper 分布式一致性原理与实践》

    《从Paxos到ZooKeeper 分布式一致性原理与实践》,作者倪超,阿里巴巴工程师

    这本书是我最近在研读的一本书,和上面的《大型网站系统与Java中间件实践》一样,属于分布式组件的范畴,属于有些深入的内容,当然也是我自己的个人兴趣。当然,如果有志向做一个出色的大型网站架构师、公司的技术总监之类,这些知识当然是必须掌握的。

    本书从分布式系统基本理论开始讲起,讲到Paxos算法,最后慢慢引入到Zookeeper,循序渐进。当然,更多的我目前还不方便发表什么看法,因为这本书的第二章Paxos算法我都还没有弄懂(Paxos算法确实有些难以理解和不太易懂),接下来的章节还没有看下去。

    如果网友们所在的公司在使用Zookeeper,并且你又对Zookeeper感兴趣想要研究一下它的原理的,这本书将是不二之选。

     

    《MySQL5.6从零开始学》

    《MySQL5.6从零开始学》,作者刘增杰和李坤

    作为一名Java程序员,我认为我们千万不要觉得数据库是DBA的事情,数据库对一个Java程序员来说也是必须掌握的一门知识,丰富的数据库性能优化经验是一个顶尖程序员必备技能。

    目前主流的数据库有Oracle和MySQL,当然推荐大家的是MySQL,主要原因我认为有两点:

    1、MySQL相比Oracle更轻量级、更小、安装和卸载更方便,SQL其实都是差不多的,如果想学数据库,学MySQL就可以了,在家里面可以自己方便地研究,如果你的公司使用Oracle,只要再用对比学习法,关注一下Oracle和MySQL的差别即可

    2、随着2009年阿里巴巴去IOE的运动的进行,目前国内的很多互联网公司都会选择MySQL作为它们使用的数据库,因为MySQL免费,所以既省钱又不需要出了问题就依赖甲骨文公司

    MySQL学习我推荐的是这本我自己学习看的《MySQL5.6从零开始学》,我是觉得挺好的这本书,书里面的知识点很细致、很全面,读者选择书籍的标准大多不就是这两点吗?

     

    《Spring源码深度解析》

    《Spring源码深度解析》,作者郝佳

    Spring这个框架做得太好了,功能太强大了,以至于很多开发者都只知Spring,不知什么是工厂、什么是单例、什么是代理(我面试别人的真实体会)。这种功能强大的框架内部一定是很复杂的实现,这就导致一旦你的程序使用Spring,出了问题,可能是Error、可能是Exception、可能是程序运行结果不是你的预期的,出现诸如此类问题的时候,将会让你感到困惑,除了上网查资料或者问别人似乎没有更好的解决办法。

    研读Spring的源代码不失为一种很好的学习方法,我个人认为这有很多好处:

    1、理解框架内部的实现之后,可以主动去解决问题,而不需要依赖别人

    2、Spring框架内部实现用到了很多设计模式,很好的代码设计思路,这将会对你写代码、对你理解设计模式有很大的提高

    3、研究Spring框架将会大大增强你读代码的能力,我相信只要你能研究清楚Spring内部是如何实现的,其他任何一个框架的源代码都难不倒你

    总而言之,我认为读代码的能力是一个普通的程序员和一个好的程序员之间最大的差别之一,前者只会把别人写好的东西拿来用,后者不仅能用好,还清楚知道别人写好的东西底层是如何实现的,在出现问题的时候可以轻松解决。

    Spring源代码,个人推荐《Spring源码深度解析》一书,真要研究透并且写清楚Spring源代码,恐怕三四本书都不够,作者在近400页的篇幅中尽量去讲解Spring源代码是如何实现的,殊为不易,尽管无法讲得完全,但是相信作者的讲解配合上读者自己的研究,一定可以对Spring的实现有更深度的理解。

    后记

    以上就是我推荐给Java开发者们的一些值得一看的好书。但是这些书里面并没有Java基础、Java教程之类的书,不是我不推荐,而是离我自己学习Java基础技术也过去好几年了,我学习的时候看的什么也忘了,所以我不能不负责任地推荐一些我自己都没有看过的书给大家。

    Java学习交流QQ群:589809992 我们一起学Java!

    展开全文
  • 学习的最好途径就是看书 "学习的最好途径就是看书",这是我自己学习并且小有了一定的积累之后的第..."完书之后再次提升自我的最好途径是一些相关的好博文",我个人认为这是学习的第二步,因为本书往往有好几
  • 任何种艺术,不管是否重要,如果你想要在该领域出类拔萃,就必须全身心投入。 --阿尔伯蒂 (文艺复兴的代表人物) 程序写出来是给人的,附带能在机器上运行。 从他人的角度思考问题正是成功的奥秘所在。 ...
  • 导读:有哪些好书值得一看? 1、我想推荐加西亚·马尔克斯《霍乱时期的爱情》。 故事情节很简单,个叫佛洛伦蒂诺•阿里萨的文艺青年,看上了个叫费尔明娜•达萨的少女。两人通过写情书,搞地下恋,甚至谋划结婚...
  • 学习的最好途径就是看书 ...1、能出版出来的书一定是经过反复的思考、雕琢和审核的,因此从专业性的角度来说,好书的价值远超其他资料 2、对着书上的代码自己敲的时候方便 "完书之后再次
  • 能出版出来的书一定是经过反复的思考、雕琢和审核的,因此从专业性的角度来说,好书的价值远超其他资料 对着书上的代码自己敲的时候方便 “完书之后再次提升自我的最好途径是一些相关的好博文“,我个人...
  • 值得一读的品牌类好书

    千次阅读 2014-01-25 08:56:59
    搜集优秀书单时,发现了 崔洪波 写的篇关于品牌类书单推荐,先搬过来,供品牌咨询人、品牌营销人士阅读。 在 我和正见品牌顾问的伙伴们看来,品牌咨询面临的是个无时无刻不在变化的战略环境,以及因行业和...
  • 当我们第读一好书的...2019年来了,给自己充充电吧,一些让自己终生受益的好书,下面就是一些好书推荐,每本都值得细细品味。。。 1. 《被掩埋的巨人》 (石黑一雄) 推荐理由: “伤口愈合很慢,...
  • Android 开发都有哪些好书值得一读

    千次阅读 2020-10-23 08:45:00
    code小生 个专注大前端领域的技术平台公众号回复Android加入安卓技术群Android 近几年不单单更新的快,新引进的技术也增加了不少,总体是 Google 在向个更好的趋势发...
  • 当你准备学习前端的时候,首先会想先搜搜有什么学习资料可以利用。琳琅满目的视频课程让你挑花了眼,于是你开始烦躁不已,想找本书安静地学习。好书总是会让你在学习的过程中有很多 Aha!M...
  • 能出版出来的书一定是经过反复的思考、雕琢和审核的,因此从专业性的角度来说,好书的价值远超其他资料 对着书上的代码自己敲的时候方便 “完书之后再次提升自我的最好途径是一些相关的好博文“,我个人认为...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 17,119
精华内容 6,847
关键字:

值得一读的经典好书