程序员应具备的 5 个思维与态度

2022年12月11日

💎 加入 E+ 成長計畫 與超過 500+ 位軟體工程師一同在社群中成長,並且獲得更多的軟體工程學習資源

《迈向资深工程师系列》是笔者近期读各个业界资深工程师的书与讲座,总结下的笔记。主要是希望能够透过站在巨人的肩膀上,来了解可以如何更快迈向资深工程师。于此将笔记分享给同样想迈向资深的大家。

本篇文章将会记录笔者读到资深工程师分享的重要思维与态度。这篇文章内容将会持续扩展,当我读到新的重要概念时,会持续新增到文章中。若有听到相似概念但不同陈述方式,也会补充到各个要点中。

1. 打好基本

交给自己的任务要做好,在做好基本的之前,不要好高骛远。很多人可能觉得自己被分派的任务不重要、很无聊;但换个角度想把简单的事情做到极致,本身就是件有挑战的事。在你把分派的任务做到极致前,与其抱怨,不如试着挑战自己。此外,如果连最基本的都没有做好,很难赢得别人的信任。当你能把基本的最好,也比较能为自己赢得更大的任务。

2. 了解自己

在做好基本的之后,就要主动去思考自己自己想做的事、想成为的样子。有些人选择持续往技术钻研,成为技术专家;有些人转向管理职,成为工程经理;甚至有些人转向产品端。走哪一条路没有标准答案,重点是要知道自己要什么,成长是自己的事情。可以了解别人如何成长,但别人的都只是参考。当有了自己的目标,围绕在自己身旁的都是资源。你的主管是资源、你的同事是资源,你待的公司可以用大的小事都是你来达成你目标的资源。

3. 从捕鼠器看不同层次的工程师

百度前技术副总王梦秋说过一个关于捕鼠器的故事。一个工程师被交付一个任务要改进捕鼠器,初阶的工程师可能会先去研究现在捕鼠器哪里做不好,然后将不好的地方优化;又或者上网找资料,看看比较先进的捕鼠器怎么设计,并从别人的设计中学习如何改进。

然而资深的工程师,会做的则不一样。他们会去想,我们为什么需要捕鼠器? 因为我们要捉老鼠。能提出这问题就跟初阶工程有很大的差别。因为提出问题后可能发现,问题不出在捕鼠器本身,可能是出在我们部署捕鼠器的位置与数量。又或者捕鼠器本身是治标不治本,要治本的话应该要去想怎么解决老鼠的来源。

更资深的工程师会想,为什么我们要对抗老鼠? 原来背后的原因是要保护粮食。那这时解决问题的方向会完全不同。假如能有一个方法可以让粮食的保存不担心老鼠,我们甚至不需要去想如何解决老鼠的问题。

因此,在解决问题前,先问问自己「你要解决什么问题? 为什么要解决这问题? 这真的是你要解决的问题吗? 」

4. 上左右外

身为程序员,除了埋头做好自己的任务外,可以试着多往上、往左右、往外看

  • 向上看你的主管在解决什么问题? 有哪些你可以做? 哪些你有更好的方法?
  • 向左右看其他同事做的项目,让自己不只是在自己负责的单点上,能又更广的拓展
  • 向外看业界的新技术、趋势,用业余时间学不同技术、写写 side projects

5. 了解你的客户

很多程序员会陷入一个误区,就是只看技术不看客户。假如你是做面对消费者的项目,你需要时时关注终端使用者的需求;如果你是做让其他团队对接的项目,你则会需要时时关注其他团队的动态。不论做哪种项目,你要知道你最重要的客户是谁,并要时时跟这些大客户沟通。同时也要建立收集反馈的管道,让你可以更容易收集到客户的反馈。

同时,在开发项目时,不能直接假设客户懂你的领域。举例来说,假如你做的项目是开发 API,在设计接口时,不该暴露太多的细节,因为你的客户理当不该去烦恼那些细节;同时要让接口够傻瓜、够易用,让你的客户可以很容易上手你开发的东西。

🧵 如果你想收到最即時的內容更新,可以在 FacebookInstagram 上追蹤我們