让我们回归(by 默难)
发一篇原论坛斑竹 默难的文章
原文引自论坛:http://www.cnhonker.com/forums/index.php?showtopic=4968
个人感受,文字粗糙,语言无条理,望多多见谅
让我们回归
我---曾经很是自以为是的人---以前天真之极:认为自己的编程水平不敢说是高手,那么至少也脱离了初学者了---不管怎么说,我
也是有过近万行代码编程经验的人,也开发过5000多行代码的程序;而且还表面谦虚地把代码给网友看,在得到一些高人的鼓励后,
表面依然谦虚的说上些客套话,然后独自洋洋得意起来;在同学面前,大肆谈论着计算机---尽管他们未必明白我说的东西,但我的
目的是:让他们觉得我已经脱离世俗,来到了程序设计的极高境界………………如今想来,我是那么虚伪,那么天真,那么………
然而,有一天我逛书店时---依旧只奔向计算机书籍---发现了一个计算机界众所周知却很多人都忽视的事物:计算机理论知识!
没错!理论!也许各位会说:理论的东西,要应用到实践中的~没错!!绝对没错!!但是,我要问:你理论掌握的如何?编译原理?
操作系统?数据结构?算法?有多少人敢说这些东西他都已经烂熟于心了?这些不掌握好,如何去指导实践?
因此,我强烈建议:让我们回归,回归到理论,并将理论应用到实践中去。
似乎提到理论,很多人都要想到枯燥,乏味,没用。首先,我声明:我绝对反对那种钻牛角尖行为,但是,也绝对反对那些绝对实践
主义。我们要认识到:实践确实可以产生并检验理论,但同时,理论更可以指导实践!我不想讨论过多的哲学上的问题---这方面我
不在行---但是我希望能通过我的文章,唤醒那些依然沉浸在所谓的“实践”中的人们。
记得我曾经网上遇到一位兄弟,很是狂妄自大,自称:“在和某某人学黑客”(我才智愚钝,不懂“黑客”这东西怎么学,但这位兄
弟的确是这么说的)当问起他:“你用什么编程?”时,他的回答是:“我的方向是黑客,不是程序设计”…………当时只想不再理
这人了,但是碍于面子(他是我朋友的网友……真不知道我朋友的交友原则是什么……)没这么作。之后,我问他是否看过Richard的
《TCP/IP详解》(既然是“学黑客”的,这种就连我这愚才也读过的黑客圣经级别的书应该看过吧……)他却问:“那是什么?”之
后,他说了N多个完全不符合基本原理的话(当时真是怀疑他喝酒了)最后我实在无奈了,告诉他:“你看看一些理论方面的东西吧,
不要想什么入侵什么攻击,更不要想流光怎么用,冰河怎么用这些问题了……”(其实,我说的《TCP/IP详解》之类的书还不算是真
正意义上的计算机理论书籍)他的回答确实很强:“理论?理论能干什么?”我当时二话没错---管他面子不面子---就请这位“高
人”入了我的黑名单……
这种人实在是受不了的,他们简直是完完全全的片面实用主义(注意我的定语:我看他们这种人不算什么实用主义)他们只是想知道:
现在这个问题应该怎么解决,而不是考虑:为什么会有这种问题,这种问题的根源是什么,原理是什么?根据原理是否还会有其他
问题?等等~
还有一些人,他们热衷于特定语言的基本特性,他们考虑着很多非常实用的问题---这些都是很好的现象,当初我也是如此,但是,
他们似乎总忽略一些事情,比如:程序的算法,不要忘记:
Algorithm---the Spirit of Computing
不管你用这门语言多么熟练,不管你背下多少标准库和系统函数,但是,你光有这些,而忽略算法的重要性,那么绝对不会写出高
效率的程序的。
似乎程序员很怕内存管理方面的错误:内存泄露,野指针等等,因为他们很难被查觉到。但是,算法上的问题,却是比这些问题还
要棘手的:也许一个程序正常运行了,没有错误,运行良好,但是,如果它的算法是不完善的,那么,也许程序员一辈子也不会发
现。
现在似乎都在忽视着算法这个重要的东西,看看吧:RSA的设计者(Ronald L. Rivest;Adi Shamir;Leonard M. Adleman)荣获
此殊荣,但是,又有多少媒体报道了这件事情呢?用google搜索:“RSA 图灵奖 2002”(引号不算为搜索关键字),结果只有可
怜的25项……其中还有一些是与这件事无关的新闻……大家都怎么了?难道这种计算机界的大事不该好好宣传一下吗?
再来看看我们的书店吧~我是属于常逛书店的人,加上在首都北京,应该算是文化底蕴比较丰厚的了,那么书店里面计算机书籍情
况如何呢?
一个中等型号的书店,里面的计算机书只有廖廖几个书架,而都是什么书籍呢?我们来看看:
最多的就是些入门书籍,什么windows操作,五笔,练打字等等
其次是一些图象处理书籍:PhotoShop Flash等等
接着是些办公软件,网页制作之类的:Office(95%左右的办公软件书籍都是Office……)Frontpage等等
还有就是系统管理,数据库之类:Win2k系统管理 Linux系统管理 SQL等等
还有程序设计:主要是些入门书籍,21天学通C++(我不知道作者是何等高人,21天就可以学通C++……)而主要的还是VB ASP等等
对了~还有一个很大很大的团体:网络安全,这里面有用的书籍我看就那么几本:密码学 网络安全真相,而更多的是那些“片面
实用主义”们读的读物:《黑客,就这么几招》(挺佩服作者的,居然起了这么强的书名……说实在的,如今的一些“黑客”
---似乎叫他们骇客更合适---也就是那么几招了……)那些书我翻了翻,暗自觉得好笑:把一个个的屏幕截图放到书上,然后在旁
边做上标识,告诉你:点这个键……与其说是教“网络安全”不如说是教windows基础操作……
而最最惨的,就是计算机理论方面的书籍了,廖廖几本,前几天想找个算法方面的书,到了书店,猛翻海找,才找到3种……还有
一些数据结构的书,里面理所当然也要介绍些算法,总共加起来不过6种……至于编译原理,操作系统这些书更是稀有品种……
其实,像Richard的APUE,《TCP/IP详解》,UNIX网络编程,还有道戈拉斯的《计算机网络》,Andrew的
《C Traps and Pitfalls》等等那些书籍,绝对是经典,值得一读的。但是,像数据结构,编译原理,算法设计操作系统等等的
理论方面书籍也要重视,他们才是计算机的真正灵魂,无论计算机如何发展,如果你能了解计算机的理论知识,那么你就很容易走
在时代前沿,就好像:如果你只知道1+1=2,那么你不会作出其他加法题,如果你学会加法,那么无论是1+1 1+2 1+3还是多少加多
少,你都可以迎刃而解~
首先确定你有没有这方面的潜能..没有的话 劝你还是不要了..计算机专业学的也就是一些理论的东西.你不这些东西背熟理解了,也已经很厉害了..
先从认识硬件开始。然后再往编程方面去看。
软件好难学啊,你要做好准备
自然是编程