中国IT动力,最新最全的IT技术教程
最新100篇 | 推荐100篇 | 专题100篇 | 排行榜 | 搜索 | 在线API文档
首 页 | 程序开发 | 操作系统 | 软件应用 | 图形图象 | 网络应用 | 精文荟萃 | 教育认证 | 硬件维护 | 未整理篇 | 站长教程
ASP JS PHP工程 ASP.NET 网站建设 UML J2EESUN .NET VC VB VFP 网络维护 数据库 DB2 SQL2000 Oracle Mysql
服务器 Win2000 Office C DreamWeaver FireWorks Flash PhotoShop 上网宝典 CorelDraw 协议大全 网络安全 微软认证
硬件维护  CPU  主板  硬盘  内存  显卡  显示器  键盘鼠标  声卡音箱  打印机  机箱电源  BIOS  网卡  C#  Java  Delphi  vs.net2005
  当前位置:> 程序开发 > 软件工程 > 综合文章
一篇很好的文章,推荐给大家。
作者:未知 时间:2005-09-13 19:43 出处:ChinaUnix.net 责编:chinaitpower
              摘要:一篇很好的文章,推荐给大家。

一篇好文章!搞编程的有必要一读!!! 
  今天在网上发现了这么一篇好文章,感觉有必要和大家一起来学习!!
小弟不敢独享,所以就捧出来了,有志从事编程者不妨看一看!!


我认为有些人的观点错了。错得一塌糊涂。
对于这个问题,我的基本观点是:任何实践都是理论的载体或表现形式。而理论也是由实践上升而来的。两者是辨证的。今天,我们只关注它的前一部分:任何实践都是理论的载体和表现形式。
我不是想故弄玄虚,但真理的外表看上去往往就是这么奇形怪状、难以理解。让我来给你解释一下吧。
比如:战争是军事理论的实践,也是它的表现形式。战争的胜负取决于指挥者军事理论的掌握程度(别给我举赵括这类“纸上谈兵”的反例,他们根本算不上掌握了军事理论,充其量只算是“背”下了军事理论。“掌握”和“倒背如流”这是两个概念。)

1、VC、VB、Delphi …… ,你该学哪个?
具体到编程而言,我要告诉你:任何一种计算机语言,都是计算机科学理论的载体或表现形式。C++很神吗?Java很酷吗?它们差距很远吗?是的。但从理论的层面上讲,它们没有区别,都是“面向对象”理论的一个具体形式而已。
现在的程序员们被发行编译软件(通常我们将其称为“系统软件”)的商家不断推出的产品搞得眼花缭乱,头痛欲裂。不断地跟在新语言后面跑,这条路还没跑到头,那边的“新路”又鸣锣开张了,于是再跟着跑……渐渐地有些人开始感叹:学海无涯、学无止境,或什么“程序员是青春饭,过了三十别想干”……
在此我不得不叹息:中国的教育真是一种“形而上学”的教育。早在高中时代我们就学过“辨证唯物主义”的基本理论:做事情要抓主要矛盾。这一条恐怕谁都知道,却鲜见谁能在实践中把这一理论运用得“炉火纯青”的。把这一理论运用到编程上来讲就是:
理论是主要矛盾,语言是次要矛盾,学会了理论,再具体到学一种语言时,你只不过是在进行某种消遣而已。
现在学VC的普遍看不起学VB的或学Delphi的。但如果一个用Delphi的人,在需要写web程序时,用TCP/IP做了一个构架,嵌入到应用程序中;而另一个用VC的人却只会把一个又一个的组件拖来拉去的做些个“例子程序”的翻版。你说他们两个谁历害?Delphi和VC谁历害?
真应了这样一段话,问:纽约好还是上海好?答:有钱哪儿都好,没钱哪儿都不好。上海的富人并不比纽约的富人少多少的优越感,而纽约的乞丐也不比上海的乞丐多多少幸福感。
现在你还会说学VC的人就一定比学Delphi的人水平高、“钱景”好吗?

2、“浅薄”绝不该是中国程序员的性格特征!!!
想问一句:中国程序员这么多,你们真地把基础理论学好了吗?别用你现有的编程经历告诉我:编程不需要数学,不需要数据结构,不需要编译原理…… ……说话得负责任,您知道吗?我之所以发表这篇文章,就是因为再也看不下去这种在中国编程界漫延的歪理邪说了!邪教害死的是人的个体,你们害死的是中国软件业的未来!如果再让这种理论继续毒害编程新手的思想,中国将在计算机领域失去民族的尊严!!!
请问,操作系统、编译软件、数据库系统…… 这些被称为“系统软件”的东东,中国有几样拿得出手的产品?也许是我孤陋寡闻,据我所知:我们国家一件像样的也没有。
不错,我们是有一些网站的股票在西方上市了,我们是有一些人被国外公司请去做高级职员了,我们也有一些人把西方的官方网站给黑了……但是,我们用的编译工具是谁的产品?我们微机里装得是谁做出的操作系统?我们的程序跑在谁的芯片上?
爱之深,恨之切。我爱的是中国,但我痛恨不是中国,而是在中国编程界普遍流行的“浅薄”和“自以为是”,这是我们民族软件业的一颗毒瘤!
是的,现在编程方面快速入门的书满天飞,让程序员的门槛越来越低。我这个外行就得益于这个“低门槛”,跑了进来。但进来后,我们就不能再这样浅薄下去了——我的兄弟们!
用他国提供的工具做几个网站,写几个应用程序,弄出几个病毒…… 是振兴不了民族软件业的。顺便说一句:我尊敬求伯君,但我不认为金山公司和其系列产品配得上被称为“民族软件业”的大旗,相对这个称号,它差得太远了。
…… ……
写flash软件的人会认为用flash做动画的人比他历害吗?Adobe公司真的认为考取Adobe证书的人是“人才”吗?MSCE、MSCD…… 通过这类考试得到微软徽章的人,在微软眼里是“人才”还是“义务推销员”?持这类证书以及其他一些大软件公司认证的人,你们还在以为自己是“中国软件业的精英”而感叹“怀才不遇”、工资太少吗?
醒醒吧,朋友。别再用编程不需要理论的话来自欺欺人了,别再用自己的浅薄来教导别人像自己一样浅薄了。我想问问那些称数学、数据结构等基础课程对编程没用的人:
请你们搞清一个概念:是这些理论“没用”,还是你们“没用到”;是你们“没用到”,还是你们的水平根本“用不到”;是你们“不需要用”,还是你们根本“不会用”?
举个例子,操作系统中的工作调度,若工作优先权相同,用什么方法进行调度?当然是“先到先做”——这就是数据结构中“队列”的应用。你们说“用不到”,只怕是因为到目前为止还没机会接触这类“高端编程”的挑战吧?这样的话,那就算了,挣你的钱去,但别再来这里误人子弟,吹嘘什么优秀的程序员不需要理论。
是谁说系统软件发展的黄金时代已经过去了?Linux不就是在MS操作系统雄霸多年的情况下一举成名的吗?中国难道就找不到这样一个机会? 不,如果我们的程序员克服了现在的浮燥与急功近利,我们一样可以在“系统软件”这一软件业的“高端”树立自己的品牌!所以请看下面——

3、年轻人应该有宏伟的志向。
用别人的产品做自己的东西,你永远只是个“高级客户”,成不了真正的开发者。不管你用他国的系统软件开发出多少好的产品,挣了多少钱,只要人家一升级、或一推出新产品,你口袋里的银子连同最后一条小裤叉也会被剥夺得一干二净。你,只不过是一个高级打工仔。
我希望打算进入编程界的朋友们,特别是现在还很年轻的朋友,能有一个比较高的志向。更希望已经进到这行的朋友们能有以“振兴民族软件业”为己任,力争成为中国软件业的“旗手”。
我不赞同方东兴把微软骂得一无是处。更不赞同年轻人学他那样,一赌气而拒绝用微软的产品,拒绝Windows、拒绝VC 、拒绝IE …… 
我认为方东兴只是个狭隘的民族主义者。他看到了中国软件业民族的一面,却不愿承认我们落后的一面。毫无根据的“自尊”等于自取灭亡。清朝末年,我们的科技并不落后于西方多少,但我们过分“自尊”的“大国思想”却使我们失去了向其他国家学习的机会。当我们嘲笑西方人的蓝眼睛、大鼻子的时候,他们的坚船利炮,却把我们“央央大国”的皇帝、太后打得满世界逃难。慈禧太后被打得满地找牙的时候,不得不说出“量中华之物力,博与国之欢欣”的龌龊话,此时,她“大国皇太后”的自尊何在呢?前面自尊过了头,事后必遭报应。这报应一持续,就是几百年,直到现在。难道我们还要继续闭门造车,再走老路吗?
我们现在承认微软比我们强,向微软学习,并不等于我们永远要跟在他后面跑!在我们低下头的时候,我们就应该想到,何时能再抬起这颗高贵的头颅!!!而且是“一定”!!!!!自尊不是错,错是错在“太盲目”——妄自尊大,你就要和慈禧一样被打得满地找牙。做为一个大国,一个明智的民族,我们不能讳疾忌医。
年轻人,志当存高远。相信我,当你以民族振兴为己任的时候,封王称帝、富贵荣华,都只不过是千秋伟业的一个副产品。在这个尊重知识、崇尚科学的年代,志向高远的人,永远不必担心自己的“钱途”。
不必讳言,我承认我当初进入编程领域不完全出于兴趣,也有“钱途”方面的考虑。但就好像当年参加八路的战士当中,有些只是报着能吃上军粮或打鬼子报家仇的思想入伍的,但后来却学习了马列,提高了觉悟,转为以兴国救民为目标一样,当我一步步深入到这行以后,当我决定考研并慢慢提高了认识以后,我的目的变了。我觉得应该有个更高的人生目标,更高志向和追求来支持我的行动。这个目标就是:为民族软件业尽一把自己的力。
真心希望你与我同行。

4、几点建议:
建议大家耐下心来先学好理论,然后再选择具体的工具或语言。不过,在所有这一切开始以前,先打好C语言和汇编基础。
能不能得道,就看你在见到别人做出一些花里胡哨的东西时,是不是能坚定信心、耐住寂寞、抵御诱惑了。
一个和我一起学习C语言的人,学完就直接开始玩VC,而我则潜下心来学了些C++和理论方面的东西。早早地,他就能仿照书上用VC做些界面似的东西在我面前炫耀,可后来,当我基础理论的学习告一段落,做个图书管理程序卖了800大洋时,他还只是停留在做“例子程序”的水平上。现在我们谈论起编程,深度早已不可同日而语了。他起跑领先,却落在了后面。
我不敢自以为是,只是想用这个亲身经历告诉大家:学编程,决不可心浮气燥。
5、结束语
我的话触到许多人的痛处,而且由于写时心中气愤难平,有些出言不逊,可能要遭人骂了。不过,既然写了,就不怕骂。因为:以上所言全是忠告,识不识货,就看您的眼光了。
__________________
认准目标,努力去做,不要埋怨外界条件
,坚持下去,成功必定属于自给!!

 iddv 回复于:2003-05-08 22:16:16
没有什么用处
个人认为,只要把要做的事做好就行了
分什么高下?
写界面难道就很次吗?好的界面也不容易(客户经常很不满意)
操作系统和底层好像很酷,不是所有人都要学
算法和数据结构也是一样
好好看看手里的东西,深入下去会有很多发现
人是分类的,不是所有人都该一样

 一无所有 回复于:2003-05-09 08:25:17
确实有意思!

 无双 回复于:2003-05-09 08:34:08
确实学习的话是要深入的学
如C++,不能说只学习了语法就完成
最重要的不是它的语法
学会了语法只能说明你学会了用这个语言
但是OO方法,就是怎样设计一个程序,你没有学会的话
那么只能做为一个填空的程序员
而不可能自己设计一个比较大的程序

如果什么都学一点
那么很难成为一个好的程序员的

 一无所有 回复于:2003-05-09 08:40:55
当初清华的教授有疑惑现在不过是重新提出来了,
  清华是应该培养底蕴深厚的人才,还是培养技术蓝领?
 我想,来这里的朋友,做这行都不是一天两天了,
  对这个问题应该有自己的想法。

 torrent 回复于:2003-05-09 09:01:23
我不赞成楼上说的“学会了语法只能说明你学会了用这个语言”;就像学会了英语的语法就学会了用英语???

 torrent 回复于:2003-05-09 09:06:37
其实我们不要对中国还没有自己的系统软件等等耿耿于怀,就像中国的家电、汽车、飞机不都是经历了用别人的再到学会别人的,最后赶上别人的吗?还是先用好别人的吧!!!难道有谁敢说某某语言他已经非常精通了不需要再学了吗?

 hejk976 回复于:2003-05-09 15:54:55
不说作为资深程序员,就算作为一般的程序员,懂一点底层技术也会有利于工作。就象一个小孩,如果将来一定要成为一名作家,那就不用学“+-*/”了吗?

 一无所有 回复于:2003-05-09 17:15:36
不知道有一篇叫做《欢迎杂家》的文章大家看过没有。
  我一直有一直看法,做软件如同写文章或者做人,
  没有深厚的文化底蕴,再好也如同没有绿叶陪衬的红花。

 一无所有 回复于:2003-05-09 17:15:55
或者我这种观点大家会比较难接受。
  但大家不知道主要一个事实没有,
  但凡给软件工程进行举例的时候,大家都会不自觉的拿周围的一些事务进行比拟。
  例如:软件工程和做房子。

 无双 回复于:2003-05-09 17:42:08
[quote:6900fff3f9="torrent"]我不赞成楼上说的“学会了语法只能说明你学会了用这个语言”;就像学会了英语的语法就学会了用英语???[/quote:6900fff3f9]

用英语交流和用写一篇好的英文作品是不是有区别

同样
写一段代码和写一个大程序是不是也有区别

懂英文的人很多
但是真正能用得很熟练并写出好作品的人很少

写代码的人很多
但是能够设计大软件系统的人很少

我的意思就是这个意思

 lujin0248 回复于:2003-05-09 18:19:22
不是谁都可以成为程序员的,也不是写了几个程序就认为写程序很简单,程序其实是思维的体现,写出来的只是代码而已,但即便写出来了也有好坏之分,就像用文字描述一件事一样

 无双 回复于:2003-05-09 18:46:29
同意楼上
程序最重要的是思想
而不是语言或是工具

 arcsiny 回复于:2003-05-09 19:24:16
这个问题打从一入行 就不止n个人探讨这个问题了
其实偶感觉 说到底 社会分工决定了一切
有人搞高技术 就必定有人拿这些高技术产品作应用
有了高技术 没有去推销去用的 还是白搭

所以嘛 偶感觉楼主的文章本意很好--振兴我中华民族
对于文章的理解--仁者见仁 智者见智 理解就行了

当然,鼓动性是有的---谁不想成为一个大师----那可意味着金钱、地位....
可是真正的大师又有几人,全成了公司老总那还要不要员工了

偶认为你要是觉得自己是那块料,不妨一博,可真要觉得自己确实不是所谓的天才,还是老老实实做回自己,不要被这些鼓舞的文章来回倒腾自己了---其实简单不也挺好嘛?

 dayou 回复于:2003-05-09 23:33:06
根深叶茂, 踏踏实实地做

 dtj0 回复于:2003-05-10 00:54:50
曾几何时,当我刚刚迈入大学校门的时候。读研究生的师兄告诉我主要学好VC,因为我们研究生主要就是用vc。
后来我来到了另一所学校读研,当我用vc沾沾自喜时,当我用
java沾沾自喜时,老师告诉我们,应该学习他们,但不能依附他们,
看他们的功能很强大,他们的目的是让你依附他,永远做他们的奴隶。
应该开发自己的民族的软件,中国的硬件发展近期恐怕不容易赶上了,
但软件还很有机会。看看印度,比比我们自己。

 dtj0 回复于:2003-05-10 01:08:06
明白我们的差距。
其实觉得目前这个样子。原因是多方面的。不光是程序员的问题。其实是一个社会问题。一个政府问题。
我们的一些老师是搞中国第一代操作系统的,起步并不比微软晚,
但看现在。中国搞移动通信的,在七十年代时,有些技术已经很有眉目了,但是看我们的移动通信的现在。... ... 很多很多事情。

 dtj0 回复于:2003-05-10 01:24:40
法律保护,融资渠道等等,太多太多... ...
又想起了非典问题,这么大的事某些人为了乌纱局然妄图瞒天过海!仅仅撤职我看处罚的太轻了!不作为致死的,尚且要视情节追究刑事责任,何况造成这么大后果。我们都希望国家强大,但是如此岂能强大?
我以前是做管理的(从软件研发做起的),总体负责公司六个省的运营。在我所有的生意中,没有手脚的应该不到十次。有时我就想,中国何时才能真正富强?还是或许就是一个梦?

 dtj0 回复于:2003-05-10 01:34:30
今天做律师的一个朋友给我讲了一些案件,有些激动。
但言语不是针对于某个人,如有过激处还请海涵。
好久没写文章了,有些语无伦次,见笑了。

 一无所有 回复于:2003-05-10 09:26:56
我个人从来就不把印度作为我们可以作为我们学校的一个楷模。
 印度的软件业是什么,来料加工?或者是。他们占世界软件产业的多少份额?
  我向往我们的软件业什么时候可以拥有真正属于自己的东西。那就是让软件里面有属于我们自己的灵魂。今天你做软件的时候告诉客户,你需要什么什么平台,明天你没有了这些平台你能做什么?
  当然我这么说并不是排斥社会分工!

 jentlaw 回复于:2003-05-10 15:58:20
关于这个问题,发表一些自己的想法!
别以为能做一些做烂了的图书管理,或者学籍管理,或者这一类的
MIS

 jentlaw 回复于:2003-05-10 16:00:51
就可以了。远远不够,别人嚼过的东西,你还在那嚼,居然还津津有味!
别丢人了,去找一些新的东西来做吧!
或者去读操作系统的源代码!

 dtj0 回复于:2003-05-10 17:01:29
哎!怎么说你呢,楼上的兄弟,不要小看了一个系统,或许你认为他很好写,但我想问你,如果你用的工具是C或是汇编呢,我只想提醒你,
对于一些东东,你真正了解他吗,一个简单Printf()函数你知道他是怎么实现的吗?更底层这个过程经过怎样的Data path 和用怎样的控制信号呢?怎样在硬件上获得更小的开销,现在的处理器的流水和汇编的配合是不是最优的?即便是现在用得最多的ARM的流水我看也有很多问题没有解决,上文中的例子只是用来做个比喻,希望你不要吹毛求疵。
读文章是要读思想的,不要只关注于细节。

 无双 回复于:2003-05-10 18:05:21
其实我觉得中国许多高端技术的发展失败与政府有关

以前政府对这些只是要求我们做出来就可以了
而不要求把他做好

因为国外对新软件或是技术都是限制出口国的
而只要我们做出来了
国外的这些技术或是软件就不会对我们限制进口,因为国外公司害怕我们把它做出来后掌握对应的技术
这样我们就可以进口国外的软件用
而我们那个项目的目的也达到了

所以中国许多研究都只是达到实现而没有达到深入研究并发展
我想这与这一思想有关

另外以前没有商业软件或是公司概念
许多成果做出来后就放起来了
没有进一步维护与发展
这也阻碍了技术的进步

国内许多企业掌握核心技术的也不多,他们做的只是劳动密集型企业
而不是技术密集型企业,所以对新产品研究的投入也不多
这也是国内企业的一大缺点,这一缺点使国内的技术发展很缓慢
同样这一缺点也使当生产某一类产口的企业多时,彼此之间只能通过价格竞争来取得最后的胜利

因此要想发展国内的技术,必须需要政府的重视与企业的关心

 diydos 回复于:2003-05-11 10:08:12
其实,大家从业几年后,就会对编程觉得郁闷:基本上只用到数组、if、while,再编下去也不会有什么提高。这时,我们就会去看理论书,就会有感慨,当时早就因该多学点底层东东,少搞点花头。
但是,人总是喜欢炫耀、被别人承认的,不搞点花头,什么成效都没有,根本就没有动力学下去。自己走过来了,有必要这样去否定别人的方向吗?

 cajiangmin 回复于:2003-05-11 10:19:43
写的不错

 系统工程师 回复于:2003-05-11 12:20:28
看看等我们到了27,8岁的时候,还会不会说什么“振兴民族软件”这样的话了。    呵呵

 a9711 回复于:2003-05-11 18:43:01
关注。。
好好学习,,天天向上。 。

 ygzq 回复于:2003-05-12 23:57:30
[quote:331be9cb8a="arcsiny"]这个问题打从一入行 就不止n个人探讨这个问题了
其实偶感觉 说到底 社会分工决定了一切
有人搞高技术 就必定有人拿这些高技术产品作应用
有了高技术 没有去推销去用的 还是白搭

[/quote:331be9cb8a]

Agree, though PRC does need own system software, e.g. operating system et al.

 pillow 回复于:2003-05-15 11:33:13
是好文章
收藏

 unix_soft 回复于:2003-06-12 10:44:39
是的,是很好的文章。在我上大学时,一些同学做什么VB,VC等,可那时我们连面向对象课程都没有开。而我在工作好饿补了基础科,主要是C、C++理论、数据库原理、单片机、数字电路、8086汇编语言、数据结构和操作系统,可惜我是专科没有开过编译原理。哈哈,我现在还在学一些理论性的知识。在我看来计算机要不断地学习和交流。还有自己要定位。

 shulong 回复于:2003-06-16 16:35:17
程序员的深与浅是一个很难判断的事,写出一个好的程序的那才叫高手有些人只会大声的喊叫,编了个计算器就说自己是一个程序员了还是高手的那种这种人现在有将来有什么时候都有这些是中国人的通病

 流氓无产者 回复于:2003-06-16 18:55:42
哦认为真正的高手并不是或者理论或者编程有多强,而是对问题的理解的深度和解决问题的思路,和实现这一过程中,所表现出来的灵活性和原则性,简言之,是真正把计算机当工具的人

 无双 回复于:2003-06-17 13:09:08
同意楼上的
写程序到了一定程度后只看它的设计思想与理念
而不在于编程中语言的掌握数目或是写代码速度

好的代码及容易维护和扩展的代码才是好代码
能从整体上理解系统以及自己负责部分的才是高手

 蓝色键盘 回复于:2003-06-17 13:58:50
以前在其它的版看过这边文章,刚才又看了一遍,写的有些道理。

 nickdony 回复于:2003-06-20 21:59:08
说的很有道理,外国很多大学之所以是世界名校,,是因为他们在很多基础学科上的水平出于世界一流

 无双 回复于:2003-06-21 19:55:23
上个月有幸看到澳洲新南威尔士大学的一个题目
是要自已写一个STL容器和写一个iterator的
觉得题目真的写得很清楚
完全是照软件工程角度来写


需求明确
并且技术性也很高(STL是新技术, 里面使用模板等概念,所以要掌握的知识还是比较多的)

对比之下国内的多是语法考试题
觉得差距太大了

 无双 回复于:2003-06-21 19:56:04
那篇文章在c/c++版里
我这还有PDF

如果各位想练手的话可以试做看

 jsean 回复于:2003-06-22 00:07:25
呵呵,龙生九子。。。

 menp9999 回复于:2003-06-23 08:18:18
[quote:2804635d5a="dtj0"]一篇好文章!搞编程的有必要一读!!! 
  今天在网上发现了这么一篇好文章,感觉有必要和大家一起来学习!!
小弟不敢独享,所以就捧出来了,有志从事编程者不妨看一看!!


我认为有些人的观点错了。错得?.........[/quote:2804635d5a]     
看不明白,更不用说看出好了.

 chenhongbo 回复于:2003-06-26 15:23:18
文章写的不错

 sq14149062 回复于:2003-06-26 18:55:04
因该先从小处做起。

 龙九 回复于:2003-06-27 18:52:51
好,说的不错

关闭本页
 
首页 | 投资与合作 | 服务条款 | 隐私政策 | 收藏本站 | 设为首页 | 新用户注册 | 免责声明 | 使用帮助
Copyright ©2005-2008 chinaitpower.com All rights reserved. www.chinaitpower.com 版权所有