【转贴】由C#风潮想起的-给初学编程者的忠告

8O 2003-10-17 04:41:22
由C#风潮想起的-给初学编程者的忠告

作者: 刘巍

我始终认为,对一个初学者来说,IT界的技术风潮是不可以追赶的,而且也没有能力去追赶。我时常看见自己的DDMM们把课本扔了,去卖些价格不菲的诸如C#, VB.Net 这样的大部头,这让我感到非常痛心。而许多搞不清指针是咋回事的BBS站友眉飞色舞的讨论C#里面可以不用指针等等则让我觉得好笑。C#就象当年的ASP一样,“忽如一夜春风来,千树万树梨花开”,结果许多学校的信息学院成了“Web 学院”。96,97级的不少大学生都去做Web 了。当然我没有任何歧视某一行业的意识。我只是觉得如果他们把追赶这些时髦技术的时间多花一点在基础的课程上应该是可以走得更远的。

【几个误区】

初学者对C#风潮的追赶其实也只是学习过程中经常遇到的几个误区之一。我将用一些实际的例子来说明这些现象,你可以按部就班的看看自己是不是属于其中的一种或者几种:

〖认为计算机技术等于编程技术: 〗

有些人即使没有这个想法,在潜意识中也有这样的冲动。让我奇怪的是,许多信息学院的学生也有这样的念头。认为计算机专业就是编程专业,与编程无关的,或者不太相关的课程他统统都不管,极端的学生只要书上没带“编程”两个字他就不看。

其实编程只是计算机技术应用过程中一种复杂性最低的劳动,这就是为什么IT业最底层的人是程序员(CODER)。计算机技术包括了多媒体,计算机网络,人工智能,模式识别,管理信息系统等等这些方面。编程工作只是在这些具体技术在理论研究或者工程实践的过程中表达算法的过程。编程的人不一定对计算机技术的了解就一定很高。而一个有趣的现象是,不少大师级的计算机技术研究者是不懂编程的。网上的炒作和现实中良好的工作待遇把编程这种劳动神秘化了。其实每一个程序员心里都明白,自己这些东西,学的时候并不比其它专业难,所以自然也不会高档到哪里去。

〖咬文嚼字的孔已己作风: 〗

我见过一本女生的《计算机网络原理》教材,这个女生象小学生一样在书上划满了横杠杠,笔记做得满满的,打印出来一定比教材还厚。我不明白的是,象计算机网络原理这样的课程有必要做笔记?我们的应试教育的确害了不少学生,在上《原理》这一类课程的时候许多学生象学《马列原理》一样逐字背诵记忆。这乃是我见过的最愚蠢的行为。所谓《原理》,即是需要掌握它为什么这样做,学习why,而不是how(怎样做)。极端认真的学生背下以太网的网线最大长度,数据帧的长度,每个字段的意义,IP报头的格式等等,但是忘了路由的原则,忘了TCP/IP协议设计的宗旨。总之许多人花了大量的时间把书背得滚瓜烂熟却等于什么也没学。

在学习编程的时候这些学生也是这样,他们确切的记得C++语法的各个细节。看完了C++教程后看《Thinking in C++》(确实是好书),《Inside C++》,《C++ reference》,this C++, that C++……,然后是网上各种各样的关于C++语法的奇闻逸事,然后发现自己又忘了C++的一些语法,最后回头继续恶补…。有个师弟就跟我说:“C++ 太难了,学了这里忘了那里,学了继承忘了模板。”我的回答道:“你不去学就容易了”。我并没有教坏他,只是告诉他,死抠C++的语法就和孔已己炫耀茴香豆的茴字有几种写法一样毫无意义。你根本不需要对的C++语法太关心,动手编程就是了,有不记得的地方一查MSDN就立马搞定。我有个结论就是,实际的开发过程中对程序语法的了解是最微不足道的知识。这是为什么我在为同学用Basic(我以前从没有学过它)写一个小程序的时候,只花了半个小时看了看语法,然后再用半个小时完成了程序,而一个小时后我又完全忘记了Basic 的所有关键字。

〖不顾基础,盲目追赶时髦技术:〗

终于点到题目上来了。大多数的人都希望自己的东西能够马上跑起来,变成钱。这种想法对一个已经进入职业领域的程序员或者项目经理来说是合理的,而且IT技术进步是如此的快,不跟进就是失业。但是对于初学者来说(尤其是时间充裕的大中专在校生),这种想法是另人费解的。一个并未进入到行业竞争中来的初学者最大的资本便是他有足够的时间沉下心来学习基础性的东西,学习why 而不是how。时髦的技术往往容易掌握,而且越来越容易掌握,这是商业利益的驱使,为了最大化的降低软件开发的成本。但在IT领域内的现实就是这样,越容易掌握的东西,学习的人越多,而且淘汰得越快。每一次新的技术出来,都有许多初学者跟进,这些初学者由于缺乏必要的基础而使得自己在跟进的过程中花费大量的时间,而等他学会了,这种技术也快淘汰了。基础的课程,比方数据结构,操作系统原理等等虽然不能让你立马就实现一个linux(这是许多人嘲笑理论课程无用的原因),但它们能够显著的减少你在学习新技术时学习曲线的坡度。而且对于许多关键的技术(比方Win32 SDK 程序的设计,DDK的编程)来说甚至是不可或缺的。

一个活生生的例子是我和我的一个同学,在大一时我还找不到开机按纽,他已经会写些简单的汇编程序了。我把大二的所有时间花在了汇编,计算机体系结构,数据结构,操作系统原理等等这些课程的学习上,而他则开始学习HTML和VB,并追赶ASP的潮流。大三的时候我开始学习Windows 操作系统原理,学习SDK编程,时间是漫长的,这时我才能够用VC开发出象模象样的应用程序。我曾一度因为同学的程序已经能够运行而自己还在学习如何创建对话框而懊恼不已,但临到毕业才发现自己的选择是何等的正确。和我谈判的公司开出的薪水是他的两倍还多。下面有一个不很恰当的比方:假设学习VB编程需要4个月,学习基础课程和VC的程序设计需要1年。那么如果你先学VB,再来学习后者,时间不会减少,还是1年,而反过来,如果先学习后者,再来学VB,也许你只需要1个星期就能学得非常熟练。

...全文
95 65 打赏 收藏 转发到动态 举报
写回复
用AI写文章
65 条回复
切换为时间正序
请发表友善的回复…
发表回复
lornwolf 2003-10-24
  • 打赏
  • 举报
回复
不完全同意楼主观点
kicklemon 2003-10-24
  • 打赏
  • 举报
回复
收藏了
neverfade 2003-10-24
  • 打赏
  • 举报
回复
谢谢楼主的文章
我是一名新手,在一家软件公司做软件开发,做了一个多月了,感觉找不到发展的方向,比较郁闷,最近一直在思索自己编程的目的和意义,我觉得我们学计算机的目的不是为了掌握一两门流行的技术吧,作为一名软件开发者,用某某语言编写一段代码实现相应功能只是最基本的要求吧,怎么样才能从思想上更接近于一个软件开发者呢?而不仅仅是一个纯粹的技术工人
wangnc 2003-10-24
  • 打赏
  • 举报
回复
在逐字逐句地看完这个帖子以后,我的心久久不能平静,震撼啊!为什么会有如此好的帖子?!
我纵横网络BBS多年,自以为再也不会有任何帖子能打动我,没想到今天看到了如此精妙绝伦的
这样一篇帖子。 楼主,是你让我深深地理解了‘人外有人,天外有天’这句话。谢谢侬!在看完
这帖子以后,我没有立即回复,因为我生怕我庸俗不堪的回复会玷污了这网上少有的帖子。但是
我还是回复了,因为觉得如果不能在如此精彩的帖子后面留下自己的网名,那我死也不会瞑目的!
能够在如此精彩的帖子后面留下自己的网名是多么骄傲的一件事啊!楼主,请原谅我的自私!我
知道无论用多么华丽的辞藻来形容楼主您帖子的精彩程度都是不够的,都是虚伪的,所以我只想
说一句:您的帖子太好看了!我愿意一辈子的看下去!这篇帖子构思新颖,题材独具匠心,段落
清晰,情节诡异,跌宕起伏,主线分明,引人入胜,平淡中显示出不凡的文学功底,可谓是字字
珠玑,句句经典,是我辈应当学习之典范。就艺术的角度而言,这篇帖子不算太成功,但它的实
验意义却远远大于成功本身。正所谓:“一马奔腾,射雕引弓,天地都在我心中!”楼主真不愧为
无厘界新一代的开山怪!本来我已经对这个社区失望了,觉得这个社区没有前途了,心里充满了
悲哀。但是看了你的这个帖子,又让我对社区产生了希望。是你让我的心里重新燃起希望之火,
是你让我的心死灰复燃,是你拯救了我一颗拨凉拨凉的心!本来我决定不会在社区回任何帖子了,
但是看了你的帖子,我告诉自己这个帖子是一定要回的!这是百年难得一见的好贴啊!苍天有眼
啊,让我在优生之年得以观得如此精彩绝伦的帖子!楼主,你要继续努力啊!你是社区的希望啊!
速马 2003-10-24
  • 打赏
  • 举报
回复
矛盾在于,你不去学.NET,Java这样的东西去做点项目,那去学软件工程之类的可能会有多深的理解?一开始就去学那些所谓的底层,可能大部分人还是会因为难度太大而放弃吧
我是觉得:
学好上层技术后再去研究底层,才是比较明智的做法
就是走了不同的路嘛,由浅入深,或者有深入浅,目的和结果是一样的

拘泥于哪个层面显然都做不了高手,不同的是:
一天到晚就只会在嚷嚷底层,算法,开源,免费的人,可能先被饿死
而被他们看不起的做上层应用的,至少有的活
qingren 2003-10-24
  • 打赏
  • 举报
回复
考试
爱星星的牛爸 2003-10-24
  • 打赏
  • 举报
回复
我觉得,理论知识在学校里是一定要去学的,真要等到工作了,你会没完没了的陷入到一个又一个重复劳动中去,在学校里都没学的东西,工作中你更不可能去学了。那样就很难把自己的知识升华。
但是鉴于市场的需要,也不能完全埋头于基础理论知识的学习,现在的用人单位很少有足够的时间给你来把这些理论转化为应用的。
所以两者应该是齐头并进的,在学校期间,学习理论知识要花上你更多地时间去掌握,个人觉得7:3的比例比较合适一些。如果你能在学习那些新技术的时候能同时把这些理论付诸于应用,那么恭喜你,有大把的好工作在前方等着你。
猛禽 2003-10-24
  • 打赏
  • 举报
回复
不同意楼上滴:

基础打好了,学流行技术不要多少时间,但等到工作后就不再有那么多时间和精力去研究基础的东东了。
terry2003 2003-10-24
  • 打赏
  • 举报
回复
那些基础理论知识是很重要,但是四年学下来,不学一下流行的技术,怎么找工作,谁会要你
我从大一到大三一直很努力去学理论知识,但学到后来我发现自己什么都没学到,出去找工作是肯定找不到的,
相反,理论知识学的不是很好,甚至没学,学到了像。NET这样流行的技术,反而可以找到工作,该怎么选择?对于大多数人来讲,他们不会想着去搞研究,做大师,谁会提供条件让你去搞研究,我们要的是一门最实用的技术出去赚钱,混口饭吃,就这么简单
像数据结构,编译原理,操作系统,离散这一类理论知识就算不学,照样可以学。NET
等到想成为高手那一天再学理论也不迟,那时候有了足够的MONEY,有了工作经验学起来也快
piao9wu 2003-10-23
  • 打赏
  • 举报
回复
up
junyi2003 2003-10-22
  • 打赏
  • 举报
回复
继续迷茫中……

Tz520 2003-10-22
  • 打赏
  • 举报
回复
迷茫中,顶~!
chensan 2003-10-22
  • 打赏
  • 举报
回复
白痴观点!
手艺人杨柳 2003-10-22
  • 打赏
  • 举报
回复
有意义嘛?
yipanchen 2003-10-22
  • 打赏
  • 举报
回复
我顶一下
ZhangYv 2003-10-22
  • 打赏
  • 举报
回复
无感受中...并且反对文章的第一个看法.
robertnet 2003-10-22
  • 打赏
  • 举报
回复
多谢提点.
zw9901530 2003-10-22
  • 打赏
  • 举报
回复
我觉得现在在
学校学习软件工程主要还是背东西,我想一个在校的学生真的能学好里面的东西吗
bigmouse2002 2003-10-22
  • 打赏
  • 举报
回复
在逐字逐句地看完这个帖子以后,我的心久久不能平静,震撼啊!为什么会有如此好的帖子?!我纵横网络BBS多年,自以为再也不会有任何帖子能打动我,没想到今天看到了如此精妙绝伦的这样一篇帖子。
楼主,是你让我深深地理解了‘人外有人,天外有天’这句话。谢谢侬!
在看完这帖子以后,我没有立即回复,因为我生怕我庸俗不堪的回复会玷污了这网上少有的帖子。但是我还是回复了,因为觉得如果不能在如此精彩的帖子后面留下自己的网名,那我死也不会瞑目的!能够在如此精彩的帖子后面留下自己的网名是多么骄傲的一件事啊!楼主,请原谅我的自私!
我知道无论用多么华丽的辞藻来形容楼主您帖子的精彩程度都是不够的,都是虚伪的,所以我只想说一句:您的帖子太好看了!我愿意一辈子的看下去!
这篇帖子构思新颖,题材独具匠心,段落清晰,情节诡异,跌宕起伏,主线分明,引人入胜,平淡中显示出不凡的文学功底,可谓是字字珠玑,句句经典,是我辈应当学习之典范。
就艺术的角度而言,这篇帖子不算太成功,但它的实验意义却远远大于成功本身。正所谓:“一马奔腾,射雕引弓,天地都在我心中!”楼主真不愧为无厘界新一代的开山怪!
本来我已经对这个社区失望了,觉得这个社区没有前途了,心里充满了悲哀。但是看了你的这个帖子,又让我对社区产生了希望。是你让我的心里重新燃起希望之火,是你让我的心死灰复燃,是你拯救了我一颗拨凉拨凉的心!
本来我决定不会在社区回任何帖子了,但是看了你的帖子,我告诉自己这个帖子是一定要回的!这是百年难得一见的好贴啊!苍天有眼啊,让我在优生之年得以观得如此精彩绝伦的帖子!
楼主,你要继续努力啊!你是社区的希望啊!
8O 2003-10-22
  • 打赏
  • 举报
回复
up
加载更多回复(45)

590

社区成员

发帖
与我相关
我的任务
社区描述
提出问题
其他 技术论坛(原bbs)
社区管理员
  • community_281
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧