热线电话:17505515111
您当前的位置:首页 > 职场资讯 > 职业指导

深圳招聘:只会写程式的工程师,离工作成功就是差一步?

来源:找人才 时间:2019-08-12 作者:找人才 浏览量:

我回到家乡教书,原本想把工程研发能力的重要性传达给学生,却发现在软件工程的领域的研发文化竟是意想不到的浅碟。

20160503154146_09863.jpg

这篇【会写程式还不够,硅谷杰出软件工程师都有的5种能力 】说得不错,值得想深耕软体技术领域、以技术立身的人一读。这也是我在硅谷工作时的切身经验,因此我一直希望训练学生这些高生产力的杰出软件工程师所具备的能力:

● 不害怕探索陌生程式语言
● 精通Debug
● 开发节省时间的工具
● 优化重复性工作的速度
● 发展系统性思考模式

我十一年前从硅谷回到家乡教书,原本想把这些工程研发能力的重要性传达给学生,却发现在软件工程的领域的研发文化竟是意想不到的浅碟。明明是国外重视的工程技术,国内却乏人问津。学界标榜要世界一流,只好抄捷径,从理论着手;业界要快速赚钱,没时间研发,要的是现成的解决方案,所以在软件界,产学的落差很大。

要知道,产学落差影响最大的是学生和工程师。讲难听点,教授可以一辈子在学术的象牙塔里优游自在,不用太在意学生的出路;老板和主管把握时机赚饱了钱,之后可以把产业当投资游戏来玩。但如果在学校没有受到足够的工程训练,成为工程师之后又没有机会做深入的研发案,可能一辈子只能「逐水草而居」,接些门槛不高的专案,难以成为杰出的软件工程师和系统架构师,结果就是一直为人代工、为人作嫁。

碍于视野,一般学生常常以为解决困难的理论问题、写出酷炫的应用才了不起,程式设计竞赛得奖的是神人,不大明白软件和系统工程的概念,不大知道高生产力的意义性。如果一直做为人代工、为人作嫁的工程师,或是成为主管、老板、理论型学者,是您想要过的日子,那么您大可不必继续看下去了。以下是我的个人经验谈,分别对应到以上的五项能力:

一、不害怕探索陌生程式语言
我很早就建立起程式设计能力,在高中时自己学了约十种程式语言,学到后来觉得学新的程式语言没什么了不起,只是很有趣、很简单、很有用。所以只要有空、有需要、有机会,就很自然地会学到新的语言。尤其在平行处理、分散式系统和异质计算一直有新的语言出现,需要有不害怕探索陌生程式语言的能力。

二、精通Debug
然而我必须说我从来就不是很擅长特定的程式语言,也不是很精通程式设计,我很少设计新的演算法,但我看很多人写的程式码,而且擅长Debug,这是设计师和工程师的重要差别之一。在解决平行处理和系统效能优化的工程问题时,会遇到很多一般程式所没有的Bug,而且很难抓,尤其是所谓的Performance Bug,更是需要伤脑筋,有时候还需要一些方法论和工具才行。

三、开发节省时间的工具
因为平行程式的Bug很难抓,複杂系统Performance不好分析,所以需要开发出能帮开发者节省时间的工具。我的博士论文里面叙述如何以工具搜集程式的静态与动态资讯,以工具进行分析和优化,甚至设计工具去将程式和系统建成模型(model)后做进一步的模拟。我在硅谷Sun公司做系统优化工作时,用了非常多的效能分析工具;现在带领学生开发从晶片设计到超级电脑的辅助工具,都觉得工具特别重要。

四、优化重复性工作的速度
除了工具之外,要进一步省下大部分时间(所以日子可以轻松点),必须观察或预判工作中大量重复的部分,设法将之优化。好比优化程式的效能。就是找到关键的迴圈,再以各种手段(编译器选项、改写程式码、平行化、GPU、硬体加速器等等)去加速它。同样的想法也可应用在工作和生活上,要重复同一工作很多次,可不可以写一个小程式(Script)去自动化工作的执行和结果的分析?如果每天重复做某些事,能否换个方式让这些工作变得有效率?

五、发展系统性思考模式
即便是简单的系统,也有「牵一发动全身」的问题。很多时候,做了一件所谓优化的工作,未必会得到好处,搞不好先看到坏处。复杂的系统就像人体和社会,出了问题要吃药、要修法,但药不能乱吃,法不能乱修,需要有「系统性思考模式」: 了解每个变因可能造成的正面和负面的结果,乃至于变因之间、变因与系统之间的交互影响。对复杂系统来说,做这件事的难度很高,所以我才会一直想研究方法论和发展工具,来提高生产力。

容我再补充第六点:
六、化繁为简、有条不紊与人沟通
很多工程师很难与人沟通,有些满嘴都是一般人或老板听不懂的术语,有些则是会做不会讲。各位到硅谷看,大部分的高级工程师都能言善道,能够把艰涩难懂的技术,依据对方的程度,用对方能听懂的语言表达。如果不能表达清楚的话,再怎么厉害,作为工程师的成就也有限。

拥有高度生产力的工程师,是国家真正的技术力和国际的竞争力,这是瑞士、荷兰、以色列、芬兰这些国家走的路线,而不是靠低工资和加班工作。我发现过去的薄利多销的路线已经不单只是衍生出业界现在必须面对的问题,经济压力和普遍过劳的现象也造成不少社会文化的问题,影响健康、降低生活品质、让文化层次停滞不前。

在我个人能力范围所能做的,是设法提高我学生的工程素养,有机会就协助某些有志提升技术能力的业界人士。但大家可能要先有个认识,这些能力往往都不是一般人到研究所和业界学个一年两年能够出师的。以我个人的驽钝之才,到了国外念博班和工作时有缘遇到艰难的工程问题,才得以略窥门径,然而要如何才学到这些技能呢?

我没有简单的答案,这也不是容易的事,我之前谈过多次。我只是相信,以目前的环境来说,这是一条值得鼓励尝试的路,如果在学校和业界有机会面对艰难、前瞻的工程问题,才有机会练到功夫。网上很多明师,不一定要拜师才能学艺。

反过来说,如果只在乎速成,在学校不愿挑战艰难的工程问题,到了业界又没有机会遇到前瞻的工程问题,我想就很难发展上述的能力,这也是当前业界非常缺乏系统架构师、软体架构师的原因。

但这些原因都不是真正足以阻挡一个能欣赏工程技艺的、愿意认真学东西的人,有机会花几年时间深入做系统研究,自然会学到上述能力。如果具备上述能力,还需要担心工作的问题吗?如果业界有很多高生产力的人才,还需要这么担心竞争力的问题吗?深圳招聘网整理编辑。

分享到:
微信公众号
手机浏览

Copyright C 2018All Rights Reserved 版权所有 找人才 皖ICP备17020030号-2

地址:合肥市瑶海区胜利路66号 EMAIL:1187047@qq.com

用微信扫一扫