值得学习的技术人——江南白衣

认识江南白衣,从SpringSide项目开始,后来才知道真人是肖桦,资深Java技术专家,现就职于唯品会。类似阿里的Java开发规范,出了唯品会的Java开发规范,还有VJTools-唯品会Java核心项目

肖桦,网络 ID 「江南白衣」,70后资深程序员,「花钱的年华( 花钱的年华 - 江南白衣,春天的旁边 )」博主,第一波互联网浪潮(泡沫)创业者,著名 Java 开源项目 SpringSide 的缔造者。随着 Spring 的大规模普及,每个使用 Java 和 Spring 的开发者都或多或少的受益于 SpringSide,要么直接在 SpringSide 上构建项目和平台,要么阅读 SpringSide 的源代码和设计思想。

为什么要做 SpringSide 呢?

那是十多年前的一个晚上,白衣热的睡不着觉,他一直在思考「我是谁,从哪来,到哪去」这样的终极问题,最终也没有想清楚。好吧,那就让我们为这个世界留下一些什么吧。写一本书还是做一个开源项目?书印出来了就没法改了,但白衣是一个完美主义者……而开源项目,可以永远年轻,永远生长,永远重构……于是就有了 SpringSide,这个项目还有一个好听的中文名称「春天的旁边」。

最后转一份白衣的书单,送给有需要的朋友。

1. 操作系统与网络的书

《Linux内核设计与实现 第3版》
Robert Love用最薄的篇幅,顺畅的文字将Linux内核主要的算法讲清楚了,《深入理解Linux内核》《深入Linux内核架构》之类厚厚的全是代码,不是专门的内核程序员看这本足够了。

《Linux系统编程 第2版》
继续是Robert Love,比起APUE也是以薄见长,专门针对重要的系统调用讲解。

《性能之巅》
操作系统的性能调优、监控、工具和方法论,看这本就够了,已经足够厚,可能是书单里最厚的一本。

《TCP/IP详解 卷1:协议》
这么多年过去了,TCP的书好像主要还是只有这一本,有点旧了,看了也还是半懂不懂的。后人在2011年写了第二版,机械工业正在翻译。

《WireShark网络分析就这么简单》和 《WireShark网络分析的艺术》 new!
多少人,是看了这两本轻松又实战的书,才真正理解TCP的细节。

PS:《UNIX环境高级编程》《UNIX网络编程》,APUE和UNP更多作为一本超厚工具书存在。《Unix 编程艺术》,扯的都是闲篇,厚厚的一本其实略读一下就行。 《现代操作系统 第3版》如果看LKD未尽兴,可以回头看看这本基础概念,感觉比那本枯燥的《操作系统概念》(恐龙书)读起来舒服。

《TCP/IP指南》 前面wireshark书作者的推荐,网上有英文免费版,然后有中文版的卷1卷2,但可能那么多章节那么厚你只关心TCP和HTTP两部分。《HTTP权威指南》,同样是自己从厚厚的目录里挑选感兴趣的章节来看。另外,那些日本韩国人写的《图解XXX》感觉都不喜欢,真的不行。

2. 算法的书

《数据结构与算法分析-Java语言描述 第3版》
够薄,数据结构与算法分析的点基本都涵盖了,而且喜欢它的示例代码是Java写的,新出了第3版。

《算法 第4版》
可与上一本对比着读,厚一些,也多些图,但知识点没上面的全,也是Java的。

PS: 《数学之美》《编程珠玑》,都是专栏文章,讲得并不系统,可以当兴趣读物来看。
《算法设计与分析基础 第3版》数学系偏爱无比枯燥很多公式的《算法导论》, 计算机系喜欢这本实用主义的典型。

3. 架构设计的书

《软件系统架构:使用视点和视角与利益相关者合作 第2版》
也是教科书,最难得的是,这本老书在十年后的去年升级了第二版,所以感觉鲜活了好多,也许是最鲜活的一本架构书。

《恰如其分的软件架构 - 风险驱动的设计方法》
由于人类与生俱来的惰性,计算机原本科学的、精准的设计方式,有了敏捷的借口之后就很难再维持了。本书就是在这种背景下,提出由风险来决定设计的度。除了开始的风险驱动部分,其余部分就是规规矩矩标标准准的架构师教科书。

《发布!软件的设计与部署 - Release It!: Design and Deploy Production-Ready Software 》
关于高可靠性的软件,学校里不会教,出来社会却要面对的那部分,英文的原标题更清晰。

《大型网站技术架构:核心原理与案例分析》
淘宝出品,大型互联网站的科普入门书。

《高扩展性网站的50条原则》 new!
同是入门级读物,如果还有个高可用50条原则,那就齐了。

《微服务设计》 new!
那么多微服务的书,还是这本比较不像赚快钱的。

《大数据日知录》
前几年参加各种技术会议,CAP,最终一致性,RWN,向量时钟,Paxos,一致性哈希,Gossip什么的能灌你一耳朵。而现在,你只要在家安安静静的看书就够了。不过这个领域发展太快,又一年过去了,期望它可以持续出新版。

PS: 关于设计模式,我以前曾经有过很多很多本,GOF23啦,企业应用架构模式啦,EIP啦, POSA 5卷本啦,反模式啦,JavaEE/SOA/Restful的模式啦。但现在觉得对新人来说,一本Java写的《Head First 设计模式》,知道什么叫设计模式就够了。

《程序员必读之软件架构》作者维护着codingthearchitecture.com 。不过中文书名叫“必读”有点过。

4. 语言的书

《Java并发编程实战》
Java并发经典,人手一本不用多说了。

《实战Java高并发程序设计》 new!
国人新作,流畅易读,内容也比上面一本来得新。

《深入理解 Java 虚拟机 第2版》
理解虚拟机并不是那么难,Java程序员来说,很多知识其实是必须的。另外还有几本类似主题的书,忽然一下子都出来了。

《Java性能权威指南》 new!
比起多年前那部调优圣经,讲得更加深入,也更加贴近现在的JDK。可以从里面挑些知识点来,做Java调优的面试题。

《有效的单元测试》 new!
不同于那些动辄BDD的高深书籍,专注于如何写“好”的,可维护的单元测试,拿来给团队看,能省很多口水。

《七周七语言》
《七周七X》系列的开山之作,可能也是最好的一本。

PS:《Effective Java》外界一致推崇,但有点太过誉了。另外《Thinking in Java》有点旧了,而且作者思路随意,译者语言晦涩,新程序员还是建议同时再看两卷《Java核心技术 - Core Java》

5. 具体技术的书

《Docker: 容器与容器云》
这本书叫Docker一本就够了,的确够了,在那些Docker操作指南书之上。不想着改Docker代码的看它就够了,别想着什么《Docker源码分析》。

《Redis设计与实现分析》
用Redis的工程师桌面必备吧。

《分布式服务框架:原理与实践》 new!
如果要写一个SOA框架,要留意的方方面面。

《Spark技术内幕》
深度与厚度之间,选了这本200页的薄书,一样有很多的原理与代码解释,但不会像有的书那样贴20行代码只写一行字。

《Netty权威指南 第2版》
虽然网上的吐槽较多,但Netty 快速入门也只有这一本了。

6. 程序员的自我修养

PS. 最近没买什么新书,随便说点旧书:

《程序员修炼之道-从小工到专家》,Pragmatic Programmer-注重实效的程序员开山之作,翻译的马达维文笔也和熊节一样好。

《代码整洁之道》和 《程序员的职业素养》,英文名是很相近的《Clean Code》和 《Clean Coder》,应该接替《代码大全2》成为必看的系列,因为后者太厚了,而且也有不少过时的东西,要自己去过滤。

《重构》很厚,但最有价值就是前面几章的洗脑篇,具体实作不如薄薄的《重构手册》

关于敏捷的书,最开始的那本《解析极限编程--拥抱变化》就很好,再随便找本Scrum的流程看看就够了,《敏捷开发的艺术》也不错。

《布道之道 - Driving Technical Change:Why People on Your Team Don‘t Act on Good Ideas,and How to Convince Them They Should》,经常在组织里推行新技术的同学可以看下,七种怀疑论者模式,脑海中一幅幅熟悉的面孔。

PS. 温伯格的书网上很推崇,《成为技术领导者》之类的,但我觉得年代太远,读起来其实没多大意思,一两个鸡汤观点还要自己从书里慢慢淘,有那功夫不如看点别的。

7. 没有覆盖到的内容

数据库如MySQL,我们DBA太专业,自己没机会搞。

欢迎大家在评论里补充。

文章持续修订,转载请保留原链接: http://calvin1978.blogcn.com/articles/java-bookshelf.html

原文地址:https://www.cnblogs.com/doit8791/p/9545549.html

时间: 2024-10-13 21:35:24

值得学习的技术人——江南白衣的相关文章

值得学习的技术人——廖雪峰

廖雪峰,技术作家,<Spring 2.0核心技术与最佳实践>作者,业务马拉松选手. 廖雪峰的官方网站,尤其是Python教程,流量巨大,帮助了不少入门的新人. 原文地址:https://www.cnblogs.com/doit8791/p/9552157.html

[转]Java后端,应该日常翻看的中文技术网站 -江南白衣

Java后端,应该日常翻看的中文技术网站 1.内容生产者 InfoQ 中文技术第一站,佩服霍老板,真金白银地为中国程序员们生产内容. ImportNew 专门面向Java的内容生产者兼聚合者,偶然也有些面向入门的小白文. 并发编程网 面向高并发,Java,开源的社区. 2. 内容聚合者 现在写博客,没人用RSS读了,在微博里的传播也就一两天,好在有它们负责挖掘整理散落在各个角落的技术文章. 开发者头条 与 <码农周刊> 人气慢慢上来了,我博客阅读量很大一部分源于它, APP也好用. <编

技术人的未来(一)——跳槽

    一.收获     现代社会跳槽并不是一个新鲜的词汇,而何时跳.如何跳.跳到哪,倘使不是被猎头挖,这些问题都值得深思熟虑,并长篇累牍的探讨.乐帝在爱奇艺实习已两月有余,爱奇艺给了乐帝最初的机会,可谓开眼看职场第一家的公司.在爱奇艺乐帝主要收获了三件事: 对公司业务模型.内部运作.视频行业发展的来龙去脉,有了一个全面的认识. 对公司技术(移动端研发流程).产品开发(特别是爱奇艺三项主要收入之一的大客户合作方式)有了一个逆向工程的理解,逆推其合理性. 这一点也是乐帝安身立命的技术的积累,积累了

值得学习的C/C++开源框架(转)

值得学习的C语言开源项目 - 1. Webbench Webbench是一个在linux下使用的非常简单的网站压测工具.它使用fork()模拟多个客户端同时访问我们设定的URL,测试网站在压力下工作的性能,最多可以模拟3万个并发连接去测试网站的负载能力.Webbench使用C语言编写, 代码实在太简洁,源码加起来不到600行. 下载链接:http://home.tiscali.cz/~cz210552/webbench.html - 2. Tinyhttpd tinyhttpd是一个超轻量型Ht

CoffeeScript不是一门值得学习的语言

译注:看到这篇文章时发现不论在国内还是国外的网站上都有很多人在争论,很有意思.不过令人汗颜的是有些国人似乎只看了标题就开始吵了起来,如果有兴趣,请耐心看完. ======= 一门不能改变你编程的思维方式的语言是不值得学习的--艾伦·佩利(Alan Perlis) CoffeeScript是一种能够将你用特殊规则书写出的文本转换成一些其他文本的语言,而转换后的文本碰巧就是JavaScript源代码.它经常被描述为将一种编程语言"编译"成JavaScript,就像将其它语言编译成汇编或者J

精选9个值得学习的 HTML5 效果

此文转自:http://www.cnblogs.com/lhb25/p/9-html5-effects.html,仅供本人学习参考,版权归原作者所有! 精选9个值得学习的 HTML5 效果[附源码] 这里精选了一组很酷的 HTML5 效果.HTML5 是现 Web 开发领域的热点, 拥有很多让人期待已久的新特性,特别是在移动端,Web 开发人员可以借助 HTML5 强大功能轻松制作各种交互性强.效果丰富的Web 应用. 超炫 HTML5 粒子效果进度条 我喜欢粒子效果作品,特别是那些能够应用于实

唐巧:技术人如何成为管理者

_ 前不久趣直播举办了一场技术人成长交流会.邀请了小猿搜题产品技术负责人唐巧来分享.我也有幸参加了此次的交流会 以下是文字版: 我大概自我介绍一下,我叫唐巧,是小猿搜题的产品技术负责人.我之前在网易做过 2 年服务器的开发.后来和网易的同事一起参与一个之前叫做『猿题库』,现在叫做『猿辅导』的公司的创业.做 iOS 开发,现在做了有 5 年了. 大概 3 年前,2014 年 7 月份的时候我们打算做小猿搜题这个产品,当时没有人负责这款产品,我的老大就说让我来负责,所以从那个时候开始,我就慢慢的从一

技术人的未来在哪里?

这是我一个月前在小密圈中的一篇分享,反响很强烈,姑且分享在这里,文章很长,建议只字不差的阅读. 这篇分享并不只适用于技术,只是我的读者中大多是做技术的,所以姑且以技术的角度来分析,实际上本篇文章涉及到的一些思维方式同样适用于其他领域. 前段时间有个事件,就是华为大规模裁员,针对的是 35 岁以上的技术人员,一时间在行业内引起恐慌,很多技术人员对自己未来的发展有点不知所措,甚至焦虑,不知道做技术到底能做到多久,不知道自己未来的路在哪里,很是迷茫--这是一个普遍的现象,今天我就来给大家分析下我自己的

一个技术人的知识管理方法论

说实话,我讨厌这样一个土鳖的标题,希望内容不让你失望. 本文最早源于一系列关于解决问题方法论的思考,从解决问题的一般原则到探索如何让解决问题依赖知识积累和思维工具而不是偶发灵感.这样关注点逐渐从解决问题演变为个人知识体系的构建和知识的管理. 2009年 解决问题:心态 原则 方法 2012年 [Think] 解决问题 Ⅱ 2012年 实用主义的思考与学习 读书笔记 知识管理方法论解决的是效率和效果的问题,其实没有方法论的时候,足够的专注和努力也是可以的,许三多就是这方面的典型代表,他几乎没有什么