程序员进阶攻略
胡峰
京东成都研究院技术专家
立即订阅
7524 人已学习
课程目录
已完结 65 讲
0/4登录后,你可以任选4讲全文学习。
开篇词 (1讲)
开篇词 | 程序行知:走在同样的路上,遇见自己的风景
免费
征途:启程之初 (4讲)
01 | 初心:为什么成为一名程序员?
02 | 初惑:技术方向的选择
03 | 初程:带上一份技能地图
04 | 初感:别了校园,入了江湖
修炼:程序之术 (10讲)
05 | 架构与实现:它们的连接与分界?
06 | 模式与框架:它们的关系与误区?
07 | 多维与视图:系统设计的思考维度与展现视图
08 | 代码与分类:工业级编程的代码分类与特征
09 | 粗放与精益:编程的两种思路与方式
10 | 炫技与克制:代码的两种味道与态度
11 | 三阶段进化:调试,编写与运行代码
12 | Bug的空间属性:环境依赖与过敏反应
13 | Bug的时间属性:周期特点与非规律性
14 | Bug的反复出现:重蹈覆辙与吸取教训
修行:由术入道 (24讲)
15 | 根源:计划的愿景——仰望星空
16 | 方式:计划的方法——脚踏实地
17 | 检视:计划的可行——时间与承诺
18 | 评估:计划的收获——成本与收益
19 | 障碍:从计划到坚持,再到坚持不下去的时候
20 | 执行:从坚持到持续,再到形成自己的节奏
21 | 信息:过载与有效
22 | 领域:知识与体系
23 | 转化:能力与输出
24 | 并行:工作与学习
25 | 时间:塑造基石习惯(上)——感知与测量
26 | 时间:塑造基石习惯(下)——切割与构建
27 | 试试:一种“坏”习惯
28 | 提问:从技术到人生的习惯
29 | 偏好:个人习惯的局限与反思
30 | 写作:写字如编码
31 | 画图:一图胜千言
32 | 演讲:表达的技术
33 | 定义:阶梯与级别
34 | 晋升:评定与博弈
35 | 关系:学徒与导师
36 | 核心:安全与效率——工程技术的两个核心维度
37 | 过程:规模与协作——规模化的过程方法
38 | 思维:科学与系统——两类问题的两种思维解法
徘徊:道中彷徨 (15讲)
39 | 职业倦怠:如何面对?
40 | 局部最优:如何逃离?
41 | 沟通之痛:如何改变?
42 | 技术停滞:如何更新?
43 | 无法实现:困扰与反思
44 | 完成作品:理想与现实
45 | 代码评审:寄望与哀伤
46 | 人到中年:失业与恐惧
47 | 该不该去创业公司?
48 | 该不该接外包?
49 | 技术干货那么多,如何选?
50 | 技术分歧,如何决策?
51 | 技术债务,有意或无意的选择?
52 | 选择从众,还是唯一?
53 | 选择工作,还是生活?
寻路:路在何方 (7讲)
54 | 侠客行:一技压身,天下行走
55 | 江湖路:刀剑相接,战场升级
56 | 御剑流:一击必杀,万剑归心
57 | 三维度:专业、展现与连接
58 | 三人行:前辈、平辈与后辈
59 | 三角色:程序员、技术主管与架构师
60 | 三视角:定位、自省与多维
蜕变:破茧成蝶 (3讲)
61 | 工作之余,专业之外
62 | 跨越断层,突破边界
63 | 成长蓝图,进化跃迁
结束语 (1讲)
尾声 | 始于知,终于行
程序员进阶攻略
登录|注册

31 | 画图:一图胜千言

胡峰 2018-10-12
对于写作这种展现形式,有一种最好的补充手段就是画图。有时文字描述了半天还不如一张图来得清晰,正所谓:一图胜千言。这对于程序员特别需要的技术性文档或文章写作,都是最好的补充注解,有时甚至起到了画龙点睛的效果。
以前我在网上发一些技术博文,就常有读者留言问我是用什么工具画图的。其实我感觉他们很可能问错了问题,因为我曾经为了画好图尝试过各种不同的画图工具软件,但最后发现能不能画好图和工具的关系并不大。

一、为何?

程序员不是主要写代码的么,为什么需要画图?
有些程序员会认为写好代码就好,画好图有什么用?程序员成为架构师后是不是就天天画架构图,成为了所谓的 PPT 架构师?曾经读过一篇文章《在首席架构师眼里,架构的本质是…》,里面提出了一个架构师能力模型图,(我重新绘制)如下:
架构师能力模型图
结合我自己的经历和经验,这个能力模型针对架构师这个岗位来说还是比较符合的。程序员出色到了一定程度后想成长为一名架构师,就需要看看能力模型中的其他方面。而掌握好画图技法,对这个能力模型有什么帮助吗?
前面讲系统设计的文章《多维与视图》中我已经给出过结论:“用更系统化的视图去观察和思考,想必也会让你得到更成体系化的系统设计。”
取消
完成
0/1000字
划线
笔记
复制
© 版权归极客邦科技所有,未经许可不得传播售卖。 页面已增加防盗追踪,如有侵权极客邦将依法追究其法律责任。
该试读文章来自付费专栏《程序员进阶攻略》,如需阅读全部文章,
请订阅文章所属专栏。
立即订阅
登录 后留言

精选留言(14)

  • 渔夫
    前辈,你好,我想请教一下,作为非科班出身的程序员,如果不把计算机学科知识,比如计算机组成原理,操作系统,编译原理,网络协议等,系统学习一下,是不是很难走的远,以致最终被淘汰?

    作者回复: 基础不牢,工作可能会感觉困难一些,上升的天花板会低一些

    2018-10-12
    7
  • JarvisLeo
    文不如表,表不如图
    2018-10-16
    4
  • 固态U盘
    一幅图确实能把抽象的事物具体化,以下是自己绘制技术图的经历。见笑了:
    1. 机械系的运维一枚。在读书时用的是AutoCAD进行绘图(机械图、流程图等)。
    2. 后来毕业接触了Gnu/Linux、Vim、Emacs、TeX等开源产品。使用的是TeX周边的工具(MetaPost、Asymptote、Tikz)进行技术图的绘制,这种工具不是所见即所得的类型,绘制起来比较费时,不过精确度比较高。
    3. 后来用到了付费的产品Graphic(198¥)、EdrawMax(599¥)、XMind(899¥)、Sketch(90$),确实挺方便的,可以输出不同的格式。
    4. 后来又开始使用Keynote进行幻灯片的制作,很少用它来绘图。

    通过今天的学习,看到了老师通过简单的方法就可以做出优雅且美观的技术图,很受教。而且配色看起来很舒服,以后就采用老师的这种方式进行技术图的绘制,经济实惠而且优雅美观。

    作者回复: 机械制图都能搞定,这些都是小意思😄

    2018-10-13
    4
  • 行问
    1、在sublime里面以树形结构的书写
    2、思维导图

    还没有做过PPT的画图,可能是我接触的开发还很少很少,基本就是以这2种方式来解决需求、定位问题等。不过,思维导图感觉会很受限。

    话外题:高手都是用Mac开发吗?新手程序员买不起,只能用Windows。而且,我从工作开始就只用Vim或在编辑器装Vim插件,却是一个异类,有几次请教问题,都会被人鄙视你用这个有什么用(因为他无法使用我的键盘),还不是不懂代码。然后,我就在心里把ta划去,因为在ta说出这句话时,我的技术、视野和思维已经超过ta了。

    作者回复: 工具自己用着舒服高效就好,但在团队协作时就要考虑整体的效率了,有时要牺牲一些自己的习惯偏好

    2018-10-12
    4
  • 行问
    1、在sublime里面以树形结构的书写
    2、思维导图

    还没有做过PPT的画图,可能是我接触的开发还很少很少,基本就是以这2种方式来解决需求、定位问题等。不过,思维导图感觉会很受限。

    话外题:高手都是用Mac开发吗?新手程序员买不起,只能用Windows。而且,我从工作开始就只用Vim或在编辑器装Vim插件,却是一个异类,有几次请教问题,都会被人鄙视你用这个有什么用(因为他无法使用我的键盘),还不是不懂代码。然后,我就在心里把ta划去,因为在ta说出这句话时,我的技术、视野和思维已经超过ta了。

    作者回复: 高手不滞于工具,而且会制作裁剪自己趁手的工具

    2018-10-12
    4
  • sprinty
    我用的比较多的是OmniGraffle,对今天所讲深以为然。自己有时候太纠结用什么画图工具了。

    不知道老师对画流程图有什么见解,或有什么好的学习资料?还没成长到化系统架构图的级别,虽然平时也画流程图,到总觉得不得要领,很难把握重点,经常画的很啰嗦。

    作者回复: 一张图画一个流程,不要把全部的流程画在一张图上,那样可能太复杂,让人抓不到重点

    2018-10-12
    3
  • third
    1.架构师其中一个抽象思维能力,需要用画图来表达和锻炼

    2.如何画图,
    图形用简单的即可

    3.颜色
    方便区分
    对色盲足够友好
    避免强烈的对比色


    画图,我一般直接掏出白板纸(随身携带),直接画,如果需要电子版,在用PPT或者Word画

    作者回复: 我会用白纸画一个大概的草稿

    2018-10-16
    2
  • godtrue
    阅后留痕

    首先,非常赞同一图胜千言这个观点,这个我觉得不仅在编程领域是这样,其他各个领域都基本如此,这是由于人的思维认知来决定的,复杂的逻辑通过文字的描述不一定能所有人都能理解,画图其实也是一样,不过同样的逻辑描述,使用图一定比使用文字更好一些,图更加的形象、更加的直观、更加的令人有印象感。

    不过我觉得画图的痛点不在工具,颜色如何?图标如何?也是后话,关键是思维,画什么?画的图表达什么?能否表达清楚?图中的逻辑关系是否符合逻辑?画的图能否让受众更加容易和直观的接受?把自己想法装入别人的脑袋毕竟不是已经容易的事情。这些东西不是一撮而就的,要不然架构师的价值就大打折扣了

    我平时工作多是整理东西画思维导图,然后就是代码的流程图,业务的逻辑图,使用viso基本能满足自己的需求。

    作者回复: 表达逻辑的方法在前文《多维与视图》中谈了一些软件系统的展现逻辑,每个领域都有自己合适的展现逻辑

    2018-10-14
    2
  • 艾尔欧唯伊
    抽象的、结构性的东西,图形相比文字更具有表现力。。
    但是具体的东西就要结合文字描述来说明,对于coder来说,最好还能来段典型的代码大餐就完美了

    作者回复: 需要描述更高抽象维度的设计时,代码就不够直观了

    2018-10-12
    2
  • Corsica
    图形,颜色和审美,最重要的还是如何表达思想,思维的过程如何呈现出来

    作者回复: 你说得很对,思维逻辑清晰很重要,表现是锦上添花

    2019-04-16
    1
  • L
    mark 一下。以后应该会用得上。
    2018-10-16
    1
  • hao
    架构师的能力模型挺好的
    2019-10-11
  • Ripper
    曾经也在尝试各种画图工具,最后觉得自己缺的不是工具,而是思维与技巧。
    哈哈,竟然跟你想的一样~

    作者回复: 😁

    2019-06-13
  • 北风一叶
    我认为只要能画出你所要表达的主题就好了,别的都锦上添花
    2018-12-20
收起评论
14
返回
顶部