最近重读了这三本书。上一次读大概还是在10年前,有了这些年的工作经验,再看这些书,感触颇深。
比如你喜欢用什么编辑器,喜欢用什么编程语言,喜欢用什么操作系统,这些都是个人喜好,没有对错之分。不要陷入无意义的口水战。 而是要看什么场景用什么工具,对症下药。例如,UNIX程序员喜欢文本模式,Windows程序员喜欢图形界面。UNIX文化老是吐槽Windows 注册表,但是UNIX的配置文件到处都是。又或者C语言高效,Python是玩具等等。这些都是无意义的争论。
应该在合适的场景使用合适的工具,比如UNIX的文化来源于哪里呢?UNIX来源于他是面向程序员的操作系统,而Windows是面向用户的操作系统。 文本对程序员是友好的,但是你要一个老奶奶来用编辑器编辑配置文件,那就很折磨人了。
要快速迭代时,用Python,要高效时,用Go,嵌入式用C,开发浏览器页面就得用JS等等。
是就给你的团队加上1分,否则就是0分。得分越高,团队越好。12分是完美的,11分尚可,10分或更低就意味着开发团队出了很严重的问题。
这一篇文章写于2000年,现在看来,这些问题都是很基础的问题,但是很多团队还是做不到。里面的很多东西,也成了现在的基础设施, 比如源码管理系统,今天的git;编译,今天的CI/CD;bug数据库,今天的issue tracker等等。
这不就是现在的Sentry/Crashlytics等等吗?
多个任务并行,不断切换,的确会降低效率。
黑客是一种文化,是一种态度,是一种精神。黑客是对技术的热爱,是对技术的追求,是对技术的探索。
思想自由比言论自由更重要。
此外还可以阅读 Raymond. Eric S. 的 How to become a hacker。
软技能是什么?软技能是与技术无关的技能。
我们习惯了打工,领取月薪。如果换个视角,会更好。把自己当作一家企业,现在的雇主只是你的第一个客户,你可以有更多的客户。 作为一个企业,就要想办法提高自己的价值,提高自己的收入。因此需要思考品牌,市场,销售等等。
要有中期目标和短期目标。中期目标是你的职业规划,比如5年后,10年后你想成为什么样的人。短期目标一般是最近的几个月,比如 你想学习什么技术,你想做什么项目等等。
我个人一般会设置5年规划,以及每年定目标。然后再拆分成每个月的目标。
说到底,计算机程序是为人服务的,工作中写文档、写邮件、开会、沟通其实都是和人打交道。甚至写代码也是为了给人用。 所以千万不要想着“我只想安安静静的写代码”。
不要背负债务。