有人认为技术能力和工程能力是不同的。
我认为这完全是一种误解。
因为在没有清晰的定义什么是技术能力,什么是工程能力的时候,讨论这个问题是没有意义的。
类似的情况,也出现在码农,程序员,软件工程师的区别这个问题上。
请问,你能回答出来,码农,程序员和软件工程师有什么区别吗?
你可以举手,向我表示一下。
没有人举手?
看看,这就体现了问题的严重性。
回到技术和工程的能力区别上。
如果我们把技术定义为一个工具的话,工程能力就是组合大量工具,来提供价值的能力。
核心在这个组合上。
这个在航天工程里,体现地比较明显。
比如造火箭,需要有不同的零件,然后将他们组合起来。
出现问题了,你知道怎么去找哪里出了问题。
以前某国航天器上天后开花(爆炸),就是因为一个胶圈在低温下的弹性不够。
但是你知道一个航天器,比如神舟系列的,会有多少个螺丝吗?
怎么把这些螺丝钉都放在合适的位置?
所以这里面需要的能力,就是工程能力。
再比如土木工程,要盖大楼,一样要解决这个组合的问题。
混多少水泥,用多少钢筋,也是类似的工程问题。
一个公司要做大,必须有足够的工程能力。工程能力不够是做不大的。
比如海底捞的火锅食材配送系统,乍看无关。
实际则不然,如果跟不上的话,就没有现在大家知道的海底捞了。
再比如大家常听到的这些科技公司。
如果没有好的部署,发布和流水线的架设能力,就没有人人能用的微信。
所以反过来说,小公司的技术人员,最缺乏的其实是这种工程能力。
有没有办法不进入大公司,就学习工程能力呢?
有人认为一种比较好的方法是使用测试驱动的开发(Test-Driven Development)。
有人甚至认为测试驱动的开发是类似太极拳一样的东西。
我在学校的时候,学习过太极拳,我觉得两者的精髓是不一样的。
我认为拼乐高积木要更有效一些。
只不过你要自己画图纸,不是直接买个现成的乐高积木。
你也可以去宜家买家具,然后看看那个设计图。
想想,你能不能用更加简单的方法,把它们拼接在一起。
这种设计图纸的工作,在技术公司里会被称为架构师。
如果在建筑行业里,就是建筑师。
不光是建筑师,这个工作也和绘制地图的人干的活类似。
好的架构师,要能让所有人都明白,美国的西海岸和中国的东海,中间隔了一个太平洋。
不能一个人说,中间隔的是大西洋。
另一个人说,是美国的东海岸,而不是西海岸。
这都是不行的。
工程人员的另外一个特点是稳定性,科技公司里,长期稳定的日均输出200行代码,可以是一个很好的判断标准。
还有出现问题了,及时报告,也是有工程能力的表现。
因为这样做,可以降低系统整体的风险。
不能说,我这个螺丝装不上去,反正就是一个螺丝而已。
有这种想法的话,那不太适合搞工程。
领取专属 10元无门槛券
私享最新 技术干货