标签归档:读书总结

开发过程中的偏误

开发的一生应当这样度过:当他回首往事的时候,不会因为没有时间陪妹子而悔恨,也不会因为没有浏览过祖国的大好河山而愧疚。这样,在临终的时候,他就能够说:‘我已把自己整个的生命和全部的精力献给了世界上最壮丽的事业——编程。

作为一个开发人员,每天吭吭哧哧的编码,调试,面对产品MM的需求变更,应对测试MM的各种挑战,呼啦啦,需求上线了,看数据,有告警,马上处理,没有告警,安心做下一个需求,眼睛一睁一闭,一天就过去了,要是一闭不睁呢?

在无比享受的开发过程中,我们可能会存在一些偏误,你见或不见,它就在那里,不增不减,不悲不喜。

在开发的世界中,总会有一种老子天下第一的气势,所谓文无第一,武无第二,开发也是。当一个需求开发完成后,我们都会认为我们的代码是很完美的,它能很好的实现产品的需求,没有bug,当测试MM说开发哥,你这里是不是有bug?第一反应是:怎么可能?是不是环境有问题。这是属于开发的过度自信偏误,但这并不是开发独有的,我们大多数人都有这个问题,只是强弱程度不一样。过度自信偏误对专家的影响比对非专家的影响要大,男人比女人更大,作为以男性居多的开发领域的专家,这个问题比较突出就不奇怪了。

建议:我们需要基于现场的实际情况做出自己的判断。

隔壁组开始用Go写他们的业务了,NB大发了,要不我们也试试?昨天那个分享中有介绍node.js,现在用的人蛮多的,咱们是不是也用一下试试?现在业内流行特定领域语言,咱们也是不是开发一套……

为什么我们会对大家都在使用的一些东西比较关注?为什么?从众心理。剧场中,当表演到精彩处,有一个人带头鼓起掌来,于是整个剧场都将掌声雷动;喜剧节目或访谈节目时,在关键位置插入笑声往往会引发观众的笑声。如果只是你一个人,也许就没有这样的效果了。
技术人员对技术有着特殊的激情,当一堆人开始讨论某些技术的时候,如果自己不知道一些总会觉得不太和谐,于是开始研究,应用,甚至为这种技术布道。

建议:对于热门的技术和大家都在谈论的技术,了解可以,具体应用到业务,需要做详细的评估,确认此种技术出现的应用场景,以及是否适用我们当前的业务,一种技术的引进有时是种进步,有时会成为技术负债。

系统告警,组内的人都收到了短信,可这是一个公共模块,谁去处理呢?你想,嗯,总会有人去处理的,于是等啊等啊,终于,一堆的客户投诉到了客服那里,事故升级,大家都挨批了。什么原因?三个和尚没水喝的故事再次重演了呗。如同一堆人一起拉绳子,人越多,个人的贡献越低。这被称之为社会性懈怠,在团队里不仅我们的效率会被克制,我们的责任也会被克制,如同刚才告警的例子,谁也不想为之负责。但这是一种理由性行为:假如使出半力就行,又不会引起注意,为什么要使出全力呢?

建议:团队业务模块化,责任到人,通过彰显个人效率来缓和这种懈怠。

以上只是我们常遇到的一小部分偏误,不仅仅是我们开发,大部分人也有同样的问题,偏误很多,只是你有没有清醒的认识到?

奇志大兵的相声中有这样一句词:偏爱,偏爱离正爱就不远了吧

偏误也是!

《驱动力》读后总结 – 是什么驱动了你

一本讲述人的书,它会告诉你:是什么驱动了你。作为企业,其核心是经济绩效,而经济绩效依赖于人的绩效,这本书也讲述了怎样可以提高人的绩效,特别是当一些常规手段失效时。在读书过程中反思,现在是什么在驱动自己?自己的动机在哪?这本书有什么内容可以应用到工作中? 有所收获,却也觉得书中所言不能全部信之。

书中介绍人的行为的驱动力有三种:

  • 第一种驱动力是生物驱动力,如饿了要吃饭,渴了要喝水,这是1.0时代,生物冲动;
  • 第二种驱动力是外在动机,做出特定行为后外部会带来奖励或惩罚,这是2.0时代,寻求奖励,避免惩罚。
  • 第三种驱动力是内在动机,是我们想要主导我们的生活、延展我们的能力,让生活更有意义的深层欲望。人类的天性决定了他们会寻求对自己命运的掌控权,希望自己引导自己

书中作者提出的自我决定理论认为人类有三种内在需求:

  • 能力的需求(competence)
  • 自主性的需求(autonomy)
  • 归属的需求(relatedness)

看到这些需求,这些驱动力的描述,不得不想起老马的基本需求层次理论。该理论将需求分为五种,像阶梯一样从低到高,按层次逐级递升,分别为:生理上的需求,安全上的需求,情感和归属的需求,尊重的需求,自我实现的需求。作者提出的自我决定理论,三个内在需求也是对应老马的理论中的三个层面的,是此理论范围太大,还是?

现在的我们更多的时候是处于第一驱动力或第二驱动力之中,为了生活奔波,这仅仅是因为需要养家糊口。第一驱动力是根本点,其对应到 马斯洛需求层次理论 是最底层的生理上的需求,为了活着。而第二驱动力是从第一驱动力而来,一些内容依赖于第一驱动力。比如奖励和惩罚,其最终的落脚点往往是第一驱动力的一些要素。

作者提到的驱动力3.0,在胡萝卜大棒失效的时代如何提高绩效、焕发热情的三大要素:自主、专精和目的。

驱动力3.0的三大要素

  • 自主:我做什么,我决定。这个时代我们并不需要更好的管理,而需要自我管理
  • 专精:把想做的事情做得越来越好。专业是一种痛苦,在通往专精的路上,没有鲜花,没有七色彩虹,在你不想做的时候还得继续做,并且这是一条渐近线。
  • 目的:超越自身的渴望。它是驱动力3.0的内容,驱动力3.0不拒绝利润,但是它强调目的最大化。我们老板常说:我们是在实现自己的梦想,现在只是在实现梦想的过程中顺便赚点钱。忽然想到,现在越来越多的人去创业,他们为了什么?梦想 OR 成功后的经济自由 OR 吃肉自由 OR 自由吃肉?

当我们还在为最底层的需求努力时,更上面的需求都是空的,但是如何现在给你高于平均水平的薪酬的同时,再给你更多的自主权,让你一展所长。此时是否有一种士为知己者死的感觉,嗯,要的就是这个。

但是从批判的角度去看上面的这句话:这里的平均水平是什么水平?一展所长是展示什么?自主权能有多自主?是否我们需要把这个平均水平提高,让自己处于更高的水平,此时这样的水平才有些意思,那如何做呢?如作者所说,让你更加的专精。作者提了5点建议:

  • 刻意练习的目标是提高成绩。这里更多的是要有目标,即不要太泛,广度是需要的,但是作为程序员来说,深度会更重要些,我们需要找到你专精的目标。
  • 重复、重复、再重复。我很相信1万小时理论:任何人如果想要在某一领域变得十分出色,都需要经过至少1万个小时的练习,才能够达到一个比较高的水平。
  • 想方设法获得批评性意见。知道自己的问题在哪,知道自己改进的方向在哪,才能更好的进步。
  • 关注自己的弱项。我们喜欢做我们擅长的事情,因为我们可以游刃有余,但是对于一个优秀的人来说,关注自己的弱项,在弱项上努力,使之不会成为严重短板。
  • 为身心俱疲做好准备。努力向专精看齐,在这条辛苦的路上,总会有一天你会身心疲惫,也许你会想着放弃,也许你会坚持,向左走,向右走,不同的结果。

一个伟大的人,就是一句话,这也应用于一个公司,一个伟大的公司,就是一句话。你的那句话是什么?“为中华之崛起而读书”?“修身齐家治国平天下”?今天的我比昨天更优秀吗?反思,反省。

再读《程序员修炼之道》总结

虽然这本书的中文译名很文艺,但是内容确实值得一看,又花了一个星期的早晨将这本《程序员修炼之道》看了一遍,这次对于每个小节都写了些笔记和摘抄,也许是错的,也许没有什么道理,只是当时的感触和想到的。内容整理如下:

1、我的源码让猫给吃了: 责任、风险、应急备案、不要找借口,真诚

2、软件的熵:破窗户理论、酒与污水理论

3、石头汤与煮青蛙: 好的愿景和目标、不谋全局者不足以谋一域

4、足够好的软件:细化非功能性需求、过早优化是万恶之源

5、你的知识资产:养成学习的习惯,知识上的投资总能得到最好的回报

6、交流: 准备好你的交流

7、 重复的危害:DRY原则

8、正交性:高内聚,低耦合;模块化,组件化

9、可撤销性:良好的抽象接口让我们更灵活

10、曳光弹:让程序先跑起来

11、原型与便笺:为了学习,可看不可用。

12、领域语言: 语言会影响你思考问题的方式,合适的才是好的。

13、估算:估算会加深对需求的理解,

14、纯文本的威力:自描述,可读

15、shell游戏:GUI局限了用户的思维,但也提供了一些方便

16、强力编辑:选你所爱的,爱你所选的

17、源码控制:记住过去,人生要是有版本控制会是一个怎样的结果?

18、调试:调试是为了解决问题,心态很重要, 反思BUG产生的原因

19、 文本操纵:懂一门脚本语言

20、代码生成器:参数化模板,预处理,关注变化的地方

21、按合约设计: DBC,鸭子类型?找出业务规则并封装规则的变化

22、死程序不说谎: switch语句中的default子句的存在是为了让我们发现何时发生了不可能的事情,暴露错误,早崩溃

23、断言式编程:有选择的使用和开启

24、何时使用异常:将异常用于异常的问题

25、怎样配平资源: 处理资源要有始有终,尽量在分配的地方释放

26、 解耦与得墨忒耳法则:最少知识原则,不要和陌生人说话,对象的任何方法都应该只调用它自身、传入此方法的参数、它创建的对象以及它直接持有的组件

27、源程序设计:配置,将变化量放到元数据

28、时间耦合:并发的本质问题之一是时间

29、它只是视图:MVC

30、黑板:mediator模式

31、靠巧合编程: 知道你在做什么,把代码写扎实

32、算法速率:随时记得优化代码,优化要把握度

33、重构:习惯重构,自动测试是比较理想的状况

34、易于测试的代码: 测试文化,你和用户,总有一个人测

35、邪恶的向导:弄清楚向导干了什么

36、需求之坑:将商业策略与实际的需求分开, 问下为什么!需求是需要

37、解开不可能解开的谜题: 确定真正的约束所在

38、等你准备好:构建原型

39、规范陷阱:需求和规范都要有一些抽象,留一些空间

40、圆圈与箭头:取众家之长,形成自己的工作习惯

41、注重实效的团队:个人的原则也适用于团队

42、无处不在的自动化:让计算机去重复,它会比我们做得更好

43、无情的测试:早测试,道是无情却有情

44、全都是写:文档和代码同样重要

45、极大的期望:步子别跨太大,否则会扯到

46、傲慢欲偏见:署名,打上你的标记,树立你的品牌。