荔园在线

荔园之美,在春之萌芽,在夏之绽放,在秋之收获,在冬之沉淀

[回到开始] [上一篇][下一篇]


发信人: Second (石开), 信区: Program
标  题: 【推荐】正确的作学问态度
发信站: 荔园晨风BBS站 (Sat May 19 11:44:46 2001), 转信

以下是一封读者来函:
  我有个疑惑,想请你帮助。我们今天学C/C++,明天学MFC,
OWL(如果流行的话)後天学C#,JAVA...如果 WINDOW 被 X
WINDOW 淘汰,岂不是都要从头学过?有没有必要把一切搞得
如此精通?同样的目的,为什麽不用更方便简单的快速RAD开
发工具?而非要以钻研繁杂作为乐趣?和体现水平?是否搞错
了方向和目标?我认为这正是目前大陆(台湾我不了解)软件
开发的一个错误的方向。

    所有同质的技术都有累积性与共通性。信中提到的三组东
西:MFC, OWL, 或是 Windows, X Window, 或是 C++, Java,
C#, 都有类似性与共通性。技术是会累积的,有了某种经验,
学习新技术会快很多。经验愈多,学习愈快。所以我常喜欢说
「触类旁通」。如果每种技术都得从新学习,大家三五年就得
归零一次,人类世界就不会在 20 世纪像爆炸似地进步这麽快。

    「有没有必要把一切搞得如此精通?」我的回答是:看个
人需求与定位。基础知识的精通,是做为应用的一种过程与手
段,而不是目的。如果你不需要通过这样的过程,就可以把你
要做的事情做得很好,那麽当然你可以跳过这个过程。我所知
道的是,许多许多人必须先有这样的过程,才能够良好达成期
望目标。我自己也需要通过这样的过程(否则写不出这样的书)。
这不是你所谓的「钻研繁杂」或「体现水平」。

    既然信中提到RAD,我也谈谈我的看法。我曾经写过一篇文
章,把RAD喻为「匹夫无罪,怀璧其罪],建议各位看看。我很赞
成使用RAD。我书写MFC书籍,探讨MFC技术,但从来没有认为它
最好,或不好,我只是要帮助那麽多使用MFC的人。和Bjarne的
态度一样,我对诸如此类的工具评比活动一点兴趣都没有。我乐
意当一名观众,但从来不评比(应该可以说,也没有能力评比)。

    RAD 的情况,可以拿汽车做比喻。现今谁开车还需要知道齿
轮箱、传动轴、离合器、引擎点火原理、火星塞呢?但是满街开
车人谁又能够表演360度大回旋?要到达「车手」的程度,就必须
对车子的原理有相当程度的了解。同样是开车,洗拿(F1方程式
冠军车手)和侯捷两人发挥车辆功能的程度,绝对有天壤之别。
我认识的所有惯使RAD 的高手,无一不是有底层深厚功力。以RAD
始,以RAD终,断不能在技术上有所太大长进。你的生涯将是空白
的五线谱,没有高音,没有低音,永远的水平┅。

    RAD是要用的,有好工具不用,和自己过不去。但是使用RAD的
同时,对底层做更多的了解才有助於在某种情况下脱困或自助。这
和 STL 的运用也一样。会用STL,是一种档次。对STL原理有所了解,
又是一个档次。追踪过STL源码,又是一个档次。第三种档次的人用
起 STL 来,虎虎生风之势绝非第一档次的人能够望其项背。

    学习某种工具,及其背後代表的某种技术,究竟要钻研到什麽
深度?唔,答案视你想扮演什麽角色而定。「F1方程式车手」和「半
夜三点才敢上台北大马路的用车人」之间,有许多许多的层次,你自
己定位自己。

    有些人绝对拥护RAD,有些人又重新反省RAD。下面是另一封信:

    我原本是一个一天到晚使用RAD工具的人...但是历经了三个版本
之後,我有一种被骗的感觉,因为处在这个环境中,似乎是投身在别
人设好的一个圈套里!这种东西会让人对於『了解 OS 内部运作以及
各种规范与协定的基础层面』的欲望慢慢减低至零。今天为了突破某
一个元件的限制而自己写了一个元件,明天新版RAD内附元件就出现了
比自己写得幻的东西。到了最後,自己不想写,只想等别人写给你;
要是别人不写,你就彻头彻尾地丧失了一项能力...(天晓得要等到何
年何月),要不然就是官方给的元件功能少东少西。不只这些!最让我
受不了的是,我竟然发现:程式用这种方式去写,简直就比用Office
还要简单,深入的思考几乎是零...。

我在「怀璧其罪 RAD」一文中是这麽回答的:

1. RAD 并非罪恶,而是优点。要怎麽用它则是你自己的问题。我有两
位朋友是 Delphi 专家,他们可以使用 Delphi 做任何事情,没有任何
你想像中 RAD「该有」的限制。

2. 果真能够「写一个程式,比使用 Office 还要简单,深入的思考几
乎是零」,并不是坏事。大家都能够随手写个小程式解决手边几个小问
题,是为component software 以及 RAD 的大贡献。但你的形容太夸张
了,目前的 RAD 还不至於美好若此,总还需要一些程式逻辑和程式语
言的基本训练。真到了你说的那一天,我觉得是件好事而不是坏事。只
不过,那样子完成的程式,都需藉助现成的元件。如果要突破现成的框
框,就得有更深的功力。无论如何,RAD 不会是你的绊脚石。

    这类话题很难一言以蔽之。总之,优秀的技术者一定需要一个向下
沉淀的历练,通过了这层历练,有了扎实的基础,就可以向上浮升,开
始以抽象的思考,抽象的语言、快速开发工具来进行高层次的开发工作。
这时候运用 RAD 工具,当能如虎添翼。所谓百炼成钢;钢的形成,是将
铁块不断锤打,不断回火,不断淬炼。做为一个程式员,本身技能的层
次,和回火淬炼的次数有密切关系。

    让我们再回头谈谈基础建设。很多资讯科系在学学生对学校所开的
课程,非常不服气,非常不屑,认为对编程能力一点帮助也没有。首先
我要说,编程、软件开发并不是资讯系学生的唯一出路。资讯领域何其
广泛,编程只是其中小小的一支而已(但对就业市场而言则是大大的一
脉)。其次我要说,基础理论课程并非对你的编程一无是处 ─ 不是无
用,只是未到用时。有些科目的影响非常直接而深远,例如对编程最重
要的两门课:
资料结构(data structure)和演算法(algorithm),这两门课对逻辑
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
思考与实现能力的训练,有关键性的价值。没有这两门课做底,任你 C/
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
C++/Java 多强多行,也写不出个好程式。其他基础理论课程也都各有用
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
途,会不会在你未来的编程生涯中带来帮助,那得看你编哪一种程。就业
与学校所学,不必然会发生关系,不必然不会发生关系。

    编程能力强的年轻同学,容易孳生一种趾高气扬的恶习,看这不顺眼,
看那不顺眼,教授都老朽,同学都可笑。问他为什麽,哦,因为「他们的
编程功力都不如我」。可笑的正是你自己呀。

    编程实力的培养其实很容易的。我所谓容易,是指不需借助外力,纯
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
粹自修就几乎可以做到。再没有比这更幸运的事了。当然你的进修必须按
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
部就班。任何高深的理论,只要实际操作过都可以霍然理解,编程的实作
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
又有什麽难的。数本好书,一部电脑,一些必要的工具,全部搞定,只欠
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
一股「头悬梁锥刺股」的苦读精神。实力进展到一个阶段後,我非常鼓励
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
你追踪名家源码(有人指导更好)。司马相如说:能读千赋则善赋,能观
千剑则善剑。侯捷说:读过千赋亦能赋,观过千剑亦能剑。最後我还要说,
学校(尤其大学)原本不是职训所。但是关於人格的培养,思想的启迪,
视野的开拓,现今言之,恐怕是陈义过高,没人爱听了。

    学校肯定有学校的缺失。其一是课程太过理论,高来高去。以大学生
的程度而言,太过抽象的东西他们是没有能力接受的。但是要化抽象为具
象,化繁为简,可得有非常深厚的实力才行。其二是教材、教具、教师太
过陈旧,跟不上时代。我印象最深刻的是,台湾BBS时常有学生问 Turbo
C 3.0 上的问题。我的妈呀,C++ Standard 都出来两年了,学校还在用T
C3.0。倒不是说一定要追最新最炫的工具或产品,但是TC3.0 距离 C++ St
andard,有月球到地球的距离吧。用这个编译器,可想而知老师教的是什麽
内容,可想而知老师本身跟上外界脉动的程度。如果新工具新产品都很贵,
顾及学校经费,我们也能体谅。可 Borland C++ 5.5, GNU C++ 2.96, TAI
C++ 都是可以免费下载或限期试用的呀。它们对 C++ Standard 的实现,比
TC3.0 好太多太多了。

     这就涉及学校教育里头最重要的关键:师资。说句实在话,大学里头
有不少老师,书是念得很棒,就是没有实作经验,更没有业界经验。因循苟
且之念一动,万年教材一摊,同学们就只有自求多福。

    自救之道当然有:你必须更勤奋。勤奋看书,勤奋发问。勤奋搜寻好的
导师和好的读物。或许天道酬勤,就让你碰上一个传道授业解惑的贵人,就
让你知道一本必读的经典,并且就让你找到它。

    说到勤奋发问,让我发出本文的最後一声感叹做为结束。台湾大学生在
「表达能力」这一点,程度普遍低下幼稚。能够条理分明把自己的意思表达
清楚的,十分罕见。反映出来的,就是怯怯懦懦,理不直而气不壮。私底下
声若洪钟,要他站起来公开表示意见,却如细蚊之嗡嗡。不论口语或文字,
用词普遍地「俗」。大陆情况,就我的印象,以及我收到的读者来信,感觉
好很多。以前台湾的说法是,因为大陆斗争厉害,人人得有一口利嘴以求自
保。但文革已过数十年,我看大家的表达能力普遍还是很不错,是不是求学
阶段中曾经特别重视这个?

    发问的能力影响学习甚巨。善问者使人继其声,善教者使人承其志。我
常自诩为一名善教者,但如课堂上兼能有一名善问者,高潮迭起,全班受惠。
-- the end

--
                            既然热爱生命
                            那么,
                            一切都在意料之中。

※ 修改:·Second 於 May 19 11:47:40 修改本文·[FROM: 192.168.28.190]
※ 来源:·荔园晨风BBS站 bbs.szu.edu.cn·[FROM: 192.168.28.190]


[回到开始] [上一篇][下一篇]

荔园在线首页 友情链接:深圳大学 深大招生 荔园晨风BBS S-Term软件 网络书店