> 这是我的第63篇传递感知练习。
研发的任务通常并不单一,完成一项任务会遇到ABCDE五个小问题。通常我需要解决了问题A之后才能进入到下一个问题B,然后再解决问题C和D,最后才能走到解决E的征程。并且,这五个问题只能线性的逐个击破,没办法做到并发执行,当我们被某个问题卡住的时候,就只能停在原地,这时最抓狂最痛苦,而突破之后,欣喜万分如获新生。
好不容易走到任务的尽头,大呼一口气,“感觉自己又进步了一大截”。可,这通常是幻觉。我们需要在任务结束后反思:“这个岗位的核心能力是什么?我的这些能力真的得到提升了吗?”
对于开发来说,每解决一个新问题都是一个突破都算得上一次“成长”。只不过研发中遇到的每一个问题通常都不需要从0开始起步,很可能网上就有大量的相关资料或者已经有很多现成的完善的库,这些库直接提供了很好的解决方案,而我要做的就是熟悉这些库提供的接口然后运用到我的项目中,最多读点英文文档要费点劲。
会使用并不代表真的懂,就如你会开车但你不一定知道涡轮增压和自然吸气有什么区别一样,你也很可能不知道车是如何造出来的……这种情况在研发中依然常见,我做图像算法,可我并不需要知道每个算法的代码实现甚至不需要知道算法原理,我只需要知道怎么用就可以了。从这个点看,写程序也没那么难,我们只不过是掌握了点基础技能:懂点英语、会搜索、懂编程语法,仅此而已。
我总结在我所属行业我所在岗位的两项核心竞争能力是:C++编码能力、算法知识广度和深度。一个项目完成之后,我只不过是解决了一些不是那么重要的小问题,而那两项核心能力未必得到提升。所以“艰难地”完成了一些项目只是个开始,后面还有很多工作要做:了解算法的原理,有没其他更有的方法,代码是否还可以写得更简洁更高效率……
虽然每个人所处的行业和工作内容不一样,但是这个问题值得反思:“我的核心能力真的得到了提升吗?”找到个人的核心能力,然后把更多的注意力放在这里,这是“注意力最宝贵”价值观的体现。