Writings

A place to place some writings

一个程序员的经验之谈

伟大的程序员都是产品经理

他们也许不懂产品设计的那些术语,但是不管是代码、API、协议、架构、文档、UI/UX,他们心里都总会有装着「人」,他们会思考别人会如何使用这些东西、为什么某个东西对别人来说很重要……

他们会持续不懈地追求更好的用户体验。

尽量构建小而美的东西

你总会有很多机会去做「添加」,但是却很难有机会去做「减少」。你要尽量抵挡这种趋势,专注于核心功能。无论是小到编写一个函数还是大到设计一个架构,尽量让它简单而优雅地完成任务。

要记得魔数 7

《Unix 编程艺术》里也提到过,人们无法一下子处理超过 7 个问题,因为人的短期记忆跨度是非常有限的。

这个数字可以让你避免构建过于复杂的东西,比如说你最好不要让一个函数调用别的函数超过 7 个,文档的一个小结最好不要超过 7 个要点……

The Magical Number Seven, Plus or Minus Two[1]

永远学习

哪怕你是个老炮,你也永远有不懂的地方,唯一的办法就是持续学习。实际上,不管是程序员还是什么职业,学习都是终身的事情,请成为一个终身学习者。

勇敢承认自己的无知,乐于向他人学习和请教。

永远重视基础知识

基础知识是有长期价值的,尽量多花时间掌握基础知识而不是上层那些花里胡哨的东西。因为基础知识才能让你「以不变应万变」,才可以让你理解事物的本质,当你遇到难题时才会更有自信。

成长是一个艰辛的过程

你或多或少要经历一些迷茫、痛苦、挣扎,最终才能走到更高的地方。认清楚这个现实,然后再稳扎稳打、踏踏实实地把路走出来。

这是长期主义者应该有的心态。

保持写作的习惯

程序员应该保持写作的习惯,不管是博客、文档,还是论文,不管你发布还是不发布这些东西,你都要持续地写、写、写。写作可以让人的思维变得清晰,让交流变得高效。

写作也是一件超高杠杆的事情。

数据往往比代码更值钱

永远重视数据,不要把它们搞丢了,让它们保持干净有序,长期来看,数据会给你带来源源不断的收益。

自己的数据资料也要管理好、备份好,因为这些都是你多年的劳动成果,千万不要把安全感寄托在一块磁盘上。

不妨多花点时间做决策

我们总是希望马上行动起来,马上看到产出,但这样很容易盲目。我们应该把大部分时间都花在思考问题和调研上,让自己尽量能做出好的决策。你待在越高的位置就应该把越多的时间花在做决策上。

好的决策可以让整个团队甚至是社区少走很多弯路。

赚钱并不寒碜

自信地为自己的劳动收取费用。免费做贡献是没问题的,它给你带来了荣誉,但是你为你的劳动收费也是理所应当的。我们为别人创造了价值,那么我们就应该获得应有的报酬。

这也是你尊重自己的知识、技能、时间的一种表现。

放下大厂和名校光环

你应该为自己的作品(做的事情)而感到骄傲而不是头衔。不要被那些光环给迷住了双眼,学会客观认识自己,想想看自己刨除那些光环后还剩下什么。

寻找合作伙伴或者员工的时候也是如此,不要被那些光环给眩晕了。

接受不完美

工程上很少有一个完美的解决方案,你学会理解那些不完美背后的权衡。尽量避免完美主义,因为在追求完美之外,还有很多更有价值的事情,它们更值得你付出时间和精力。

创建项目简单,维护项目难

我们或多或少都有「达芬奇综合征」:不停地开启新项目但是很少有真正完成的。

我们会沉迷在开新项目和收获新知识的快乐之中,但是真正要把一个项目做好是需要长年累月地迭代的,这个过程中大部分时候是枯燥的。

是否为科班出身并不重要

很多人会因为自己不是科班出身的而不自信,其实这并不重要,重要的是你是否有兴趣和热情。这个世界上已经有无数的例子向我们证明了这一点。


最后我想说,知易行难。懂得道理是几秒钟的事情,但是实践却需要长期地努力。

不过我们要坚信一句话:努力终有回报。