【源起】

琉璃要我推荐一下给工程师们的各阶段的书单,这件事被我压在手边好些天了已经。然后呢就看见了公司内网中孙坚的一份推荐。其实那份书单的一些信息也是有出处的(或者说有类似介绍的地方),是江南白衣的另一份架构师书单,目前已经“翻新”到2009年版和第3版了:

http://calvin.javaeye.com/blog/351007

http://calvin.javaeye.com/blog/57670

http://blog.csdn.net/calvinxiu/archive/2007/03/06/1522032.aspx

看来白衣兄的确是要把这份书单做到穷极。但事实上我在看到他的最初版的书单时,就提出过反对意见:

http://aimingoo.spaces.live.com/blog/cns!F9303C43D5CEAFB3!516.entry

换句话说,从4年前白衣兄就开始出书单,再结合他在主页上常常提到的“种种书”,大概到现在他已经读了许多,以至于架构纯熟了吧?

但,真的如此吗?架构师就是一本书一本书地读出来的?

进一步地说,工程师也是一本书一本书读出来的?

好象不太对吧?其实就我的学习历程来说,书读的多少,只是一个次要条件,而书读得多透,才是充要条件。50本书翻下去,不见比专读一本有效果。我的读书也就向来如此,读一本,就往深透里读,多次地、带批判与反省地读。

【关于开发类书目的推荐】

软件开发方面,我下过功夫的是《数据结构》、《汇编语言》、《操作系统原理》这些基础课,应用类的书里,有《Windows核心编程》和《Windows技术内幕》等等,但应用类的书没有太多的可推荐性。除了这些,给我最深启发、感受一本书是:

《结构程序设计》
最经典的有关结构化程序设计理论的论著。O. J. 达尔、E. W. 戴克思特拉、C. A. R. 霍尔著,陈火旺等译,1980年出版,已绝版。

对于开发人员的具体工作来说,除了各类的“手册”,我觉得《代码大全》是非常值得推荐的:

http://www.china-pub.com/28351

【关于架构类书目的推荐】

接下来,架构的书都有什么是可以看的呢?除了我在前面

http://aimingoo.spaces.live.com/blog/cns!F9303C43D5CEAFB3!516.entry

中提到的两本:

http://www.china-pub.com/25013

http://www.china-pub.com/23970

之外,我唯有一本是要推荐的,就是新近的一本《架构之美》:

http://www.china-pub.com/196084

如果你真的想要看看“术”的问题,我可以建议你看看另一本也叫《架构之美》的书:

http://www.china-pub.com/195142

不过,我需要说明的是:可以看,不可以学。至于为什么,后面我会讲到的。

【关于工程类书的推荐】

工程类的书呢?两本:《人月神话》与《人件》。看懂了,工程的全局基本上就在心里了。

【我为什么做这样的推荐?】

可能有同学已经注意到了,我的推荐里,关于“工程师”和“程序员”的部分还有实作,还有一些基础,但对于架构与工程,就没有这些类型的书了。为什么呢?

我这样推荐的根本原因其实也在这个问题之中:因为,事实上,工程和架构不是“学”出来的,而是“战”出来的。而战局中的人,其实没有那么多条理那么多章法。你让风清扬到千军万马里去打仗,他也是见一个砍一个,而不会使那个孤独九剑,因为剑法还没使出来,就被一枝飞箭给灭了,或者让某个半死的小兵抱住了大脚。

剑谱里,不会讲半死的小兵,也不会讲飞箭。前者叫包袱,后者叫风险。无论是架构还是工程,最终决定你是否能推动它的因素,在于你处理这些包袱和风险的能力。这种东西,在书里,从来没有。

所以我推荐的这两类书,就是希望同学们从这些书中看到一个“全局的映象”。从书中看到“源由”,看到“选择”,以及看到种种“问题”。只有从结果看到了问题,才真正地读明白了这些书。而读明白了,过去几十年的工程经验或架构思想,也就在心里面了。具体到架构与工程的做法,你再去手册,再去看“江南白衣”兄推荐的那些书,找到解决问题的法子,就可以了。

我们大多数人,只是看得到事,看不到问题。所以读书,也就只是读文字,读方法,而不是读那本书的故事。

同样地,我们多数人在架构和工程上,也秉承了程序员的思维,应对“种种事”,而不是“种种问题”。所以工程被做到手忙脚乱,架构被做得乱七八糟。

【结语】

所以当年诸葛先生挥了挥泪,把马谡给斩了。其实没有人知道,他或许并不心疼。

from: http://blog.csdn.net/aimingoo/article/details/5588022

从“架构师书单”讲开去相关推荐

  1. 架构师书单 2nd Edition--转载

    作者:江南白衣,原文出处: http://blog.csdn.net/calvinxiu/archive/2007/03/06/1522032.aspx,转载请保留. 为了2007年的目标,列了下面待 ...

  2. 架构师书单 2nd Edition

    为了2007年的目标,列了下面待读或重读的书单.     "其实中国程序员,现在最需要的是一张安静的书桌.",的确,中国架构师大多缺乏系统的基础知识,与其自欺欺人的宣扬" ...

  3. Github星标90K?京东架构师一篇讲明白百亿级并发系统架构设计

    学习高并发系统设计的原因 高并发到底是什么,想必各位多多少少对此都有所了解,那我在这就不多说了.真正经历过"双11"以及"618"的小伙伴应该都知道,在大促时如 ...

  4. 互联网人必看的中台理论,阿里腾讯架构师用大白话讲出来了

    好久不讲中台了,最近看了一个梗: 中台和这个,两者有什么关系呢? 中台这个概念就是在2015年,被马老师以及阿里团队提出来的.在参观了一家游戏公司后,回来就在阿里整个集团层面启动了 "大中台 ...

  5. 软件架构——架构师的职责

    一.架构师定义 架构师负责设计系统整体架构,从需求到设计的每个细节都要考虑到,把握整个项目,使设计的项目尽量效率高,开发容易,维护方便,升级简单.架构师的主要责任是提供开发人员和项目经理之间的共用沟通 ...

  6. mikechen详谈架构师成长之3大步骤

    本文作者:陈睿|mikechen,优知学院创始人 这是架构师系列的第二篇文章 前文谈到架构师核心技能架构设计的重要性,如果你对架构师这个职位从技能的角度有比较清晰的认识,本篇文章将为你继续揭示架构师这 ...

  7. 架构师的第一步:学习两种抽象视角(Abstraction View)

    [ IT史上最完整.最经典的软件框架开发技术宝典 (上百篇经典文章&eBooks) ] ee                                                   ...

  8. 【观察】华为IoT首席架构师王启军:云计算时代全栈工程师的养成

    申耀的科技观察 读懂科技,赢取未来! 在王启军的公众号里,有一篇<My Team>的文章,里面记录了早年他所带团队成长的心得. 这个被他称为完美组合的团队,并不是来自大厂名企,彼时王启军给 ...

  9. 华为IoT首席架构师王启军:全栈工程师“养成记”

    在王启军的公众号里,有一篇<My Team>的文章,里面记录了早年他所带团队成长的心得. 这个被他称为完美组合的团队,并不是来自大厂名企,彼时王启军给不起高待遇,团队核心成员中还有很多人是 ...

最新文章

  1. 如何开始使用PostgreSQL
  2. datagrid资料+ by iCeSnaker - Program rhapsody
  3. laravel5.6 Session
  4. python mk趋势检验_【C语言】MK趋势检验C语言代码
  5. 录制失败因为媒体服务失败_具惠善减肥失败,竟然是因为它
  6. opencv图像处理9-图像金字塔
  7. 在linux中 要删除abc目录,操作系统原理与应用(linux)A卷
  8. Linux模拟超级终端minicom(二)
  9. windows下安装ta-lib的方法
  10. springcloud注册demo(使⽤第⼀代Spring Cloud核⼼组件完成项⽬构建、编码及测试)
  11. 遇到一个日志文件变化带来的文件句柄问题
  12. Linux之软件安装rpm、yum/dnf、源码(安装)
  13. LabVIEW在快速传输速率下丢失UDP数据包
  14. Google翻译插件不能用解决方案
  15. 零基础转行网络安全可以做什么工作
  16. 为kubernetes(k8s)单独配置kubectl工具
  17. 多 “维” 优化——前端高并发策略的更深层思考
  18. 微信小程序提示:https://api.map.baidu.com 不在以下 request 合法域名列表中
  19. 【自建exe】使用Electronjs为自己写windows软件
  20. 网页制作之JavaScript篇

热门文章

  1. ubuntu php png,[工作记事]Ubuntu下PHP编译安装以及添加jepg支持
  2. Java8 - 避免代码阻塞的骚操作
  3. Apache Kafka-max.poll.interval.ms参数含义说明
  4. Shell - 监控某个进程的内存占用情况、主机CPU、磁盘空间等信息以及守护进程
  5. 交换与路由技术课程期末上机测试题目二
  6. Java时间对比------实际时间和设置时间对比
  7. 语音识别:时间序列Damerau–Levenshtein距离
  8. 点击列表高亮_HTML5 标签列表
  9. c++冒泡排序代码_C/C++基础之冒泡排序
  10. vue 页面A转到页面B,B页面停留在A页面的滚动位置