Dian团队的软件之殇

谈到任何一件事情最忌讳的就是上纲上线、自以为是,所以我要避免犯这种错误。不过谈到Dian团队的软件人才储备,我觉得自己应该提出一点自己的担忧,为今后团队持续发展多留下一点自己的看法。

无论是从前还是现在,Dian团队都很重视寻找软件方面的人才,特别是我作为招新组负责人以来,更是对此非常重视。我们常说,硬件方面的人才培养周期很长,但是软件人才何尝不是呢。不管大家怎么看待软件的“低起点、低投入”的特性,也不管大家怎么评论软件开发更新换代的速度,真正厉害的软件人才还是不多,甚至于显得有些匮乏。

试问,软件人才究竟门槛在何处?我个人觉得在于“编程思想”。这是一种很“玄乎”的东西,不容易被初学者和妄自尊大者理解,于是形成了一个令人难以捉摸的门槛。很难说这个门槛有多高,恐怕需要看看编程所使用的工具和语言,如果使用一种很容易使用的程序语言进行开发,或许由于其自身框架的完好,程序员的负担很少,不用怎么思考就可以达到很好的效果;如果不幸遇到一种很高深的程序语言,同时也没有太多现有框架或接口,那么程序员将会十分辛苦,同时也需要拥有更多更好的编程思想,不过这种情况相对较少。由于软件发展速度迅猛,方便易用的软件框架层出不穷,因此,“软件门槛低”的说法就渐渐流传开,成为大家都知道的秘密。

相比软件,硬件开发往往缺乏很好的见解易用的应用框架,这使得门槛自然而然的提高,于是学习硬件的人似乎地位很高,感觉总比软件要“尊贵”一些,也好像自己所学的知识更加保值一些。没错,Data Sheet的确比软件的各种教材更加深奥,硬件的更新换代也比软件慢许多,还有就是硬件总那么实在,那些拿在手里的东西比摸不着的软件有分量多了。可是,Dian团队中绝大多数硬件开发者忘记了一个重要的东西,那就是编程思想。
有谁的电路是完全自己设计出来的呢?在芯片普及的年代,大家更多处于嵌入式软件开发这个层次,对于其中的原理知之甚少。电路参考开发板,程序参考各种入门书籍,之后,功能就可以随心所欲的实现了——我这样简单的描述当然有些不切实际,其中难度还是很大的,但Dian团队中不少嵌入式软件的开发者也只是处于这个层次。说白了,这些嵌入式软件开发者与我这样的PC软件开发者一样,都是做软件的,不同的只是他们用硬件的护甲遮住了缺少“编程思想”带来的空洞。

我见过“不会写C程序”的嵌入式开发者,其实他非常明白C语言怎么回事,在芯片上用的也都是C语言,但他就是不懂得怎么在PC上用C语言设计和实现一个简单的算法——他甚至对函数调用的概念都有些模糊了。我觉得这真是十分可怜!我也见过对嵌入式软件没有感觉的同学被安排去写上位机(PC)接口软件,组长大概觉得PC软件更加简单,也许组长也并不在意PC软件的开发质量——我们是做硬件的。这真的非常令人惋惜。

Dian团队立志于培养与社会无缝接轨的精英人才,我们的目标当然不仅仅是培养一个只懂皮毛的门外汉,而是真正触及开发真谛的“牛人”,所以软件编程思想的缺失已经不能够回避。不光是PC软件,嵌入式软件编程也要产生思想,这绝对不是言过其实。随着嵌入式芯片价格不断降低、性能不断增强,未来的嵌入式开发或许会更多的在嵌入式操作系统上开发,届时,嵌入式的门槛也将不断降低,新型的应用框架(例如Java和.Net在嵌入式上的广泛应用)将会让嵌入式开发与PC开发逐渐融合,老的开发者将面临从PC领域转轨而来的新的挑战者的强力竞争,能否幸存恐怕就在于“编程思想”了。就算是嵌入式开发能够保住自己的低端芯片开发领域,那么对于开发者自己能否从一个简单的实现者转变为一个应用级开发的高层人才,“编程思想”这个核心内容也不可忽视。

Dian团队的软件之殇就在于身为软件开发却没有注意培养灵魂,从而限制了自身发展,要想打破这样的症结方法肯定不唯一,我这里有一个建议:希望Dian团队的嵌入式软件开发程序员们多看看计算机上讲编程思想的好书,甚至于包括《设计模式》、“重构”、SOA、AOP等等高层软件应用的编程思想,都应该在有余力的时候涉猎一番,开拓眼界会大大有利于自己思考。

相关阅读

有话想说?请留下评论吧~~如果喜欢我的blog,欢迎订阅~~

评论

还没有任何评论。

留下评论

(必需)

(必需)