阅读 392

《程序员的职业素养》读书笔记

前言

    在写笔记之前,看了下第一条笔记是7月1号标记的,看了2个月才看完,这本书毫无疑问适合程序员看看,书中很多的场景和案例常常感到自己中枪,哪怕是老外写的书也能产生不少的共鸣,下面就来看下这本书讲了什么。

这本书讲了什么?

    讲述的是作者的个人心路历程,作者用自己的亲生经历给予读者一些建议,也可以看作作者的为人处事的标准,当然好的方面值得学习,坏的方面要成为我们的经验教训进行反思,如果我当时是作者我会做出怎么样的选择?以上就是这本书的内容就是这么简单,你甚至可以看做一个个人经历总结来看,估计很多人可能认为是鸡汤,但是从个人的角度可以看到不少值得反思的内容,所以这本书还是十分推荐给各位同学看看。

为什么要看这本书?

    一方面是人的好奇心,这本书即使不用看基本上讲啥内容心里基本都了解大半了,这本书可以当程序员的笑话看(算是一种自嘲),也可以作为自己的检讨和反思清单,当然作为“同行”写的书不需要那么认真,也不一定要去学习作者的准则,但是一定不要像作者一样重蹈覆辙即可。

个人评价

    有时候为了放松心情就会选择看看这种书籍,这本书可以作为一个检查清单,看一下作者所述的程序员的通病在自己身上有没有体现,当然这本书的TDD的概念已经十分落后,完全不值得学习和推荐,另外老外的书籍多少和国外的编程环境有关,另外从作者文字也可以看出计算机编程早期的世界有多么的痛苦和艰辛,实在难以想象用“纸带”DEBUG是一种怎么样的体验。

笔记概述

  • 专业人士应该怎么做

    - 不应该浪费他人的时间

    - 严格遵守自己的底线

    - 不做损人利己的事情

    - 软件要易于修改

    - 不要成为救世主

  • 编码陷阱

    - 带有情绪的代码

    - 糟糕的代码

    - 焦虑的代码

    - 流态区(贤者模式)

    

    

笔记摘要

专业人士应该怎么做

在这本书的开头,提到了“专业人士”这四个字,作者干了42年的编程也算是骨灰级的老前辈了,所以话语权还是有分量的,写出来的建议也具备很强的指导价值,作者干过CEO也干过最底层的员工,或者说多数技术转型的老板基本都是码农出身,其实这样的人写出来的书也有好处,那就是比较务实 ,这本书也如我所愿讲的东西十分的贴切现实,主要讲述的是从小兵的专业人士的成长心路历程。

另外这里提一下小技巧:想看一个老板是否务实,只要看看过节日的时候发的是什么样的礼物即可。

不应该浪费他人的时间

    作者在刚开始入门的时候,由于缺乏责任心,对于自己编写的代码草草测试之后就提交了,结果显而易见,不仅销售挨了客户的骂,作者更是直接丢了自己的工作,这导致他下一次的工作更加小心翼翼甚至是一生刻骨铭心的回忆,但是实际上这样的事情是在反复发生的,在读到这一段内容的时候相信会有不少共鸣,并且深刻的认识到自己的所作所为能给别人造成多少的麻烦和伤害。

    自己的时间和别人的时间同样重要! 自己的时间应该珍惜,当然也不应该浪费他人的时间。但是凡事都有例外,如果是对于 **紧急不重要 ** 的事情,如果可以尽快把事情甩出去才是上策。

严格遵守自己的底线

    如果是为了维护自己的颜面突破底线,后果将不堪设想,如果总是抱持着写烂代码的习惯并且不在意其他阅读者的感受,那么就是在往垃圾场不断的制造垃圾,最后造成的后果就是:“看,又是他写的垃圾代码”,字如其人,代码也如其人,相信很多人都会有吐槽垃圾代码的感受,但是个人原则是在吐槽垃圾代码之前会事先反思自己有没有做过,如果自己也有做过,那么这句话会放到心里(哈哈)

    结论:对自己制定更高的标准和底线,自己的能力和水平才会不断的提高,富有责任心和罪恶感的人通常能走的更远。

不做损人利己的事情

    损人利己很简单,写上自己只能看懂的代码即可,我相信每一位开发同学都有遇到过,或者说每一个编程的人或多或少都有接触,在这里作者提出了一个重要的专业人士的强调: 明知道不可避免依然勇于承担错误和责任的人 。比写出垃圾代码更加令人羞愧的是出现客户也能发现的BUG,这一点基本上每个人都会有接触,如果你遇不到那恭喜进了一家很不错的公司。

    损人利己一种现实的体现是例如大学选课的软件经常出现“排队”和崩溃的现象,只会让人抓狂并且大骂垃圾网站,希望你永远不要成为维护这种网站的一份子。

    > 注意:不可避免不是借口。

软件要易于修改

    国外有一个编码原则叫做童子军守则 ,意思是在自己阅读代码的时候,每一次退出代码都要比进入之前干净,个人尝试之后确实如此,比如删除无意义的注释,或者删除一些毫无意义的废话解释,或者把一些常见的写法进行简化,虽然多数人会觉得没有什么卵用,反正代码依然垃圾,没有从本质改变,但是按照个人的经验来看,这是一种坚守自己底线并且训练自己的专业人士的思维能力。

    训练思维比训练习惯要难很多,改变思维模式经常伴随着失败和痛苦。

不要成为救世主

    什么是救世主呢?这本书介绍了一个记忆深刻的案例,就是一位软件开发人员为一个商场开发一个促销的程序,然后就是典型的“甲方需求”,并且给出了一个2周内的时间完成,起初这位软件开发人员认为这种东西一周就可以完成,然而实际编写的时候却发现这是一个2周不可能完成的任务,但是自己已经向对方承诺两周内完成,然后就是自己硬着头皮上了,结果可想而知,不但天天熬夜加班,代码也是一滩烂泥,代码质量基本类似于通宵完成一个明天就要交差的任务。

    这位开发人员在敲完最后一行代码然而当一切准备交差的时候,自己内心仿佛认为自己救世主降临,认为是自己拯救了客户,这种脆弱的虚荣和成就感造成了难以想象的后果,开发人员信誓旦旦的提交了测试,然而甲方却突然说不需要了甚至已经忘了这件事,最后的结果也是十分的灾难,在上线之后这位开发人员突然意识到问题的严重性发现系统发放的优惠券根本不能使用,然而当紧急下线之后却发现有10多个人已经注册并且申请的促销券,故事的结果就只一句话:无法想象当用户拿着毫无承诺和作用的打折券进行结账的时候会有多么痛苦。

    上面这个故事道出了一个很简单的程序员规则:我们不是在创造世界,我们的目的是服务人类,成就感和虚荣感是一文不值的。

    

编码陷阱

    如果说书中一半是作者的教导之外,另外一半就是作者的经验了,作者提到了很多个人的切身建议(意外的是作为老外的建议却蛮实用的),下面是个人记忆稍微深刻一些的内容。讲述的是在什么时候会写出所谓的垃圾代码

带有情绪的代码

    和下面的焦虑的代码有些区别,带有情绪的代码是指在自己心情不好的时候特意去编码来转移注意力,可能有人会觉得奇怪,但是人在心情不好的时候或者状态不好的时候其实是会做出很多匪夷所思的行动。

糟糕的代码

    糟糕的代码是为了完成任务或者大半夜写出来的代码,这里虽然不否认有些人在晚上精力更好,并且晚上发散的思维构建代码,但是对于大多数人来说,白天写出来的代码通常更加不容易出错,一段糟糕的代码不仅容易挨来臭骂,并且久而久之会让编码人员失去责任心和罪恶感。所以需要记住,信守自己的承诺,设置自己的底线,才不会被自己写的BUG拖入泥潭。

焦虑的代码

    心情不好的时候或者救火的时候写出来的代码,这时候可能会因为测试而缺少一些关键的改动,甚至有可能漏写或者少些关键的部分,所以心情不好的时候千万不要写任何代码,并且每天在趁早的时候做重要的事情,不是让时间一拖再拖。

    心情不好的时候一定要找办法去克服,消除干扰并且让自己平静下来。

流态区(贤者模式)

    流态区通常出现在长时间编码的情况下,当人在长时间编码的情况下写出来的代码通常会有很多漏洞或者疏忽,在书中的解释是在编码的时候高度的专注但是此时会感到意识被收拢,有点类似“两耳不闻窗外事,一心只读圣贤书”的感觉。这种浅层冥想的感觉也有类似于潜意识的动作,这种时候你的电脑通常会偷懒。

    这也是TDD很容易进入的一种状态,测试通过编码测试通过这样做法最后会让自己进入一种“无敌”的境界,仿佛自己可以办到一切事情。

    所以一定要小心进入流态区,最好的方式是使用定时休息方式。

总结

    这本书还是十分推荐一看的,当自己恼火或者因为工作烦心的时候,看看作者朴实的文字,不要像作者过去那样,被同事吐槽:“看,他又在自己给自己发短信了!”。

    

写在最后

    当做一本休闲书籍来看也是不错的书籍。

文章分类
阅读
文章标签