谈谈什么才能称得上是软件高手

徐晶 2004-7-21

----
网上经常看到关于什么是软件高手的讨论可谓多如牛毛,持各种意见的都有,争得不亦乐乎。有的说会用VC++就是高手,有的说熟悉Win32或者Linux就是高手。更有人认为熟悉汇编甚至CPU运行就是高手(再继续下去可能就会有人说懂得数字电路就是软件高手了......)。
----这方面看得多了,不免想写写东西,发表一下自己的一点看法。
----首先软件设计是一个非常大的课题,涵盖面特别广。 从最底层的硬件编程到最最上层的应用领域(如ERP),每一个方面都属于编程设计的方面。 范围大就必然有分层的概念。每一层都有其应该考虑的重点问题,你不用去考虑本层以下以及本层以上的东西,否则从CPU的运行原理去考虑来如何构建象ERP这样的系统的话简直就是天方夜谭。 为了能对高手有个细分,都与每一层都应该定义一个高手的概念,没有标准便没法考核,考核的标准当然是每一层的核心要求。设计汇编级代码的人如果非常精通大型ERP软件的设计他也不能成为高手,应为ERP是否精通与他的编程没有丝毫的关系。相反一个设计ERP的人,他是否精通汇编语言和他的编程也没有丝毫关系。
----从最底层到最高层是一个逐步摆脱具体的运行环境以及硬件概念的过程,他的设计重点也就由此发生了变化。最底层与硬件息息相关,你只要非常熟悉硬件的运行原理就可以不费力的做出好的东西来, 相对来说其算法的复杂度要比高层软件来的简单。 到了最高层便完全不用考虑具体的硬件环境了,那时候唯一要考虑的就是具体的应用逻辑了。
不妨先分为3层来讨论吧,当然这其中还是可以细分的。

  1. 硬件层,开发与硬件相关的程序
  2. 软硬件结合层,你既需要考虑到相关的硬件接口使用,还要实现用户逻辑。
  3. 应用层,你已经完全脱离了硬件的束缚,只要考虑你的应用就行了。

----首先我们来看看第一层吧,也就是硬件相关层。因为要和具体的硬件打交道,开发只是对硬件逻辑的一种表述而已。打个比方就是让你用一种语言把一个逻辑给描述出来,其核心当然是逻辑本身,如果对逻辑非常清楚,只要说话没有问题,基本上就可以表达清楚(当然就有良好的表达能力可能会表达得很好,但是论其重点却是逻辑本身)。从事这方面的开发的人一定要把硬件的工作原理弄清楚,如果其中每一个工作细节都能理解的非常透彻的话,相信这方面的开发可以称的上是专家了。属于这方面的开发有:单片机,PLC等等的开发。
----第二层:软硬件结合层。虽然也牵涉到硬件,但是你不需要对硬件工作原理特别熟悉。只要知道如何来使用硬件提供的编程接口就可以了。其次还需要知道用户程序如何编写,就是普通的应用程序,如果需要和数据库或者网络等的编程还需要知道相关的知识。这方面的开发人员可谓是复合人才。
----到了第三层,由于不需要考虑具体的硬件了,这是设计能力被提高到了一定的地位。你需要具备这样的能力,一个具备上百万行源代码的大型软件有你该如何来设计。一个对数据安全性要求极高的分布式系统怎样才能保证其数据的安全性等等。如果让你设计某一个行业的软件你对这个行业却不熟悉你怎么办。
----每一层的入门难度不一样,越偏向底层越不容易入门。因为思维越要偏向具体的硬件,且都是看不见摸不着的。越到高层便越偏向于使用平常的逻辑来思考问题,故容易理解。但入门难度不能代表达成为高手程度的难度。第一层要对摸不着看不见的东西有个透彻的了解,这方面的人我很少见到。第二层很繁,一般既得懂点硬件又要熟悉诸如VC++这样的开发软件,也的确很少都很熟悉,至少我看到的没有,倒是有一个软件硬件接口做得很棒,软件几乎每天都能够看到错误!到了第三层那你就得更有耐性了,什么项目管理啦,各行业的业务啦,软件设计啦,数据库设计,还有几乎各种算法你都得精通。涵盖面之广可见一斑了。
----网上常常看到有些人以开发工具作为评判的依据,限于篇幅我在这里只总结一下中心思想:使用VB的就是低手,使用C的就是高手。试问:你看过上千万RMB的用VB开发的大型ERP软件吗?有几个会VC的人有这么强的设计能力?别看现在每家软件公司都说在做ERP,真正能做的又有几个?得有这方面设计能力的人才才可以,其他的都好办。大浪淘沙,相信若干年后就没多少软件公司整天把ERP挂在嘴边了。
----具体到每个开发人员,只要做好本层的工作就可以了。当然作为学习可以,反映到你的软件中就会出问题。举个例子,好多软件都喜欢和操作系统紧密结合,认为这样才能够水平。一方面想问的是有没有这个需要,另一方面是能否结合的好?从软件结构来说,操作系统是一个层次,软件是建立在这个层次之上的,你只要好好的使用操作系统提供的接口就行了,除非是万不得已,比如想直接控制硬件。多数的软件是出于性能的考虑,有些从逻辑上看上去倒是"合理",比如某个代码快了5,6倍,尽管如此有些确是多余的,比如乘以8这个乘法运算,用左移3位的运算要比直接乘快很多倍,这种运算在现在P4的CPU上即使快上1000倍也无丝毫意义,快上1个微妙你能感觉到吗?只能说是给自己找麻烦。和操作系统结合得很完美是不太可能,Windows源代码没有公开,你能对底层很了解吗?不可能的。只能说原理理解的比较好而以。即使公开的话几百万行源代码你一个人能理解的透彻吗?要知道,设计操作系统的可都是程序界的顶级牛牛。有太多太多的细节都不清楚。有很多这样的软件就是这样,一装系统准会出现稀奇古怪的问题。其实都是因为去追求那些可有可无的效率,比如快个1,2微妙!
----还有人认为从CPU开始到高层应用每一个环节都熟悉才能成为高手。那我可以武断地说,世界上至此已不再有高手。去书店看看书就知道了,一个人能看多少,能理解多少,软件的涵盖又是何等的大。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值