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

原创 2004年08月16日 08:56:00
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开始到高层应用每一个环节都熟悉才能成为高手。那我可以武断地说,世界上至此已不再有高手。去书店看看书就知道了,一个人能看多少,能理解多少,软件的涵盖又是何等的大。

《软件开发者路线图:从学徒到高手》【PDF】下载

《软件开发者路线图:从学徒到高手》【PDF】下载链接: https://u253469.ctfile.com/fs/253469-231196346             图书简介     作为...
  • zhiyong499
  • zhiyong499
  • 2017年12月13日 18:31
  • 27

解析盗号高手是怎么盗QQ密码的

互联网发展到今天,在中国应该算是非常普及了,随着智能手机的推出和普及,人们逐渐从PC端转向了移动互联网时代,同时随着各方面的对网络安全意识的普及,一般的骗术可能能被大众识破,但今天我要说的这种骗术虽然...
  • qq84426996qqq
  • qq84426996qqq
  • 2017年12月14日 15:39
  • 363

如何成为程序员高手(转)

怎样做才能成为程序员高手 关于程序员励志方面的文章,我们曾介绍过不少,在这,给大家推荐两篇,《程序员深思 八种级别八种人生》和《一定要理解程序员  程序员的坏习惯》,供参考。 估计很...
  • yangzhao0001
  • yangzhao0001
  • 2015年09月23日 13:43
  • 800

写给那些想成为Linux高手的人

声明:支持原创,本文章转自“小卒过河” 前言 首先,我想引用一下别人说过的一句话:除非在过去的十年你一直生活在山洞里,否则你一定听说过linux。 是的,现在听说过linux, 会一点linux基...
  • u012849371
  • u012849371
  • 2016年05月06日 20:57
  • 1812

教你怎样成为C++高手

1.把C++当成一门新的语言学习(和C没啥关系!真的。); 2.看《Thinking In C++》,不要看《C++变成死相》(C++编程思想,翻译的非常差); 3.看《The C++ Program...
  • hellokandy
  • hellokandy
  • 2016年10月24日 11:07
  • 488

如何成为一个程序员高手

程序员学习编程需要攻克的8个障碍 2015-06-17    分类:程序员人生、首页精华7人评论 分享到:更多8 本文由码农网 – 王国峰原创翻译,转载请看清文末的转载要求,欢迎...
  • boshuzhang
  • boshuzhang
  • 2016年04月01日 15:45
  • 1185

成为java高手的八大条件

成为java高手的八大条件
  • javaniuniu
  • javaniuniu
  • 2016年07月16日 13:56
  • 1070

成为高手的必经之路——学会调试代码(菜鸟必读)

任何一个编程者都少不了要去调试代码,不管你是高手还是菜鸟,调试程序都是一项必不可少的工作。一般来说调试程序是在编写代码之后或测试期修改Bug 时进行的,往往在调试代码期间更加能够体现出编程者的水平高低...
  • yhzhang1016
  • yhzhang1016
  • 2014年01月15日 11:10
  • 817

谈谈自己对做软件开发这一行业的想法

快进入社会了,作为一名将来将长期从事于软件开发行业的iOS工程师(暂且这样说,现在依然还处于学习阶段),也深刻了解到,若想将来在这一行业发展的更好,那么从一开始就得养成良好的编程习惯及思想。当然也翻看...
  • qq_17800221
  • qq_17800221
  • 2016年01月11日 21:56
  • 861

编程高手无捷径

想成为编程高手,想必是每个程序员的愿望。当你发现某个角落冒出个大牛时,除了深深的膜拜,只好自叹不如啊。话说1个优秀程序员能顶10个普通程序员,这让你更想成为人人敬仰的高手了。编程高手犹如武林高手一般,...
  • booirror
  • booirror
  • 2013年12月01日 13:37
  • 5458
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:谈谈什么才能称得上是软件高手
举报原因:
原因补充:

(最多只允许输入30个字)