- 作者:zhaozj
- 发表时间:2020-12-23 10:37
- 来源:未知
徐晶 2004-7-21 ----网上经常看到关于什么是软件高手的讨论可谓多如牛毛,持各种意见的都有,争得不亦乐乎。有的说会用VC++就是高手,有的说熟悉Win32或者Linux就是高手。更有人认为熟悉汇编甚至CPU运行就是高手(再继续下去可能就会有人说懂得数字电路就是软件高手了......)。 ----这方面看得多了,不免想写写东西,发表一下自己的一点看法。 ----首先软件设计是一个非常大的课题,涵盖面特别广。 从最底层的硬件编程到最最上层的应用领域(如ERP),每一个方面都属于编程设计的方面。 范围大就必然有分层的概念。每一层都有其应该考虑的重点问题,你不用去考虑本层以下以及本层以上的东西,否则从CPU的运行原理去考虑来如何构建象ERP这样的系统的话简直就是天方夜谭。 为了能对高手有个细分,都与每一层都应该定义一个高手的概念,没有标准便没法考核,考核的标准当然是每一层的核心要求。设计汇编级代码的人如果非常精通大型ERP软件的设计他也不能成为高手,应为ERP是否精通与他的编程没有丝毫的关系。相反一个设计ERP的人,他是否精通汇编语言和他的编程也没有丝毫关系。 ----从最底层到最高层是一个逐步摆脱具体的运行环境以及硬件概念的过程,他的设计重点也就由此发生了变化。最底层与硬件息息相关,你只要非常熟悉硬件的运行原理就可以不费力的做出好的东西来, 相对来说其算法的复杂度要比高层软件来的简单。 到了最高层便完全不用考虑具体的硬件环境了,那时候唯一要考虑的就是具体的应用逻辑了。 不妨先分为3层来讨论吧,当然这其中还是可以细分的。
硬件层,开发与硬件相关的程序 软硬件结合层,你既需要考虑到相关的硬件接口使用,还要实现用户逻辑。 应用层,你已经完全脱离了硬件的束缚,只要考虑你的应用就行了。----首先我们来看看第一层吧,也就是硬件相关层。因为要和具体的硬件打交道,开发只是对硬件逻辑的一种表述而已。打个比方就是让你用一种语言把一个逻辑给描述出来,其核心当然是逻辑本身,如果对逻辑非常清楚,只要说话没有问题,基本上就可以表达清楚(当然就有良好的表达能力可能会表达得很好,但是论其重点却是逻辑本身)。从事这方面的开发的人一定要把硬件的工作原理弄清楚,如果其中每一个工作细节都能理解的非常透彻的话,相信这方面的开发可以称的上是专家了。属于这方面的开发有:单片机,PLC等等的开发。