给程序员的一条职场建议

我 08 年初入职场,大小公司辗转几家,自己经历加上周遭的见闻,我感觉这十年来有一条职场经验于我最为宝贵,或许这条经验不仅适用于程序员,于所有职场都是通用的,甚至是跨域国界和文化的。

这条经验其实说起来颇为简单,字面意义几句话就能交代清楚,执行起来却是千难万难,即使能放下脸面付诸行动,要长久的坚持更为不易。这世上很多道理都是这样,说透了人人都懂,要真应用到自己的人生才是难事。

作为程序员,不可避免的会将注意力集中在代码上,尤其初入职场,新公司新岗位的成长空间是重中之重。做核心项目,造轮子,阅读技术文章等等,感觉好像每年技术上有进步才踏实,前景才有保障。关注自身技术成长本身并没有错,这么做容易导致的一个潜意识认知是:只要自己技术够硬,成功自然到来。

代码写的好,是否一定能带来职场的稳步升迁呢?

那得看写的多好,人中龙凤天纵之才的话,谁也按不住自然会出头。如果只是一般优秀或者平均水平可以仰望的高度,那么代码如何可能并不是最关键的了。

或者说代码技能强能在一定空间内带来稳定的职场回报,但有瓶颈。假设你进入了阿里腾讯核心技术团队,你还能比身边的人优秀多少呢?除了技术能力还有另一些容易被忽视的能力尤其重要,也是我所体会到的最为珍贵的职场经验。

比执行力更为稀缺的是规划能力,比代码水平更宝贵的是制定方向。

听起来有些抽象甚至有鸡汤的嫌疑,但其实上面这句话可以翻译成非常切实可行的步骤。我出国之前对这句话就有感受,来 FB 之后虽然企业文化有变,但我对这条经验有了更为具体真实的感知。

对于程序员而言,这句话意味着什么呢?

在 FB 有很多优秀人才,我有机会在一次小型分享会议上,从一位业界公认大佬口里听到了类似的语意,另外在一次和老板的一对一会议里也听到了与之完全贴合的三个词:strategy,execution,communication。

什么意思呢?我们程序员的绩效考核脱离不了做项目,而一个项目无非分为三个阶段:规划,执行,总结。

我可以说这世界上绝大部分程序员都把重点放在了 execution 上,内心深信不疑的是:只要我把代码写得足够好,老板就能注意到我,我的绩效和回报也是自然而然的事情。其中的一小部分人能意识到总结的重要性,会找机会和场合向外界宣告自己的成果,把 communication 做到位,毕竟中国的老话是酒香也怕巷子深,有成绩也还是要吆喝。这一小部分里的再极少数能把提前提出 strategy 做好。我的感觉是,程序员职场里,这三个步骤可以大致将职场搭成一个金字塔结构,execution 的在最下面,exection + communication 的在中间,strategy + communication (or + exection)则位于最上层。

在你将 execution 环节做到极致,取得一项意料之外的成果时,你能否厚着脸皮将的你成绩尽可能的找机会向外界广播?假设老板最近一直忙着开会,你是选择相信老板的观察力继续默默干活,还是找准时机切入大胆的告知你的成绩,或者在内部论坛上 post 给所有相关人知道。再进一步,在你灵感闪现的一刹那,深信某个产品功能或者方向极具潜力和价值,你是否有自信和能力说服团队将资源投入进来呢?即使在知道新方向有可能走入死胡同的前提下,是否有魄力让你的感觉成为团队的新方向,为团队制定 strategy。

当然并非说 execution 不重要,相反,我认为对于程序员来说,坚实的代码业务能力,是你获取 strategy 和 communication 资源的起码前提,学习提升技能应该是一种习惯,只是不能厚此薄彼,而忽视规划和总结的重要性。

我虽然已经出国一年有余,还是时不时能收到国内猎头的骚扰,岗位的层级和要求也越来越高,有不少机会确实很有诱惑力,最近我听到一个新要求或者新说法是:要对产品有 sense,我想这所谓的 sense 就是制定 strategy 的能力吧。

我觉得这条经验具备普适性,大小公司皆可运用,strategy 的能力一般是稀缺的,如果缺乏大方向感,至少可以把 communication 这部分做好,可惜的是,我见过的很多人一直深陷在重复 execution 的轮回里。

一群朋友出去吃饭,你是说随便的,还是提出具体餐馆名字的?如果餐馆味道好,一群人吃饱喝足之后,多半是会记住并感谢主动提出建议那位的。


Hosted by Coding Pages