有个童鞋在一家创业公司工作,近期遇到了些 疑问:“如何才算是高级前端开发工程师,以及在创业公司比较繁忙的情况下,如何更好的成长?”,对此他自己做了总结,以下几类事情占据了他主要的时间:

  1. 公司最近为了融资需要快速更迭产品,所以需要大家在短时间内上线产品
  2. 工作不到一年,写代码熟练度还不够,所以开发速度不够快
  3. 为了产品更快上线,需要改同事写的 bug

“所以导致工作以来属于自己的个人学习时间变少”,他说。

image

我想,很多职业新人都会遇到类似的问题,针对上面三个问题,我们来一一分析下,找到更加深层的问题:

  1. 公司发展阶段,产品周期较短,需求不断
  2. 自己技能不足,难以满足公司短平快的开发要求
  3. 迭代的过程中,还需要维护历史遗留问题

上面几点,是对他的问题做了归纳,但是大家应该看得出来,还不够凝练,没有找到核心问题,我们继续分析下:

  • 1 和 3 属于同类问题,公司在追求市场份额过程中,在各个方向发力,产品分支比较多,很多可能还是实验性的产品,在没有拿到结果之前,需要技术持续投入;
  • 第 2 点属于个人问题,这个问题与上面的公司问题形成恶性循环,个人能力不够、业务繁忙导致时间不够,时间不够导致业务问题和技术债堆积,业务问题和技术债堆积导致时间更加不够,然后就递归恶化下去了。

通过上面的分析,我们抽象出了两个因素,一个是个人因素,一个是公司因素,两个因素的连接点是时间不够用,如何解?

① 如果你解决问题的速度跟不上问题出现的速度,那么堆积的问题就会越来越多,对应的策略是:

  • 提升自己解决问题的速度(个人因素问题),也就是不断补充知识量和提升编程能力,适当提升架构水平;
  • 抑制问题产生的速度(公司因素问题)就比较困难了,你可以系统地学习下项目管理的知识;另外,与需求方搞好个人关系也会有一定的帮助 ;)

② 时间是不变的,但是单位时间内工作的价值是可以延长的,朴素点说,你应该让这个月写的代码在未来一个月甚至半年中都能产生价值,对应的策略是:

  • 有意识地提升自己的抽象能力,挖掘可复用的内容;在工作过程中,不断沉淀可复用的脚本、组件、模块等;
  • 将自己能力的提升计划,适当强插到公司因素问题的解决过程中,比如你想了解某个框架的使用,做项目的时候就用这个框架好了,不要因为你不懂这个框架而担心项目做不完,毕竟成长本身就是需要付出点时间成本的。

当你把这两块做好了以后,当你能够驾驭当前的工作之时,你就是高级工程师了。