文章

猫鱼周刊 vol. 011 程序员应该知道的心理学

关于本刊

这是猫鱼周刊的第 12 期,本系列每周日更新,主要内容为每周收集内容的分享,同时发布在

博客:阿猫的博客-猫鱼周刊

RSS:猫鱼周刊

邮件订阅:猫鱼周刊

微信公众号:猫兄的和谐号列车

Discord:猫兄的和谐号高铁

私信:leslieleung@pm.me

文章

小黄鸭为什么有用?

原文链接

从专业知识、技能上教你如何成为更好的程序员的文章多到数不清,但是这篇文章从心理角度分析了几个影响程序员表现的因素,以及提供了几个避免受到这些影响的技巧。程序员也是人,不是铁打的机器,了解、积极应对情感,能帮助我们更高效、更快乐。

文章一共介绍了五个方面,我以我的理解简要转述一下。

第一个是小黄鸭为什么有用。在遇到瓶颈时,跟杯子、猫或者同事讲解代码,能够帮助我们解决问题。作者认为一是我们的大脑习惯于在熟悉的事情上走捷径,因此在 debug 的时候,大脑经常跳过一些逻辑,让我们无法找到其中隐藏的问题;二是程序员都有自尊问题,你会认为自己的代码没有问题,从而无法客观看待问题;三是在对小黄鸭讲解时,会形成一种教学的关系,让你重新审视你的想法。

第二个是淋浴效应(Shower Effect)。总的来说,人在放松的时候能更好的思考,产生的多巴胺也能使大脑更有创造力。不止淋浴,慢跑、游泳,甚至睡觉也能达到类似的效果。

第三个是受困的力量。在遇到瓶颈时,我们可能陷入低落的情绪,会急于脱困而采取非最佳的方式去解决问题。根本原因是恐惧,避免挫折。解决方法是直面你的困难,将它变成你的知识,从新的角度看待这个问题,同时可以尝试退回你之前做的一些假设(take a step back),也许会有全新发现。

第四是无聊和焦虑。在工作中遇到的东西基本是重复和繁杂的,会让你感到无聊,消耗你的创造力。要把这些事情变成一个仪式,在完成时就可以获得满足感。同时工作也可能会让你感到焦虑,当你遇到焦虑时,要具体化你的焦虑,把他们分解成可执行的步骤,从而让你回到正轨。

第五是“你想要的是什么”。大家都想成为“好程序员”,写“高质量代码”,但怎么定义“好”和”质量“呢?这就取决于你想要的是什么。作者把写代码比做音乐或电影的创作,认真投入,然后到完成的时候会有一种成就感。

至少 20 年不过时的研究方向在哪里?

原文链接

悟空不是有方向,而是有目标。

有目标,就有方向。有什么样的目标,就有什么样的方向,相应的,最终将有什么样的成就,只要像悟空那样咬定目标不放松。

说理的部分我不加赘述了,文章本身写得非常好。我补充一下作为程序员的感触:文章中提到:

人人知晓的是,悟空通过三年多的课题研究,掌握了七十二变和筋斗云。这两项本领使他在大闹天宫时“十万军中无敌手,九重天上有威风”,也使他在后来的西天取经路上“炼魔降怪有功”,最终被如来佛祖封为“斗战胜佛”。

我觉得程序员的“七十二变”和“筋斗云”是快速理解和学习的能力以及英语能力。理解和学习能力能让你快速上手和掌握新的技术,在时代洪流中不被淘汰;而英语能力能消除地理带来的沟通限制。

古茗打印机技术的演进

原文链接

文章的内容大致是如何从一开始简单的打印到后续优化打印效果、自动化等。我觉得比较有意思的是,作为“前端团队”,负责软件的程序员一般是不太负责“硬件”的,能针对硬件做优化在技术上很强。另外,作为一个连锁饮料店的技术,不局限于“能用就行”的态度,进行这么多深入的探索和改进,实在是值得学习。

项目

InkboxSoftware/excelCPU

InkboxSoftware/excelCPU - GitHub

非常新颖,利用 Excel 来模拟 CPU。可以自定义指令集,也可以使用一个已有的指令集。

(不得不说,国外的程序员真的有很多时间和精力做这种 fun project)

lacion/cookiecutter-golang

lacion/cookiecutter-golang - GitHub

一个 Go 的脚手架生成工具。Go 官方团队在推的 gonew 的体验非常一般(不会自己替换 import 的包名,而且功能非常简单,只能简单复制现有的 repo),这个提供了相对比较复杂而且全面的自定义选项和模板。

工具/网站

AIDesign

网站链接

腾讯出的一个 AI 生成 Logo 的工具。试着用来生成了一个项目的 Logo,生成和编辑的操作逻辑不错,出来的效果也基本能看,而且可以商业使用。目前免费。

想法

什么是好的选题

我对“好文章”的一些理解,也是我平时写作选题的时候对自己的一些要求。

  1. 要新鲜,不要来回炒冷饭,讲人人都知道的事,或者我早就知道的事,或者现在很热人人都在讲的事
  2. 如果不新鲜,至少角度要新颖,或者有自己的见解或者创意,例如可交互的技术文章
  3. 有深度,但是又不能太高深,没实际作用。例如讲内存对齐是有意义的,但垃圾回收是没意义的,内存对齐是平时下意识改一下可以提升性能的,垃圾回收正常人都不用去管
  4. 如果你发现有一篇写得很好的文章,你不能写得比他更好,你应该引用它或者把它分享给别人,而不是写一篇文章洗稿复述一遍。同样适合于官方文档。如果官方文档已经写得很好,没必要再写一系列入门文档
License:  CC BY 4.0