高效程序员工作法(六)

目录

前言:

一、作为程序员,你也应该聆听用户的声音。

一句话总结:

 二、尽早暴露问题,为什么被指责的总是我?

一句话总结:

三、结构化,写文档也是一种学习方式

一句话总结:

 问题:

单元测试做不好,是否会影响到CI的效果?

国内的技术信息落后吗?

总结:


前言:

  本篇博客内容来源自:极客时间课程《10x程序员工作法》处于学习记录。将个人认为比较重要的知识点进行摘抄记录。有兴趣的同学去极客时间学习完整课程。

10x程序员工作法_开发效率_10倍效率-极客时间


一、作为程序员,你也应该聆听用户的声音。

   用户视角,你需要来自真实世界的反馈。

    而作为一个程序员,欠缺用户视角,在与产品经理的交流中,你是不可能有机会的,因为他很容易用一句话就把你打败:这就是用户需求。

    倾听用户声音。这是开发团队普遍欠缺的一种能力,更准确地说,是忽略的一种能力。所以,吃自家的狗粮这种听上去本来是理所当然的事情,才被反复强调,成为 IT 行业的经典。 

   了解用户需求的不同做法,但其归根结底就是一句话,想办法接近用户。

        只有多多听取来自真实用户的声音,我们才不致于盲目自信或是偏颇地相信产品经理。谁离用户近,谁就有发言权,无论你的角色是什么。

一句话总结:

多走进用户


 二、尽早暴露问题,为什么被指责的总是我?

       作为一个程序员,克服技术难题是我们工作的一个重要组成部分,所以,一旦有困难我们会下意识地把自己投入进去。但这真的是最好的做法吗?并不是,不是所有的问题,都是值得解决的技术难题。

      遇到问题,最好的解决方案是尽早把问题暴露出来。其实,这个道理你并不陌生,因为你在写程序的时候,可能已经用到了

      其实,Fail Fast 也有一些反直觉的味道,很多人以构建健壮系统为由,兼容了很多奇怪的问题,而不是把它暴露出来。反而会把系统中的 Bug 隐藏起来。我们都知道,靠 debug 来定位问题是最为费时费力的一种做法。所以,别怕系统有问题,有问题就早点报出来。

      我们讲了这么多原则和实践,其实,大多数都是在告诉你,有事先做。一方面,这是从软件变更成本的角度在考虑;另一方面,也是在从与人打交道的角度在考虑。越往前做,给人留下的空间和余地越大,调整的机会也就越充足。而在最后一刻出现问题的成本实在太高,大到让人无法负担。

      一个重要的工作原则,把事情往前做,尽早暴露问题。我们前面讲的很多内容说的都是这个原则,比如,要先确定结果,要在事前做推演等等。越早发现问题,解决的成本就越低,不仅仅是解决问题本身的成本,更多的是对团队整体计划的影响。

      一方面,事前我们要通过以终为始任务分解早点发现问题;

       另一方面,在做事过程中,一旦在有限时间内搞不定,尽早让其他人知道。这个原则在写程序中的体现就是 Fail Fast,很多程序员因为没有坚持这个原则,不断妥协,造成了程序越来越复杂,团队就陷入了无尽的泥潭。原则很简单,真正的挑战在于克服自己的心理障碍。很多人都会下意识地隐瞒问题,但请相信你的队友,大家都是聪明人,问题是藏不住的。

一句话总结:

事情往前做,有问题尽早暴露。


三、结构化,写文档也是一种学习方式

很多人回避写文档的真正原因是,他掌握的内容不能很好地结构化。

想要成为一个好程序员,有一个良好的知识结构是极其重要的。

将零散的知识结构化,有很多种方式,但输出是非常关键的一环。

       输出的过程,本质上就是把知识连接起来的过程。自己以为自己懂的东西,当你真的需要把它按照一个完整的逻辑呈现出来时,那些缺失的细节就会冒出来,而补齐这些细节,一张知识地图就逐渐成型了。

       首先,我们要确定想要表达的是什么,也就是找到中心论点,然后,再确定支撑这个论点的分论点,再来就是找到支撑每个分论点的论据。从中心论点、分论点至论据,这样一层层向下展开,从结构上看,就像金字塔一样,所以,这个方法称之为金字塔原理。

     金字塔原理的四个基本原则:结论先行(一次表达只支持一个思想,且出现在开头)、以上统下(任一层次上的思想都必须是其下一层思想的总结概括)、归类分组(每组中的思想都必须属于同一范畴)和逻辑递进(每组中的思想都必须按照逻辑顺序排列)。前面两个特点是纵向结构之间的特点,后面两个特点则是横向结构之间的特点。以上内容收集整理自李忠秋老师的《结构思考力》,感兴趣的小伙伴可以看看。

你现在已经了解获取这些技能的真谛了,无他,唯手熟尔!

        阻碍很多人进行知识输出的一个重要原因是缺乏输出的模型,金字塔原理就给出一个从中心论点到分论点,再到论据的模型,帮助我们将知识梳理出来。而想要做好知识输出,还需要不断地进行练习,写作和做公开演讲都是可以通过练习提高的。

一句话总结:

多输出,让知识更有结构。


 问题:

单元测试做不好,是否会影响到CI的效果?

持续集成的价值在于,它是一条主线,可以将诸多实践贯穿起来。也就是说,想要真正意义上做好持续集成,需要把周边的很多实践都要做好。

要想多写单元测试,就需要编写可以测试的代码,而要想编写可测的代码,就要懂软件设计,将系统之间耦合解开。

所以,CI 作为一个单独的实践,本身是很简单的,但它可以成为提纲挈领的主线,帮助团队不断改善自己的开发过程。

国内的技术信息落后吗?

国内程序员真正落后的不是信息,而是观念。

国内程序员的平均水平,大多停留在实现一个功能的理解上,而发达国家的程序员做事要专业许多。所以,以专业素养来看,国内程序员还有很大的提升空间。

总结:

看板

  1. 一种来自精益生产的可视化实践。
  2. 按阶段将任务放置其中。
  3. 可以帮助我们发现问题。

持续集成

  1. 做好持续集成的关键是,快速反馈。
  2. 本地检查通过之后再提交。
  3. 找到有效的反馈方式,比如:CI 监视器。
  4. 持续集成的纪律。
  5. 只有 CI 服务器处于绿色的状态才能提交代码
  6. CI 服务器一旦检查出错,要立即修复。回顾会议软件团队复盘的一种实践。枚举关注点,选出重点,深入讨论,列出行动项,找到负责人。

5 个为什么

  • 又一个来自丰田的实践。
  • 沿着一条主线追问多个问题。

用信息论理解沟通反馈

  1. 写代码的进阶路径编写可以运行的代码。
  2. 编写符合代码规范的代码。
  3. 编写人可以理解的代码。
  4. 用业务语言写代码。

会议

  • 是一种重量级的沟通方式减少参会人数。
  • 找人面对面沟通。

聆听用户声音

  • 能做自己用户,做自己的用户。
  • 能接近用户,接近用户。
  • 没有用户,创造用户。

Fail Fast

  • 一种编写代码的原则。
  • 出现问题尽早报错。
  • 金字塔原理从中心论点,到分论点,再到论据。
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值