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

2021-09-11 15:05:40 +08:00
young1lin  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 客服,告诉极客时间专栏作者。

11868 次点击
所在节点   随想  随想
78 条回复
learningman
learningman
2021-09-11 15:26:35 +08:00
认为重复的 CRUD 很无趣,总想着换个工作能好点。
不认同,CRUD 就是很没有意思啊
wangxn
wangxn
2021-09-11 15:36:30 +08:00
楼上+1
dongcidaci
dongcidaci
2021-09-11 15:43:58 +08:00
目前作为一个低效能程序员,对楼主说的很有体会和感悟
WispZhan
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