低效能程序员的行为与思维,共勉

2021-09-11 15:05:40 +08:00
 young1lin

不是感情宣泄,因为其中有些行为或思维也是我以前作为低效能程序员的总结。

排过序

  1. 不写单元测试
  2. 不主动学习,不看书
  3. 总是拿没时间作为借口
  4. 不会做任务拆解,也没有记录拆解的任务。
  5. 做事没耐心。
  6. 不 Review 自己的代码,做过的事情,犯的错误。
  7. 从不了解架构,不了解设计(设计就是架构)。
  8. 不了解敏捷开发,更没有想了解的意愿,也不会去实施。Scrum Standup 、Kanban Board 是能提高工作效率的。
  9. 喜欢埋怨别人,说在公司学不到技术,也不积极主动学习。
  10. 认为重复的 CRUD 很无趣,总想着换个工作能好点。
  11. 对每天做的事情不做记录。这里不是指日报,这里指的是你对每天工作是否有计划,将大的任务,拆成足够小的子任务。按优先级,有次序得完成任务。
  12. 喜欢口述需求,不做文本化记录、转达。来自同事
  13. 喜欢 “多线程” 处理任务。也就是同时做多件事。
  14. 命名无关紧要。
  15. 从不重构以前的代码。
  16. 喜欢一个方法写一大段代码。
  17. 对自己的代码质量没有追求。没有匠心精神,只是个开发( Developer ),而不是工程师( Engineer )。
  18. 和上面一样,认为敲代码来钱快,觉得以后要转其他职业的。来自以前的一些同事。
  19. 喜欢盲目追逐新技术,不深入了解类似技术的本质。
  20. 喜欢闭门造车,不了解业界成熟的内容本质,不会多维度比较。
  21. 喜欢看“垃圾博客”(这里特指 CSDN 上的大部分博客),而不是看书了解技术。
  22. 对别人产生严重依赖。例子:连 SQL 的关键字 AFTER 也要去问别人得到答案,而不是自己搜索。
  23. 工作能力很差,但总喜欢教别人工作之外的事情(例如 “做人” 的那些 “大道理”)。
  24. 思维固化,不听取他人意见,只会反对(无理无据,没有拿出实际论证的内容那种)。
  25. 在没有完全掌握或了解的情况下,擅自使用 “新技术”。例如在没有完全掌握多线程和函数式编程的情况下,喜欢 "滥用" 多线程、函数式编程。我说的掌握,前提是看过相应的书籍,例如《 Java 8 实战》、《函数式编程》、《 Java 并发编程实战》这些书籍,并且真正理解其中的内容。在不了解 Kafka Streams 的情况下,直接引入对应的 Spring Cloud Stream 进行新项目的开发,从而引入天坑。
  26. 碎片化工作。上班一半以上时间都是在刷手机摸鱼,没有完整的大段的深度工作的时间,把工作时间碎片化了。
  27. 喜欢将 5 天的事情,拖到 6 天 “做完”。当然,这里和公司也有关系,垃圾公司是比较喜欢 996,大小周,以为能多压榨下员工。
  28. 从不看计算机操作系统的相关内容。
  29. 喜欢过度设计。这个 “过度”,仁者见仁,智者见智,分不同场景下有不同的解释。
  30. 引用别人的内容,从不标注出处。

参考自

正例

《高效能人士的七个习惯》

《深入理解计算机操作系统》

《 Clean Code 》

《 Clean Architecture 》

《重构》

The skill of self confidence | Dr. Ivan Joseph | TEDxRyersonU - YouTube

芯片工程师的一天 | 我如何每天高效工作 12 小时? [经验分享]

《 10x 程序员工作法》

如果你没有看过《高效能人士的七个习惯》、《金字塔原理》、《 Clean Architecture 》、《重构》、《实现领域驱动设计》、《微服务架构设计模式》、《测试驱动开发》、《敏捷软件开发:原则、实践与模式》(后面两年本我也没看过,只看过相关的书籍,例如大学学的《软件工程》),你又想短时间内提升自己,你可以挑着这个专栏,如果和你意你可以考虑买一下。我没收过极客或者作者一分钱,只是觉得还行,有一定收获。当然,看了专栏不代表这些书就可以不看了,这些书籍我也看了大半,尤其是《 Microservices Patterns 》也就是《微服务架构设计模式》,力荐。

反例

一年前的自己

历任同事(不包括所有)

我知道我不能说 CSDN 上全是垃圾博客,全是讲一半害人,抄书上的内容,你可以很 “轻易” 得找出能反驳我的博客。每个人都有自己不同的看法,我的看法就是认为 CSDN 是垃圾网站。

——来自一个告 “深山猿” 直接抄袭复制《 MySQL 实战 45 讲》的人,询问 CSDN 客服,告诉极客时间专栏作者。

11347 次点击
所在节点    随想
78 条回复
learningman
2021-09-11 15:26:35 +08:00
认为重复的 CRUD 很无趣,总想着换个工作能好点。
不认同,CRUD 就是很没有意思啊
wangxn
2021-09-11 15:36:30 +08:00
楼上+1
dongcidaci
2021-09-11 15:43:58 +08:00
目前作为一个低效能程序员,对楼主说的很有体会和感悟
WispZhan
2021-09-11 15:56:12 +08:00
总结的挺好
young1lin
2021-09-11 16:05:19 +08:00
@learningman 你可以看下文中的这个 The skill of self confidence | Dr. Ivan Joseph | TEDxRyersonU - YouTube,链接点进去。或者你可以看看这个。

3 rules to quickly improve your life

<amp-youtube data-videoid="Ek1qCQ5K3_k" layout="responsive" width="480" height="270"></amp-youtube>

从重复中找到乐趣,找到自信。成功的人不是每天做不一样的事,而是每天重复做同一件事,不断突破自己,不断踏出自己的舒适圈,不断成长。

如果你 CRUD 这些小事做不好,领导是不会说让你想什么技术解决方案的,小事都做不好的人,难做成大事。你可以每次只迈一小步,做任务拆解,从而完成大的任务。而且,CRUD 并不简单,任何事都不简单,你没遇到,不代表不存在。

换一个工作并不能改变这些,这是真的。很多公司是靠业务活的,不是靠创新活的。创新也要了解已有内容,在其基础上进行突破、改进。并且在计算机领域内,如果你不是专门研究某一块知识的人,很多时候,你的任务就是按部就班地完成和实现它。

有些时候,我们改变不了问题,但我们可以改变对问题的态度。或者说,只要能够看到问题的存在,就已经改变了面对问题的态度。
xianyukang
2021-09-11 16:09:30 +08:00
加一条不怎么相关的

31. 融入世俗, 没有享受过用编程进行创造 or 自我表达的快乐
young1lin
2021-09-11 16:30:46 +08:00
@xianyukang 对应 17 的匠心精神,以及 18 来钱快。

写代码是快乐的,而不是痛苦的,为了养家糊口的活动。
janus77
2021-09-11 16:35:14 +08:00
我感觉有些似乎自相矛盾或者不够说服力吧
比如上面说不喜欢新技术,后面又说滥用新技术的
比如碎片化工作和拖工期,我觉得空闲时间自己学习并没有什么问题,除非你所指的“低效能”只特指公司工作而不包括个人成长
另外我觉得每天高效工作 12 小时是值得尊敬的事,但不能成为值得推广的事
w7938940
2021-09-11 16:35:56 +08:00
除了第 24 条,说的就是我
yrj
2021-09-11 16:50:50 +08:00
不幸命中 29
7gugu
2021-09-11 17:00:58 +08:00
CRUD 确实很无聊😂
zhoudaiyu
2021-09-11 17:25:54 +08:00
建议加一个,从来不用百度以外搜索引擎搜索技术资料,我亲眼见过我曾经的组长用谷歌搜索百度,然后打开百度再搜索技术相关的文章
young1lin
2021-09-11 17:52:17 +08:00
@janus77

上面说的是, [喜欢盲目追逐新技术,不深入了解类似技术的本质] 。如果你说敏捷开发是新技术的话,可能你不是科班出身的,或者上课没认真听讲。可以看看相关书籍,我下面也有提到,或者再看看教材,我们那时候的是当时最新的《软件工程导论》-晏峰写的。

如果了解过一两个框架的源码或者中间件的源码,例如 Spring 的源码,你知道 BeanFactoryPostProcessor,BeanPostProcessor,BeanWrapper 等等,并且你还知道流水线( Pipeline )思想,很多源码,都不是问题。还有 Environment 抽象,你也可以在其他中间件实现类似的,例如 Flink,实现多 Environment 源,用 Spring EL 替换。如果都没看过对应的源码,那么看相应的书籍,可以帮你快速入门如何高效看源码。例如《通用源码阅读指导书》,这本书我看了部分,还是可以的,是可以作为源码阅读的入门书的。

碎片化工作,我们的理解可能出现了分歧,粒度可能不一样。我这里指的是,每过 10 分钟甚至更短,就看一会手机或者干工作之外的事情。如果你理解内存分配,内存碎片的内容,这部分你应该懂了。

如果你真正高效工作的话,一天 12 个小时高效工作,这个是很难做到的。你试过就知道了,我是这样,每天早上把今天的任务拆解了,拆到足够细了,开始工作,每工作 45 分钟,站 3 分钟,期间包括喝水、上厕所,结束后,再进行下一轮的工作周期。借鉴的番茄钟学习法,因为这个真的是有效的。

还有就是,我近半年没加过班了,不是说我不忙,任务不重,或者说公司大部分人都不加班。事实上正好相反,大部分人都 “加班”,由于是弹性打卡,他们早上在公司另一块园区的食堂打卡,然后 9 点多到工位,晚上拖到 8 点算是加班两个小时了。我一般是早上 7 点多到公司,看半小时到一小时书( 8:30 上班),再开始一天的工作计划安排。有时候是 6 点 50 多到公司,所以我每天都是 17:30 准时下班。

有计划,有组织地去完成任务,这是很高效的。你也可以试试。光有目标,没有详尽的计划,这种是很难坚持下来的。让你的工作产出可视化,让你的工作内容有所记录,都是能切切实实提升你的工作效率的。
young1lin
2021-09-11 17:56:52 +08:00
@zhoudaiyu

这个我也想加的,而且我想加的是,不会用英文在 Google/Bing 搜索技术问题。但是这个很容易引战,因为会有一大波人跳出来,我就觉得百度好用、你这用 Google 翻墙是犯法、你不支持国产搜索引擎你不爱国之类的话。

用 Google 搜索切切实实得改变了我的一些坏习惯,也提升了我的英文水平(虽然现在一般),我已经可以不看英文字幕,听得懂说话算是标准美式发音(不要经常有缩读、省读、连读等)的视频了。
fatigue
2021-09-11 17:57:20 +08:00
《码农成功学》
young1lin
2021-09-11 18:10:54 +08:00
@w7938940

是可以改的,人是会变的,可以一小步一小步地改正。如果现在是,不代表以后也是。

如果想成为更好的自己,那就得付诸一些切实可行的行动。

就算每天只前进 1%,一年后就是 37 倍的成长。如果不知道如何养成一个好习惯,可以看看《 Atomic Habits 》这本书,中文名《掌控习惯》。将养成习惯拆解成了 4 个阶段,提示、渴求、反应、奖励。如何养成一个好的习惯,就是增加 /增强提示,增加渴求,降低反应成本,让奖励可视化。

上面说得可能有些抽象,更为具体,例如你每天做 10 个俯卧撑,限定了当时的环境,比如穿的鞋子,场地还有时间。比如我到 20 点了,穿上运动鞋了,到了某个地方,就该做俯卧撑了。你渴望拥有八块腹肌,以及健硕的胸肌,那么就得把这些渴求展现出来。降低反应成本就是你一天只做 10 个,多了就不做,一天做 10 个应该不难吧,对于大多数人来说。这里有个理论是 Five-minutes Rule,意思就是你只做 5 分钟,超过了就不做,但事实上你做了一般都会超过 5 分钟。书上说的是两分钟,和这个是类似的。让奖励可视化,是我们习惯了即时性满足,我们就要让做完这件事奖励马上有反馈。你可以买个习惯笔记本,每天记录自己做了这个习惯,做了就打勾,没做就打叉。看看自己坚持的情况,这也是可以让你的习惯坚持下去的。

上面的习惯记录,让奖励可视化,其实在 Scrum 的 Kanban 也是如此的。

如果你对如何养成习惯感兴趣的话,可以深入看看这本书。或者《微习惯》、《弹性习惯》,都是类似的。
charlie21
2021-09-11 18:12:18 +08:00
7. 从不了解架构,不了解设计(设计就是架构)
29. 喜欢过度设计
Dragonphy
2021-09-11 19:38:22 +08:00
中了好多,也感谢您的资料分享🎉
whileFalse
2021-09-11 19:48:15 +08:00
@zhoudaiyu 他要是开着翻墙打开谷歌就能封神了
shm7
2021-09-11 19:48:45 +08:00
我做深度学习的,模型部分单元测试真就等同于系统测试…

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/801228

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX