论程序员的职业素养(如何成为专业人士?)————《The Clean Coder—A Code of Conduct for Professional Programmers》心得

0 背景

这是一个“带你读好书”系列的个人读书笔记中的第一本书。书籍的名称为《代码整洁之道————程序员的职业素养》。读这本书的起因,是因为自己想了解“究竟什么样的才算一个职业的程序员?”,在查阅相关资料后,便选择了本书,并且试读了一些章节后,觉得这是一本好书,于是便准备读完这本,并做一些笔记。因为读书的意义在于解惑或是从书中得到个人的思考。
很多人都说,程序员是吃青春饭,35岁是程序员的一道坎,很多到了这年龄都会转行。我想除了精力(体力下降、时间分配【照顾家庭】)是一个原因外,还有一个非常重要的原因就是技术能力【某个领域钻的很深,有不可替代性】。现在,市场上程序员非常多,科班(优势就在于对计算机基础理论的掌握)出生的、培训机构、自学的,各种程序员鱼龙混杂,很多程序写代码都是“拿来主义“,不假思索就加以一套用,这是非常不利于自身发展的。我觉得程序员更像是一名软件”工匠“,他们用自己精湛和专业的技法帮人们创造软件,而工匠就讲究一种”匠人精神“,就是专业水准【时间的积累,刻意的训练】,能够出色完成任务、善于沟通、就事论事、管理好时间。

1 序言

这本书共有三个序言,两个译者序和一个作者序言。

译者序言中讲到,作为一个程序员不仅要有基本的编程技能作为“硬素质”,更需要“软素质”——良好的习惯和行为思维方式,“硬素质”决定我们能不能找到一份糊口的工作,“软素质”则决定我们将来职业生涯的高度和长度。

例如:找工作时,经常会问到“在过去的工作中,遇到过那些印象深刻的问题以及如何解决的”,这个问题背后就是考察面试者的思维方式。【解决问题的方式、步骤以及反思程度】所以刻意培养良好的习惯和思维方式对于应聘求职来说是必要的。

作者序言中讲到,这本书更像是作者本身的编程生涯中犯错集合,并且作者挖掘了这些错误的原因以及如何避免再犯同样的错误。因为,无法铭记过去的人,注定要重蹈覆辙。

2 程序员的素质(专业主义)

2.1 承担责任

  • 1, 把公司的利益视为个人利益;
  • 2,不推脱责任;
  • 3,享受权利(专业人士的荣誉和骄傲),同时也要承担责任。

2.2 不做损害的事

  • 1,保持严谨认真的态度对待每一行代码,尽量减少程序的bug【不要拿程序都会存在bug当自己程序有bug的借口】;
  • 2, 对于出现的bug要总结,以防下次再犯;
  • 3,随着职业经验的增加,失误率(bug)应该快速减少,甚至趋近于零。

2.3 测试

  • 1,自己编写自动化单元测试(QA),要求覆盖全部代码
  • 2,先写测试,再写要测试的代码(测试驱动开发,TDD)
  • 3,要让软件易于修改【如果希望自己的软件灵活可变,那就应该时常修改它!(“无情重构”/“童子军训练守则”)】;

2.4 道德

2.4.1了解自己的领域

虽然软件领域发展迅猛,各种新技术、工具、观点、术语层出不穷,但是基础的知识却没有改变【例如我们还是跟过去一样写个各种的if和else】。

要做到专业开发者,就要了解大部分本领域的知识(例如:耦合性、摩尔型、N-S图标、数据流程图进行功能分析、手写快排等),还要精通下面的事项:

  • 1,设计模式。
    • 能描述(GOF【设计模式:可复用面向对象软件的基础】书中的全部设计模式,POSA【面向模式的软件架构】多数模式的实战经验)
  • 2,设计原则。
    • 了解SOLID原则(面向对象编程和设计的五大依赖关系),深刻理解组件设计原则。
  • 4,方法。
    • 理解XP、Scrum(敏捷软件开发的方法学)、精益、看板、瀑布、结构化分析及设计等。
  • 5,实践。
    • 掌握测试驱动开发、面向对象设计、结构化编程、持续集成和结对编程。
  • 6,工件。
    • 了解使用UML图、DFD图(数据流程图)、结构图、petri网络图、状态迁移图、流程图和决策表。

2.4.2 坚持学习

每位音乐家都不是靠表演掌握技能的,而是靠的是大量的练习。什么样的练习呢?特定的训练,音阶、练习曲、不断演奏等。编程也是同样的道理。

  • 1,每周投入固定的事件去培养和提升自己的职业能力(学习【看书、视频、文档】、练习),至少每周增加20小时(碎片事件【通勤、午饭】或下班时间)
  • 2,每天都刷几道算法,用于提升思维、快速敲代码、熟练语言等。

2.4.3 合作与辅导

俗话说“见贤思齐,见不贤自省“,跟别人合作编程、练习、设计、计划。不仅可以学习如何和他人沟通(很多程序都不是一个人可以完成的,多是团队开发),而且也可以更快、更高质量的工作。
著名物理学家费尔曼曾说过“最好的学习方法,就是教授他人“。这样不仅可以让自己重温知识,而且更锻炼自己表达能力和理解问题的能力。

2.4.4 理解业务知识

  • 1,在开始一个新的项目时,应该读一些相关领域的书籍(基础架构/知识方面的),并且和客户、用户访谈,有条件也可以和专家交流,来进一步了解他们的原则和价值概念。
  • *2,不要只是简单的按照规格说明来编写代码,还要对他们为什么这样规格定义有一定理解。
  • 3,能辨别、质疑规格说明书中的错误。

2.4.5 站在雇主/客户的角度思考问题

2.4.6 保持谦逊

  • 1,因为每个人都会犯错,因此别人犯错的时候不应该嘲笑他人,因为自己也可能犯错。
  • 2,因为编程是一种创造性活动,从混沌创造秩序,机器是十分严谨的,只要稍有差错,就会造成无法估量的错误。因此,我们犯错了,除了总结和避免下次再犯以外,就是一笑了之。
已标记关键词 清除标记
©️2020 CSDN 皮肤主题: 岁月 设计师:pinMode 返回首页