??xml version="1.0" encoding="utf-8" standalone="yes"?>久久久久高潮毛片免费全部播放,亚洲国产精品成人精品,亚洲日本欧美中文幕http://www.aygfsteel.com/Titan/articles/27156.htmlTitanTitanSun, 08 Jan 2006 08:47:00 GMThttp://www.aygfsteel.com/Titan/articles/27156.htmlhttp://www.aygfsteel.com/Titan/comments/27156.htmlhttp://www.aygfsteel.com/Titan/articles/27156.html#Feedback0http://www.aygfsteel.com/Titan/comments/commentRss/27156.htmlhttp://www.aygfsteel.com/Titan/services/trackbacks/27156.html急功q利是大?BR>一位读者写信给我,说他非常着急。他一个月?00元h民币Q家里情况又不好。他希望赶快?VC/MFC 学会Q进?IT 产业挣钱。信写得很长Q看着看着Q我也不ؓ他着急v来?/P>

有许多读者,虽然情况没有那麽急迫Q燃眉之情却也溢D表。不外乎都是希望能够快把某技术某技术学习v来?/P>

但是哪一样东西哪一h术是可以快速学成的呢?能够快速学成的技术,人才也就必然易取易得Q根据市Z需法则Q也׃可能有很好的报酬。所以诸君当有心理准备,门槛高的Q学习代价高Q报酬高Q门槛低的,学习代h低,报酬低?/P>

说v来是老生常谈了。这其中最可怕的心理在急功q利。从读者的来信Q以及从 CSDN 上的众多帖文Q我感觉Q许许多多h学习 IT 技术,q入 IT 产业Q是认ؓ IT 产业可以助你脱困Q远I?/P>

是的QIT 产业有这个「钱」景Q但你得有那份实力。要吃硬核桃Q也得先估量自己的牙口?/P>

「好利」是基本人性,Acer 总裁施振荣先生大力提倡「好逸恶功뀍之_视ؓ人性之本,q步的原动力。谁能说不是呢?好利可以Q近利就不妙了。近利代表目光浅短,一切作为都因此只在格局中打转?/P>

梨园有句话:要在人前显贵Q就要在人後受罪。台上一分钟Q台下十q功。老祖宗这斚w的教诲太多了QnZ国h的我们,应该都耳熟能详?/P>

Ҏ心急的朋友Q我只有一句话Q勿在Q沙筑高台。你明明很清楚这个道理,Z麽到自pn上,q涂了Q急是没有用的QQw更会坏事。耐住性子扎根基吧。做M事都要投资,扎根基就是你对自q未来的投资。如果想知道如何按部q扎根基,侯捷|站上有一文章:?7/06 选义按部 考辞q」,请你看看?/P>


口舌之战有何?BR>最常在E序技术相兌坛上看到毫无价D又L人声鼎沸的口舌之战,是诸如「VB ?Delphi 谁好」、「BCB ?VC 谁优」、「Linus ?Windows 谁棒」、「Java ?C++ 谁强」这U题目。每ơ出场都一片洋z洒z,U红火火急速窜升ؓ酷话题。众人各拥所好,口沫飞扬Q但是从来说服不了Q何异阵营的hQ话都只说给自己人听Q给自己人爽?/P>

q样的论战有何意义?许多人在重组自己的偏见时Q还以ؓ自己在思考呢。战到最後,只是争谁说最後一句话而已。而且Q擦伤引L争吵几乎L以刺伤结束?/P>

工具与技术的评比Q是一场高水准的演出。真有能力做评比Q侯h很尊敬的。但是这些各拥所好,口沫飞扬的hQ真的对评比两造都有深ȝ了解吗?很多时候我们看到的只是无知Q而无知是q麽一U东?: 当你拥有了它Q你拥有巨大的胆量?/P>

很多人喜Ƣ某U工P只不q因为那是他的初体验。他玩它玩出了一点心得,可以说出它的某些好,开始做「评比」了。你只看到牡丹的艳丽Q又怎知寒梅的清香,q兰的空灵?

l大多数Z用某U工P不是因ؓ它最好,不是因ؓ众里d千百度,仅仅只是因缘际会。虽然说不同的应用环境选择不同的工P是最伶俐的作为,但我真的怀疑,在现今工P以及工具背後反映的技术)如此J复的时IZQ有多少够同时精通一个以上的同质工具Q追二兔不得一兔,我还是认Z_专一样工P把它发挥到最高效能,获得的利益多些。被大家拿来评比的,都是市场上的g者,q能差到哪里去?能够两雄怺Q必然是在技术面、非技术面Q资源的普及、品牌的可靠度)各有一片天Q你的评比意义大吗?全面吗?

大多Ch没有能力同时_N两U同质工P初学者听了网路上不知名大侠的高论Q也不可能有所选择Q如果有Q怕也只是蒙着头瞎选)。这U没有提供数据,评论者也没有昄M信誉QcreditQ的论战Q没有Q何意义,Ua只ؓ自己爽。浪费网路资源!

C++ 之父 Bjarne Stroustrup 曄在他自己的网上?FAQ Q以及其他许多场合)中回{如下问题。虽然其中谈的是语言Q但是扩大到其他层面仍然合适,值得大家好好咀|注:全文由孟岩先生译出,可自侯捷|站览Q:

Q: 你愿不愿意将C++与别的语a比较Q?/P>

A: 抱歉Q我不愿意。你可以在The Design and Evolution of C++的介l性文字里扑ֈ原因。有不少人邀h把C++与其它语a相比Q我已经军_不做q类事情。在此我想重申一个很久以来我一直强调的观点Q语a之间的比较没什麽意义,更不公^。主语a之间的合理比较要耗费很大的精力,多数Z会愿意付麽大的代仗另外还需要在q泛的应用领域有充䆾l验Q保持一U不偏不倚客观独立的立场Q有公正无私的信c?..

Z试图把各U语a拿来比较长短Q有些现像我已经一ơ又一ơ地注意刎ͼ坦率地说我感到担忧。作者们力表现出公正无U,但最l都是无可救药地偏向于某一U特定的应用E序Q某一U特定的~程风格Q或者某一U特定的E序员文化。更p的是,当某一U语a明显地比另一U语a更出名时Q一些不易察觉的h换柱开始了Q比较有名的语言中的~陷被有意E化,而且被拐弯抹角地加以掩饰Q同L~陷在不那麽出名的语a里就被描qCؓ致命伤。同L道理Q较出名的语a的技术资料经常更斎ͼ而不太出名的语言的技术资料往往是陈q老酒Q试问这U比较有何公正性和意义可言Q?/P>

Q: 别h可是l常拿他们的语言与C++比来比去Q这让你感到不自在吗Q?/P>

A: 当这些评比不够完_或者出於商业目的,我确实感觉不爽。那些散布最q的比较性评论大多是由某U语aQ比方说Z语言的拥护者发表的Q其目的是ؓ了证明Z比其它语a好。由於C++被广泛运用,所以C++通常成了黑名单上的头一个名字。通常q类文章被夹在Z语言供货商提供的产品之中Q成了其市场竞争的一个手Dco人震惊的是,相当多的此类评论竟然引用的是那些Z语言开发厂商的员工的文章,而这些经不v考验的文章无非想证明Z是最好的。尤其当评论之中实有一些零零散散的事实...Q特意选择出来的事实虽然好像正,有时却是完全误导?/P>

以後再看到语a评比文章ӞL心是谁写的,他的表述是不是以事实Z据,以公正ؓ准Q特别是评判的标准是不是Ҏ所引述的每一U语a来说都公q_理。这可不Ҏ做到?/P>

我说q了Q真正精譬的技术评比,Ҏ相当E度的研I者,是很有h值的Q但我很在论坛上看到精?─ 论坛q能有什麽精品,99% 是打屁闲谈没有营ȝ文字。我们每每在其中看到偏见、我执、以及最後免不了因擦伤而引LZ。这真oZ感。这些h把时间拿来学习,多好。奉劝各位少花时间瞎打屁Q多花时间学习,看些真正的精典,别动不动在论坛上提问,也别动不动就挂在论坛上看别h的瞎打屁?/P>

不但评比性的话题Q大家喜Ƣ强出头Q其他话题,情A性的反应也很多。中国强盛之道,眼前彷佛全压宝在 IT产业Q尤其Y件工业)上面。程序员被赋予了q多的期许,E序员也自我膨胀了许多。夹杂着民族M或个人好Ӟ看到不满意的Z物,号召大家「黑QhackQ」过厅R这是什麽心态?比拳头吗Q说实话Q就要比拳头大,「黑」个|站是什麽尺寸的招_Q网路是个大暗室Q君子不ƺ暗室?/P>


杂志定位在哪?BR>CSDN上头Q前一阵子曄请大家就《程序员》的定位问题l意见。很热闹。我不知道刊物掌门h在看了那麽多之後Q有没有收获。猜x没有 ─ q有也恐怕不大?/P>

像面对书籍一P读者最直观的感觉,是要看他所需要的东西?00个h?00U需求,q样的询问得不出ȝ。隐性读者、不上网的读者、不投票的读者、不写帖文的读者,你又如何知道他的x?/P>

我以为,只需把握一个原则:永远比大众水q高一个档ơ,扮演引导者,带领读者接触前沿思想与宏观视野,那就是了。读者本w会成长Q不Z把刊物定位在实质技术的哪一个层ơ,都会有h不满I今年的读者成长了Q不见得明年q是你的读者。唯有保持前沿思想与宏观视野,时常导入新的技术Ş式、新的思维、专家的见解、意见领袖的看法Q才能够长期吸引读者,q对许多Z及整个技术开发环境做出长久的贡献?/P>

国大物理学家费|曄批评物理评教学。他说老师老是在传授解物理习题的技巧,而不是从物理的精层面来启发学生。这一Ҏ不是可以l刊物经营者和刊物读者一点点启发Q?/P>

以此观之Q就我个人的专长领域QSTL 之父访谈录、算法大?Donald Knuth 采访、C++/OOP 大系、GP/STL 大系、将标准C++视ؓ一个新语言┅以及一些L性、大局观的文章Q是我认为最好的主题。此中有侯捷自己的作品,唔,我向来不客气?/P>

当然啦,太Ş而上的东西是不行的,太过抽象的东西不Ҏ被接受。抽象层ơ愈高,人的自由度愈大,但抽象思考是层次高的人的专利Q要普罗大众能够接受Q还需兯l节E做辅助?/P>

如何长期保持h前沿思想与宏观视野的E源Q与外国杂志合作是一个既快又好的办法。每一期《程序员》最前数都有当期重要外文期刊的前沿摘要Q可见《程序员》编辑群一直与外文专业期刊保持着阅读上的接触。要挑选合作夥_心中一定有谱?/P>

当然啦,与国外合作涉及经贚w题。旁人(其读者)很难体会或换位思考经费上的种U困难。就像有人痛心疾首义正词严地埋?CSDN 速度慢得像蜗牛,却可曾想q网站的资源从哪里来。向你收费,你接受吗Q台湑ַl倒掉很多很多家着名的|站Q我{着看免费的服务撑到几时?/P>

要刊物宏观耐读Q读者们也得成熟些。一很好的读者,才拱得v一本很好的刊物?/P>

下面是一读者来信:

现在技术发展太快了Q国外(甚至印度Q在实现「Y件工业化」的时候,大陆Q至我周围是这Pq停留在作坊手工打造的水^。我认ؓ未来的世界不再属于「个人数字英雄」,软g工程g比一两项技术更q切。以您的大局观和丰富的阅历,对这个问题是否有不同的看法,不知您是否愿意就此从技术(或其他)角度写篇文章发表您的见解?/P>

软g工程Ҏ个Y件工业的提升Q至为重要。但是一个程序员要修l到寏VY件工E」这个题目感兴趣Q非三五载(甚至更多Q不为功。我的意思是什麽呢Q我的意思是Q这cMc、这cd兗这cȝ站、这cd物,在一个嘈嘈切切、急功q利的环境中难有生存I间。这是ؓ什麽蒋涛先生想要将《程序员》杂志导向Y件工E主题时Q我对他兴v巨大的尊敬与忧虑的原因?/P>

带一提,《程序员》的文字水^一直以来带l我「阅ȝ乐趣」。这个评语我从来有Z用在台湾的电脑刊物或电脑书籍上。比起台湄电脑ȝQ这里的文字有深度多了?/P>


LQw进没信?BR>只要上网看看E序员出没的论坛Q你׃看到一片Qw与焦虑。反映出来的是没有信心?/P>

「C# 推出QJava 死」,「Java 演进QC++ 亡」,?Net 推出QVBE序员死定了」,「Kylix 推出Q大夥儿快学」,「Delphi 持箋新版Q哥儿们别怕」,「我刚学VCQ怎麽它就出场了」,「MFC 真的要过时了吗」┅。诸如此cȝ问题Q不知该归类aq是童语Q?/P>

很奇怪也很感叹,Z麽大家对q类问题如此感到兴趣。那透露ZU肤?─ 没有深刻了解技术本质,因而݅汲营营慌慌张张惶惶惑惑於新工兗新事务、ƈ且认为新的大概一定都是好的。对自己没有信心Q对整个环境也没有信心?/P>

有深度的E序员绝对不会在意这U事情。当Ӟq不是早晚三柱香׃事保q_。ƈ不是告诉自己别在乎别在意Q就真的能够不在乎不在意了。那必需是发自内心,怸自有丘壑的一U笃定,有着好的本质学能做靠山?/P>

台湾 BBSQ连U)前阵子也有许多热烈讨?Java, C#, C++, .NET 的脓信。我把我最ƣ赏的一引g。其最後结语,扩张CQ何领域都是合适的?/P>

发信? algent@kkcity.com.tw (云), 看板: programming
?? 一些想法Re: 不懂,业界一直喊Java,在喊些什?.."
发信? KKCITY (Sun Feb 18 12:55:49 2001)

以目前台湾业界的情Ş来看QCC++ 应该是想成ؓ一个Y体工E师的基本技能;x JavaQ如果熟?C++Q学 Java 应该׃了一个月的时间?/P>

以我个h的观点,Java ?OO E度是胜?C++ 的,而且在这?Internet盛行的年代,效率的瓶颈在於网路本w的频宽而不在单机执行时的效率,Java 所提供?Collection framework 是非常威力强大的E式设计工具Q又内徏了对 Multi-thread E式的支_丰富?class library 让h在设计网路、资料库┅的相关软体时无後顾之忧?/P>

C++ 可能是过d多年以来最重要的程式语a之一Q它的效率显然较JavaZQ但在撰写需要安装在Internet上成千上万种不同厂牌的机器上执行的程式时Q相ҎJava可能׃是最好的解决Ҏ?/P>

「目前」不需要以 Java 来开?DeskTop 上的应用E式Q因为「当下」而言 Java 撰写的程式相Ҏ C++ 会占据更多的记忆体且执行效能不嘪?/P>

我们不能期待免子游得比鱼快,也不能期待鱼飞得比鹰高?/P>

工程上的需求得各U场合有不同的适合的程式语aQ不必费心去批评 A、推崇B、打?C。基本的理论比这些事重要多了?/P>

VB 死QJava 亡QC++ 被 Java 取代...Q这很重要吗Q我用Java 也用 C++Q即使明q它们全都被 Java++、C++++、Lisp++、Forth++取代Q何有於我哉QFFT q是 FFT、Dijkstra algorithm q是Dijkstra algorithm...q是别太担心q些事了...

侯捷除了偶在 BBS 上自说自话外Q绝回应或叁与讨论。看了上信Q忍不住回了一帖:

作? jjhou (jjhou) 看板: programming
标题: 一些想法Re: 不懂,业界一直喊Java,在喊些什?.."
旉: Fri Feb 23 21:12:14 2001

同意你的看法。写得非常精采?/P>

人到了一个层ơ,才会L考事物的本质是什麽,不被面的工hpȝ?/P>

熟练工具是必要的Q但工具的演化汰换,不是大家在这里关起门来喊爽就好?/P>

Donald Knuth _「语a持箋演进Q那是必要的。不论现在流行什麽语aQ你都可以肯定十q二十年之後它不再风光。我L在自q书中写些不时髦的东西Q但q些东西却值得後代子孙记取。」(注:以上局部是《程序员?000/12 的译文)

DDJ 1996/04 p18:
"Language keep evolving, and that is necessary. ...Whatever computer language is in fashion, you can guarantee that whitin a decade or two it will be completely out of fashion. In my book, I try to write things that are not trendy, but are things that are going to be worth remembering for other generations."


q求新知固然是一个计机从业人员该有的态度Q但是追求新工具与充实固有知识两者之_应该取得一个^衡。过犹不及!

再说Q凡走过必留下qV你C的Q何努力,只要它是扎扎实实的,q不至DI。技术是有篏U性的呀Q技术L触类旁通的呀。你?MFC ?OWL 没有篏U性,我说有,message map 的原理不一样吗Qframework 的工作原理不一样吗Q?/P>

我个人ƈ非Q何语a或Q何工hM技术的狂热者,我是务实z。对DU熟E多U(属性不同的Q语a的hQ我充满敬畏q保持工作上的距R要_N一个语aQ自己能发挥其最大效能,不是件容易的事,需要不精力的投注?9.99% 的h都是凡hQn为凡人的我们Q把旉用来_N一Q或二)U适合其工作性质的「语a」,比泛泛认识多U「语法」,要高明得多,回报也大得多?/P>

真的Q还是别太担心谁兴赯亡的事了吧?/P>


天才的沃?BR>教育永远是我最兛_的议题。教育的重要性绝对不亚於产业。没有好的教Ԍ何来好的产业人才Q?/P>

学校教育׃提了Q那不是侯捷能够着力的地方。虽然我也在大学教书Q但一q不q教育数十位学生Q媄响能有多大?书籍的读者动辄数万hQ刊物的读者动辄数十万人,q才是有大媄响力的地斏V?/P>

自修教育如媄随ŞQ打你离开学校p随你一辈子Q重要性远胜於学校教育。谈到自修,M开ȝ ─ 各种型式的书c和刊物。在׃E序员这一行,书籍和刊物的情况如何Q?/P>

下面是一读者来信:

我记得您说过Q到一个地区的书店去逛逛,对这里的IT技术水q_知道大概。这话太得我心了。我学习软g技?q_花在C的钱有一万二千(人民币)以上Q如今回头来看,l大部䆾是垃圾。以前曾l担心:若要到外地工作,q麽多书怎麽带走Q现在则是一U心痛的LQ因为值得带走的书只够一提。学习IT之初Q谁不想在业上做出一番成成WQ但多年之後回首Q则恐怕都会ؓ自己当时所处的教育环境痛心?/P>

x计算Zc的滥、低劣,我收到太多太多的读者反应了。以上只是冰׃角,有兴的读者请上侯L站看个饱。有些出版社甚至以出烂书dQ看看这信Q?/P>

您想必看q蒋先生在《程序员》上写的文章Q知道所谓IT出版四大家。蒋先生可能於CgAQ有些地方还没讲透。例如其中的XXX出版C,在译作方面现在已l是一块榜L制滥造的榜样?/P>

再看q封信:

我在您网站中看到了有兛_xxxx 出版C评hQ深有感慨。其实该出版C是大陆IT业引q外文书c的ȝQ我们这一辈程序员(92q以前的)是读该出版C译着成长h的(我至还有两大纸xxx出版C旧书Q,在那个时候,差不多所有的计算机类图书都是它们引进q翻译的Q现在看来,那个时候的译质量差得无法忍受Q比Incide VC++ 5/eq差许多Q,但我们那个时候已l很满了,毕竟有比没有好。现在大家对xxx出版C批评Q我x竞争的结果,因ؓ大家看到了更好的译着Q有了比较。总而言之,xxx 出版Cֽq的特点是大量翻译,草草出版Q让U技人员能够在尽快的d优秀作品。这U作风显然已l不合时宜了Q或者说它已l完成了它的历史使命。我现在当然也不象从前那L买xxx 出版C书了Q因为有了更多的选择?/P>

q封信让我跌入回忆。台湾也曾有两家出版C,有过同等劣质的作法。这两家恶诏满盈的出版社Q一名莹圃,一叫松根{两安关门了。他们的作法都是Q快速而大量地译外文书。由於速度快,也由於选材之中不乏好书Q所以曾l拥有一定的市场。怎地都关门了Q因者只能被一ơ两ơ,不会永远当傻瓜。这L出版心态摆明没有长q打,只想捞一走人,不关门才怪?/P>

我们可能因ؓQ垃圑֠中多捡q一些经q修补尚U堪用的东西Q而对L刉这些垃圄Z生一U奇怪的情愫。东西明明不好,但我们从中吸收了一点点M。该谢他q是该恨他?

该唾弃他Q?/P>

q些商h之所以大量而快速地引进外文书,因ؓ有利可图。有利可图是好事Q但他没把他该做的事做好。他们放弃品质而无所惧,因ؓ他们知道Q在怎样的时I景下可以怎样L地赚钱。大陆出版界朋友告诉我,谁谁谁(都有名有姓)很轻村֜在几q里pL聚了几百万h民币的n家。几百万人民币呀Q我的天。这也算 IT 产业吧,果然是一片红火,鸡犬升天?/P>

因努力做事而致富,应该得到我们的赞和福。可q样的出版社Q花更大的功夫赚更多更长q的׃们不要,因ؓLph不费劲儿。百分之一的h可能从这些垃圾中吸收C些养份,癑ֈ之百的h从中感受了阅ȝ痛苦。谁知道从中被误导的人又有百分之几?C的钱我们没少花,得到的正价值却是那麽少Q痛苦指数那麽高?/P>

q位读者说『总而言之xxx 出版Cֽq的特点是大量翻译,草草出版Q让U技人员能够快的读CU作品』,又说『它们引qƈ译的,现在看来Q翻译质量差得无法忍受』。喔Q一本优U的原作,l过无法忍受的翻译质量洗C後Q还会是一本优U的作品吗Q待人宽厚是dQ但是刻意制造馊水a让h吃坏肚子者,不值得Z们说话。你说『它已经完成了它的历史命』。不Q他们从来就没有历史使命Q也没有使命?/P>

如此「仁厚自持」而且忍耐度奇佳的读者,相当E。绝大部份程序员谈到计算机图书,都是斑斑血泪的控诉。《程序员?001/03 p119 可不有一「计机图书出版商的陷阱」?/P>

读者来信写道:

鲁迅_未有天才之前Q应该要先营造天才的土壤?..您的心情我确实能够深ȝ解(q大概就是堆在墙角那几百本垃圾书的最大A献吧Q?/P>

「天才的土壤」,嗯,鲁迅说得好。不正应该是出版C职志吗?我们却能向谁说去Q其实我们也只是希望有一些好书造就一些资质不错的E序员而已。前一阵子才沸沸扬扬於印度E序员与中国E序员的比较Q我们哪企望天才Q不q就是希望培M些扎实的人才而已?/P>

看倌也许奇怪,书不好,侯捷Z麽不把矛头对准作者,却大骂出版社。哇勒,我早抱着「得之我q,不得我命」的卑微态度Q不敢期望创作性中文好书。上面我说的Q以及读者最痛心N的,是翻译书的低劣水q뀂h才济的中国Q怎麽可能找不到够格的译者?如果不是出版C抢钱抢短心态,会造就一大批劣品吗?我能不怪罪出版C֐Q?/P>

到头来,q是要靠自己。「计机图书出版商的陷阱」一文最l是q麽说的Q『记住,您花的是自己辛苦挣来的钱Q所以千万不要浪费在没有用的东西上。对於出版了优秀图书的出版公司要有所回报。买他们的书Q给他们写信Q让他们知道你在想什麽,你需要什麽。?/P>


良性@?BR>一个体pȝ建制Q需要从底层到顶层的坚实构筑。不论是 C++, Java, .Net, OO, UML, Windows programming, Linux programmingQ每一个主题欲成就一个完整体p,都需要一大套书。拿C++/OOP 来说Q就得涵盖语法语意的、物件模型的、专家经验的、设计样式(design patternsQ的、入门的、进阶的Q作为叁考工L┅。拿 GP/STL 来说Q就得有 GP 泛论型的、STL 源码剖析的、STL 应用大全的、STL 规格大全的、STL lg设计的、其他泛型技术的┅。拿Java 来说Q就得有语言核心的、物件导向的、多l编E的、图形介面的、网路应用的┅。对生手而言Q不先把底层的东西弄清楚学习高层的抽象Q必会成为空中楼阁,于形式。对熟手而言Q缺乏抽象思维Q意呛_ơ上的停滞?/P>

写作、翻译、乃x出版全体pd书,真的是一仉要目光长q、意志坚定、带点理惌彩的人,才做得v来的志业?/P>

如果q样的hQ这L出版C,没有得到大家理念上和实质上的支持Q谁会投入这U傻事?

我个Z向是高品质高价位的坚定信奉者。高品质高h位是生者经营的最大诱因。因为努力做Z高品质,所以得享高价位带来的高利润Q天l地义。否则谁要费心去做高品质Q慈善家吗?ȝ吗?

Ҏ消费者,高h位当然o他不舒服。但是你应当思考是否物有所|甚至物超所倹{拿英文书ؓ例,USD 49.95 一本的 The C++ Standard LibraryQ或?USD 49.95 一本的 Generic Programming and the STLQ完全物所倹{当我了解这些书的h|q他们再贵两倍,我也要买。有人拼d沌Q我可是要拼命买好书。现实地_g「知识经」喊得震天响Q好书带来的知识不正是赚钱工具吗Q对赚钱工具气Q是不是和自p不去Q?/P>

下面是一读者来信:

相较日本无论是OM家、文学作家或是偶像歌星、媄星的客观条g来比较,在台湾,wؓ专业作家竟如此难为?有h可以q夜搭帐h队买看演唱会,有h却可以论斤计两地讨论|与书价高低。或总们不知道Q一本介lCE式语言的入门书Q在德国索h100 DM (UNT$2000)。因此我的d国同事们购书前必定R询意见或叁考书评。书仯不低Q但其读书风气仍不亚於日本?

q里点出了一个重点:书h很高Q於是大家慎选好书,重视书评。下面是另一读者来信:

我是一名大陆的读者,同时也是一名计机的初学者。我在网上看到网友都十分推崇您的着作及译作。知道您的作品《深入浅出MFC》第二版卛_在内陆出版,我决定买q本书,q与华中U技大学出版C֏了联pR从那里知道您今q还会在大陆出几本书Q我非常高兴Q但在知道了您对h的看法後Q又有些失望?/P>

大陆与台湄l济水^是不同的Q作为普通的工薪阶层Q购买力也是有限的。我们这里,各类图书中计机cd书的h是最高的Q图书页码的最高位与书L最高位基本相同 -- 700늚书,h?0?0元之_1000以上的Qh格在100元以上。这是目前大陆书L大体情况。如果按您所_350,书h80元,在这里算是很高的h了,q种h的书Q只能看Q不能买?/P>

"春蚕到死丝方,蜡炬成灰泪始q?Q教师工作被我们看成很神圣的职业Q燃烧自己,照亮别h。我xZ的目的,也是惌更多渴望知识的h受益于它Q少走弯路。作者,我们也希望能够看到更多更好的书。但是在一定历史时期内Q购买力与h格应当有一个^衡,350?0元的h实太高了,如果能够降到60元以内,我相信大多数读者可以接受?/P>

您的书的品质很高q是大家的共识,从hg应当与其它书区别开来,但书价也不宜太高。名牌服装走高h位的路线Q当然可以提高它的nP昑־它档ơ很高,但是太高的hg它脱M主要的消费群体,大多Ch只能在口头上谈论它,却只有极数的h会把它穿在n上。书c与名牌服装不同Q只有经q很多读者长旉的阅M後,才能够证明它的h|如果很多人都知道侯先生的书质量很好,但是却很有q(因ؓh问题Q,那岂不是一U悲哀?/P>

我最不乐意看到「xxx 늚书,售h xxx 元」这U观c一本书的h值在内容Q不在页数。真要这麽算Q每本书我们都应该检视一下其字型大小、行距字距、硬拷图多寡、留白多?-- 因ؓq些都关pȝ|。如果大安接受|和书L固定比例Q肯定会有大量Q滥的书跑出来Q不是现在的情况)?/P>

不必q麽累。一本书值它的hQ就乎ͼ不值它的hQ就别买。很单的逻辑?/P>

我们N能够拿着量一件亚曼尼用了多少码布Q来军_它的h吗?或是拿着量一张梵h几号Q来军_它的hQ我能够说因为我ȝl球花比梵谷的鸢花大两倍,所以我应该卖他的两倍hQ?/P>

C西不能光看有形;那无形的往往更重要。买书不是买U。正hD必须建立h?/P>

当然很有可能你认Z名牌服装或名ȝ人都是疯子。你要的只是布和框。那表示那些物品在你心中不值那个h。很好,你有你的评hQ你有你的选择?/P>

我不打算在「引喅R(例如名牌服装或名画)上面多着墨。引L此失彼的时候,W战都是q样打v来的。各位知道我要强调的是什麽?/P>

350늚书,不应该一定卖 80元,也不应该一定不?80 元。这要看350늚含金量有多少。况且我从没说过侯捷?350늚书要?80元。但所有的可能都存在?50可以是180元,也可以是80元,也可?530 连 18 元都不倹{请不要再以|做ؓ书h的依据了?/P>

教师的工作很圣Q但「燃烧自己,照亮别h」太沉重。「燃烧自己」,呵呵Q说h多麽ҎQ做h多麽痛苦。某人的工作对众人有益,他会很开心。但你要他燃烧自q亮别人,除非圣hQ否则不q的。我很乐意照亮别人,却不想燃烧自己。燃烧自己,我只能照亮别Zq_把自q֥Q我可以一辈子照亮别h。抬出大帽子Q会让有能力写作好书的h畏惧不前?/P>

请大家接受这L观念吧:书的价值在内容Q不在厚薄,不在|。h值媄响h|价值带动h根{接受这L观念Q便是对好书的所有出力者致上敬意与实质支持。如果大家慎选好书,10 本垃圾书的h格支撑两三本高hQ其实是适hQ好书Ԓl有馀。走~程q条路,谁手上没?10 ?20 本垃圾书Q当大家慎选好书,支持好书Q尽它h较高Q,׃带动书评风气Q带动优良写译风气。这Ҏ有的人都好。不需有h燃烧自己Q大安被照亮了?/P>

当然Q高价位的薄书很可能带来盗印与媄印的歪风。但无论如何Q我是坚持己见不会退~的。如果大环境真的无法提升Q好书离开了,好h退ZQ最後损q是谁Q?/P>

不论各位怿不信Q侯捷企图以个h影响力(如果有的话)建立优良的技术写作大环境Q对台湾如此Q对大陆也是如此。「问渠安得清如许Qؓ有源头活水来」,要让大家有更多好书可读,p有源头活水注入;要有源头zLQ就要有更多诱因吸引更多才能之士到技术写译领域来。更多的诱因是什麽?让他们知道,好作品可以突出,可以区隔Q讲白了是有好hQ,不会牛骥同一皂,q就是一U诱因。不Q这不算诱因Q这Ҏ是一U基本道理?/P>

优质的书使读者受惠,优质书籍所带来的高报酬使作者、出版社受惠Qƈ吸引更多优秀人才到这个领域。Ş成一个良性@环,大家都受惠?/P>

另外我要大陆出版C,善用你们独特的「媄印版」。台湄计算机类译书,由於也是良窳不齐Q窳多於良,曾有读者开玩笑Q出版社取得授权後,不要译了Q直接以原文出版Q读者看得高_售h又得以大q下降。想来这是大陆的媄印版Q在台湾是不许的Q。既然翻译书已到了千夫所指的地步Q何不乾脆多多引q媄印版Q不是要抢短抢快吗?q个最快了Q读者也多一U选择?/P>


译Z什麽问?BR>计算机翻译书的一个大问题是,译者没有时_或正的心态,或够的中文能力Q将译稿一看再看,一改再攏V中文有一个缺点,那就是名词本w表C出复敎ͼ动词本n表现不出时态。多数时候这可能不是很重要,因而可以忽略。但某些时候它们占有关键地位,於是一个精准的英文句子Q往往需要译者额外花很大的心力,才能_ևC中文表达出来Q那麽译者就得有_的时间和_的中文能力。而唯有译者在专业技术上具备_的素养,才能够看出某些隐微地方对理解之正性有关键性媄响?/P>

英文里头的子句如果又臭又长,别说中国人,老外也得费一番手脚才看得懂。看看这个(C++ Primer 3/e, p730Q:

[code..] where the conditional test if (this != &rhs) prevents assigning a class object to itself. This is particularly inappropriate in a copy assignment operator that first frees a resource currently associated with the class in order to assign the resource associated with the class being copied.

我的译文是:

[code..] 其中的条件测?if ( this != &rhs ) 避免?class object 指派l自己,因ؓ「自己指z自己」这个动作,Ҏ那种「先目前系l於自己w上的资源释放掉Q以便稍後将该䆾资源再系l於卛_被拷贝的那个 object w上」的 copy assignment q算子而言Q尤其不合适?/P>

只需加几个引P标示出子句,好看多了。寻怸L前月Q才有梅׃不同。如果没有引可助,你试译看看会是什麽样子。别Ҏ说「根据教育部规范Q上下引号只适用於强调专有名词或Ҏ语气┅」,规范是死的,人是zȝ呀。只要能够灵z而正地表现出文意,是好办法。小q_志不是说Q管它黑猫白猫,会抓老鼠的就是好猫吗。阿波罗13L月计划失败时Q太I内的备用排气|规gW,地面控制中心要求宇航员必L办法方形罩子塞q圆形的排气中Q否则大安得因为饱食二氧化死於太I。这时候还想什麽规范?脑筋灉|炏V?/P>

另一个中文表辄大缺ҎQ动名词不分。操作是名词QoperationQ,也可以是动词QoperateQ;实现是名词(implementationQ,也可以是动词QimplementQ;叁考是名词QreferenceQ,也可以是动词QreferQ;h是名词(requestQ,也可以是动词QrequestQ;委托是名词(delegationQ,也可以是动词QdelegateQ。当动词名词h一L时候,造成阅读上的错ؕ。於是你可以看到q样的句子(取材自《设计模式》p14Q李英军{译Q机械工业出版社Q。请怽先看原译Q能否就中文语句l构分析出其大致意思:

(1)原译Q只有当委托使设计比较简单而不是更复杂Ӟ它才是好的选择?/P>

(1)侯译Q只有当「委托方式」简化了设计Q它才是一个好的选择?/P>

(1)原文QDelegation is a good design choice only when it simplifies more than it complicates.

(2)原译Q委托方式ؓ了得到同L效果Q接受请求的对象自׃l被委托者(代理人)Q被委托的操作可以引用接受h的对象?/P>

(2)侯译Qؓ了以「委托方式」获得相同效果,「请托(requestQ受理者」将自己传给被委托hQ自己得以让「被委托之操作行为」取用?/P>

(2)原文QTo achieve the same effect with delegation, the receiver passes itself to the delegate to let the delegated operation refer to the receiver.

我没有一别苗头之意。我的译法不见得最高明。况且翻译一整本书所需的各U前後呼应的考量Q远比光译一两个句子复杂许多。只是既然我提出了问题,我总要提出自己的解法,l大家叁考评量。对於机械工业出版社愿意出版q样一本经典,李英军先生等人愿意翻译这样一本高阶而吃力不讨好的书Q我是带有敬意的?/P>

另一个翻译上的问题就是大家往往在计机cM中硬套一般字典查来的词汇Q没人敢H围。要知道Q一般字典ƈ未考量电脑技术,更不可能考虑C下文QcontextQ。太多hq做错Q不做不错的心理Q一昧紧跟字典,不敢变动Q才会造成目前许多译词不够理想Q却动弹不得。我印象最深刻的是q几个字Q?/P>

instanceQ台湑֒大陆均有不少为「实例」。这个「例」字Ҏ不好。台湄x为「案例」,更不妥当。ؓ什麽这麽译Q因为字典查来的现成词汇是这栗所?instance 是Ҏ某个东西Q可能是实物Q可能是某种表述Q生出来的一份实际物体。我认ؓ译ؓ「实体」是很合适的。根?class 产生出来的便是object实体Q根?class template 产生出来的则是class 实体Q根?function template 产生出来的是function 实体。根据可执行档(executable filesQ生出来的Q则是一?process 实体?/P>

paradigmQ台湑ָ译ؓ「典范」。ؓ什麽?喔,字典查来的现成词汇。有时候这栯有点道理Q例?paradigm shift 叫做「典范移转」。问题是Q何谓「典范移转」?很难望文生义是吧。把 generic paradigm 译ؓ泛型典范Q更是oZ知所以。我们日常用语里也有「典范」一词,我们会说某某人是国家C会的典范,那和计算机术语里头的 paradigm Ҏ不是同一个意思。根?paradigm 在计机术语中的实际意义Q我把它译ؓ「思维模式?─ 典型的、根本的思维模式?/P>

读者来了这样一信Q?/P>

我向您讨教一个翻译风格的问题。正如您所_英文技术书c最隑֜长句子,因ؓ英文的句式组合Ş式比中文大大丰富Q理解v来已l费力,译成顺口的中文更难。我有时遇到q种句型Q切分组合,L覆去掂量Q还是觉得中文不忍卒诅R您认ؓ此时 (1) 我可不可以放?"? 而求 "?Q也是说略掉部份句子成份以保全译句的通顺Q还?(2) 务求原义表辑և来,宁可中文句子不顺畅也在所不惜Q更有甚者,有时 (3) 某些句子无关宏旨Q却异常难译Q可不可以乾脆略q不译?您的看法是什麽?

Q各位有没有注意刎ͼq位读者的中文很好。「切分组合,反覆掂量」这几个字用得多_传神Q我的看法是Q译者有权利也有义务通权辑֏Q但也必Lq䆾能耐才行。因此你的第一个问题我认ؓ可以Q你的第二个问题我认Z可以。你的第三个问题我认为可以,但需谨慎ZQ莫因译者本w水qI牺牲了某些东ѝ?/P>

U技译应该务求义译而非字译。信与达Q应从整个句子或甚至整个D落来看Q不是从一个个单字来看。技术文章和文学多有不同Q译者最重要的Q务是正确传达知识Qƈ量减少读者的吸收困难?/P>

到底Ҏ的底限在哪里?我这麽认为,译者於技术层ơ上愈有把握Q便享有愈大的弹性。只要技术层ơ够Q有把握正确了解q传达了原作者要表达的技术,那麽Q文字上不必字字拘惔?/P>

中文在科技表达中ƈ非一无是处。中文有一个优点,是资讯密度高,很多时候精漂亮的一行中文,可以表达出「子句夹带子句再夹带子句」的三行冗长英文。中文有优美的词M取之不尽用之不竭的典故、成语、俗谚,如果善用它们Q冰L技术文字一下子p有阅ȝ乐趣。一本烂译本Q会让读者诘屈聱牙,痛苦xQ但是一本好译本Q能使h如沐春风?/P>

Ҏ说一句,正确的心态、够的旉、充裕的中文表达能力、水q以上的专业素养Q是造就好译本的基本元素。现今情况如何?话说回头Q好译者的报酬几何Q你愿意多花炚w表示你对他们的付出的认同吗?


健康的选书心?BR>以下谈到选书的心态和作学问的态度Q由於都以读者来信展开讨论Q因此避免不了提到我写的《深入浅出MFC》。我要谈的问题,其实不局限於某一本书Q或某一U技术。就像这文章先前D的许多例子一P都是可以攑֤来看的?/P>

读者修书一如下:

2个星期前好不Ҏd了您的大作,让我对MFC的认识多了不,不过一炚w憄是从您的书里q不能学到如何写一个具体的E序Q仅仅是明白了MFC的“包装技术”。本来我q以为又上当了呢因ؓ我买q本书的目的是要学习用MFC来做E序?..一个偶然的机遇让我得到?Jeff Prosise的《programming windows with MFC》,q才发现老师您的书是多麽的重要,假如没有您的《深入浅出MFC》我又怎麽可能programming with MFC呢?...您的书救我于水深火热之中Q带领我冲破MFC的条条封锁线?/P>

虽然q位读者最l对侯捷和侯L书以感谢和赞作Ӟ但我颇有感慨?/P>

读者往往以最直观的态度来审视一本书的h|以最直接的方式来表达他的爱憎。但不能凡是不需要的Q一律视为灌_凡不W合需求的Q一律视为欺骗。这不是一U健L选书态度。即使你最後ƈ没有发现《深入浅出MFC》「是多麽的重要,救我于水q热之中,带领我冲破MFC的条条封锁线」,q本书又何尝在书名或内容ƺ骗q你Q你「以为又上当了呢」。再者「我买这本书的目的就是要学习用MFC来做E序的」,可是你若qMFC与application 的第一U接轨都不了解,照着葫芦ȝQ能写出多好的程序?

我不是责怪这位读者,只是q封来信代表某些现象Q让我心有感慨。下面是另一U偏ȀQ?/P>

您的书我觉得有些无用的原理讲的太多了! 你所写的q不是真正的教h怎麽用VC,而是教hVCq做是怎麽栯行的! 其实很多读者真正关心的问题q不是在q里! 而是在怎麽对用VC设计出真正出色的E序!

读者永q只惌看自己想看的内容Q这一点很自然。但是你不想看到的东西ƈ非就是「无用」,它对别h可能「很有用」。再_qMFC与application 的第一U接轨都不了解,照着葫芦ȝQ我不知道你能写Z麽「出色的E序」。只要出一点差错,你连除错的能力都没有。开车是很简单的Q开车上路遇到各U突发状况而能应付q排除障,才是困难的地方,才是技术的表现?/P>

下面是两台湾读者的意见Q有点年代了。当然我必得先说明,抱持q种态度的读者,比例大约在百分之零点零一?/P>

读者意见一

q本书包装太厚。不该有的东东太多,附录A所列的无责M评,在我x也是多馀。因书评在RUN!PC早有提及Q後来也Z无责M评第三集Q因此实在没有这个必要。想来是侯先生要增加书的厚度Q有以致也?/P>

读者意见二

书评不应该放在这本书里吧! 因ؓq些东西而让书太厚实在有点┅q些灌水的东西共计有Q?BR>(a)1-16늚读者来函:?6?BR>(b)长的序Q嗯Q这应该没有关系
(c)843-872늚无责M评:?0?其实里面有一些发人省思的东西Q还?
(d)873-914늚Scribble原始码:?2?q最严重Q几乎没必要的东?
(e)915-920늚VC范例E式一览:??很可惜,如果再多加发挥的话很有用Q?BR>但是侯Sir只是列个标题Q连说明都是英文Q和看Help档没什麽差?
pQ?4?/P>

不是我无聊找_您可曄到有哪本书有近一N的赘?更别题书中动不动列出四五页的原始码了。这些在光碟上都有,何必费U张? 不过消掉q些赘肉Q这本书q是有它的h值┅x书中~少的部份,我认看您如何d位这本书?BR>M能要求一本书把所有Program的东西讲完吧! 以探讨MFC的内部而言Q本书没什麽好批评的了。总而言之,q本书该不该乎ͼ我想q是肯定的。但是如果书能瘦炏V售仯低点Q那更好了?/P>

说来说去Q原来是Z「如果书能瘦炏V售仯低点那就更好了」。这便是|和售L扯观念下的可怜受完,他们扭曲了书c的价|也严重扭曲了自己该有的正hD。如果我告诉q些读者,掉?00늚所谓「赘肉」,售h一h NTD 860Q恐怕他们又要对q些「赘肉」热情拥抱来一个亲亲了。真的是q样Q这本书是先定hQ最後ؓ了给读者更多资讯和更大的方便,我才加上那些「赘肉」的?/P>

q一c读者,站在敌对的立场,看待出版C֒作者,qL每一个h都在觊觎他的钱包Qƈ且认为对他无实质帮助的每一(可能只是因ؓ他已看过Q都是被L灌水的结果,都是Zƺ骗他的钞票。这L读者在杯弓蛇媄的压力之下,忘记了没有Q何一本书是ؓ个h量n打造的Q也忘记了其他h可能有不同的需求,完全以自我ؓ中心?/P>

q一cM成熟的读者,实在是当前劣品充斥下的牺牲者。老实说我个hq不喜欢他们成ؓ我的读者。只是,读者有选择作者的权利Q作者却没有选择读者的Z?/P>


正确的作学问态度
前面两篇来信透露Z个疑惑,《深入浅出MFC》是不是一本对VC~程有帮助的书。我不是要在q里夹带推荐该书Q相信我Q我不需要如此)Q而是想透过MFC与VC的关p,引申谈谈作学问的态度。如果「作学问」太高远了,那我们来谈谈「学习」的态度吧?/P>

以下是一读者来函:

我有个疑惑,惌你帮助。我们今天学C/C++Q明天学MFCQOWL(如果行的话)
後天学C#QJAVA...如果 WINDOW ?X WINDOW 淘汰Q岂不是都要从头学过Q有没有必要把一切搞得如此精通?同样的目的,Z麽不用更方便单的快速RAD开发工P而非要以ȝJ杂作ؓ乐趣Q和体现水^Q是否搞错了方向和目标?我认正是目前大陆Q台湾我不了解)软g开发的一个错误的方向?/P>

所有同质的技术都有篏U性与共通性。信中提到的三组东西QMFC, OWL, 或是 Windows, X Window, 或是 C++, Java, C#, 都有cM性与共通性。技术是会篏U的Q有了某U经验,学习新技术会快很多。经验愈多,学习愈快。所以我常喜Ƣ说「触cL通」。如果每U技术都得从新学习,大家三五q就得归零一ơ,人类世界׃会在 20 世纪像爆怼地进步这麽快?/P>

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

既然信中提到RADQ我也谈谈我的看法。我曄写过一文章,把RADMؓ「匹夫无|,怀璧其|」(见侯L?1999/01/26 怀璧其|?RADQ,各位看看。我很赞成用RAD。我书写MFC书籍Q探讨MFC技术,但从来没有认为它最好,或不好,我只是要帮助那麽多用MFC的h。和Bjarne 的态度一P我对诸如此类的工兯比活动一点兴都没有。我乐意当一名观众,但从来不评比Q应该可以说Q也没有能力评比Q?/P>

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

RAD是要用的Q有好工具不用,和自p不去。但是用RAD的同Ӟ对底层做更多的了解才有助於在某种情况下脱困或自助。这?STL 的运用也一栗会用STLQ是一U档ơ。对STL原理有所了解Q又是一个档ơ。追t过STL源码Q又是一个档ơ。第三种档次的h用v STL 来,虎虎生风之势l非W一档次的h能够望其背?/P>

学习某种工具Q及其背後代表的某种技术,I竟要钻研到什麽深度?唔,{案视你x演什麽角色而定。「F1方程式R手」和「半夜三Ҏ敢上台北大马路的用R人」之_有许多许多的层次Q你自己定位自己?/P>

有些人绝Ҏ护RADQ有些h又重新反省RAD。下面是另一信Q?/P>

我原本是一个一天到晚用RAD工具的h...但是历经了三个版本之後,我有一U被骗的感觉Q因为处在这个环境中Q似乎是投n在别好的一个圈套里Q这U东西会让hҎ『了?OS 内部q作以及各种规范与协定的基础层面』的Ʋ望慢慢减低至零。今天ؓ了突破某一个元件的限制而自己写了一个元Ӟ明天新版RAD内附元g出C比自己写得还要好的东ѝ到了最後,自己不想写,只想{别人写l你
Q要是别Z写,你就ddC׃一能?..(天晓得要{到何年何月)Q要不然是官方l的元g功能东西。不只这些!最让我受不了的是,我竟然发玎ͼE式用这U方式去写,直就比用Office q要单,深入的思考几乎是?..?/P>

我在「怀璧其|?RAD」一文中是这麽回{的Q?/P>

1. RAD q|恶Q而是优点。要怎麽用它则是你自q问题。我有两位朋友是 Delphi 专家Q他们可以?Delphi 做Q何事情,没有M你想像中 RAD「该有」的限制?/P>

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

q类话题很难一a以蔽之。MQ优U的技术者一定需要一个向下沉淀的历l,通过了这层历l,有了扎实的基Q就可以向上升Q开始以抽象的思考,抽象的语a、快速开发工hq行高层ơ的开发工作。这时候运?RAD 工具Q当能如虎添{?/P>

所谓百炼成钢;钢的形成Q是铁块不断锤打,不断回火Q不断淬点{做Z个程式员Q本w技能的层次Q和回火淬炼的次数有密切关系?/P>

让我们再回头谈谈基础。很多资讯科pd学学生对学校所开的课E,非常不服气,非常不屑Q认为对~程能力一点帮助也没有。首先我要说Q编E、Y件开发ƈ不是资讯pd生的唯一\。资讯领域何其广泛,~程只是其中小的一支而已Q但对就业市言则是大大的一脉)。其ơ我要说Q基理论评q对你的编E一无是?─ 不是无用Q只是未到用时。有些科目的影响非常直接而深q,例如对编E最重要的两门课Q资料结构(data structureQ和演算法(algorithmQ,q两门课寚w辑思考与实现能力的训l,有关键性的价倹{没有这两门译ց底,M C/C++/Java 多强多行Q也写不Z好程式。其他基理论评也都各有用途,会不会在你未来的~程生中带来帮助,那得看你~哪一U程。就业与学校所学,不必然会发生关系Q不必然不会发生关系?/P>

~程能力强的q轻同学Q容易孳生一U趾高气扬的恶习Q看q不眼Q看那不眼Q教授都老朽Q同学都可笑。问他ؓ什麽,哦,因ؓ「他们的~程功力都不如我」。可W的正是你自己呀?/P>

~程实力的培d实很Ҏ的。我所谓容易,是指不需借助外力Q纯_自修就几乎可以做到。再没有比这更幸q的事了。当然你的进修必L部就班(在我的专长范围内Q我写了很多让你前进时有所依@的文章,都在侯捷|站上)。Q何高q理论Q只要实际操作过都可以霍然理解,~程的实作又有什麽难的。数本好书,一部电脑,一些必要的工具Q全部搞定,只欠一股「头悬梁锥刺股」的苦读_。实力进展到一个阶D後Q我非常鼓励你追t名家源码(有h指导更好Q。司马相如说Q能d赋则善赋Q能观千剑则善剑。侯捯Q读q千赋亦能赋Q观q千剑亦能剑?/P>

最後我q要_学校Q尤其大学)原本不是职训所。但是关gh格的培养Q思想的启q,视野的开拓,Ca之,恐怕是陈义q高Q没人爱听了?/P>

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

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

自救之道当然有:你必L勤奋。勤奋看书,勤奋发问。勤奋搜d的导师和好的ȝ。或许天道酬勤,p你碰上一个传道授业解惑的贵hQ就让你知道一本必ȝl典Qƈ且就让你扑ֈ它?/P>

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

发问的能力媄响学习甚巨。善问者人其声Q善教者人承其志。我常自诩ؓ一名善教者,但如译֠上兼能有一名善问者,高潮qvQ全班受惠?



Titan 2006-01-08 16:47 发表评论
]]>
选义按部 考辞qhttp://www.aygfsteel.com/Titan/articles/27148.htmlTitanTitanSun, 08 Jan 2006 07:49:00 GMThttp://www.aygfsteel.com/Titan/articles/27148.htmlhttp://www.aygfsteel.com/Titan/comments/27148.htmlhttp://www.aygfsteel.com/Titan/articles/27148.html#Feedback0http://www.aygfsteel.com/Titan/comments/commentRss/27148.htmlhttp://www.aygfsteel.com/Titan/services/trackbacks/27148.html 

1997.06

观古今於臾
抚四h一?STRONG>

选义按部
考辞q

人的理解力可以无IP但h的记忆力有限?BR>
当本w实力发展到某个层次Q?BR>实力不是靠「警敏强记」来判别或完成,
而是要知道哪里可以找出正而适用的资料?/FONT>


●理解无IP记忆有限

一位老读者写 mail l我Q信上说Q『我发现一件事Q自从在台大资讯周遇到您Q直?1997 Run!PC Q月P您一直在安抚新鲜人。在发现自我方向之前Q那些hQ包括我Q都曄当迷惘。您的文字和温和的态度让这些h可以安心前进。感谢您!!?BR>
写作六年Q最初接触的q轻读者,有一些已l从高中q入了大学,甚至研究所。原本我的写作层面从未考虑学生Q我是ؓ工程人员写的。却没有惛_慢慢地在学子之间有了一些媄响。有一ơ元智开学,一位研I生来找我,告诉我因为我的鼓励,他发奋考上了研I所Qƈ拿出当年我写l他的信。前q那位老读者也是,一q半载未联络Q他已经从大同工学院考上清大资讯所?BR>
看到q些朋友的精q,我真是高兴莫名。我自己当然也要更精q,不然拿什麽以对读者?现在学生们,厉害的,真的很厉実뀂这学期 Windows 作业pȝ评Q我l的期末作业是让同学们分l将 Matt Pietrek 的「Windows 95 pȝE式设计大奥U」各章程式仔l?traceQ向大家做报告。有一l同学的表现׃o我刮目相看,不仅自行研究书上未提到的 Callgate 技术和 Universal Thunk 技术,q找出原作者未交待清楚的一些细节?BR>
人的理解力可以无IP但h的记忆力有限。当本n实力发展到某个层ơ,实力不是靠「警敏强记」来判别或完成,而是要知道哪里可以找出正而适用的资料。我寚w一l同学最感兴的是Q他们叁考了哪些书籍、哪些资料、以及他们是在什麽时候开始接触那些相兌讯的?BR>
我还在业界Q职的时候,已l观察到Q比较有发展潜力的同事,都很会整理资料。资料的整理ҎaZhD,但都有条不紊。要整理资料Q先要有资料Q所以这些同事也都是攉资料的高手,不论书籍、杂志、期刊、报U、光、磁片、规gQ不论纸面的或电子的Q收|万象,索迅速。要辑ֈq种境界Q你要有ҎQ有毅力。或许还要一点点财力。不q,除了书籍比较贵之外,其他资料都还便宜,甚至?Internet 上免费可得?/P>



●ؓ汝安?/FONT>

能够在资讯世界里悠然自得Q真令h慕Q虽焉些hQ包括我Q其实也都是鸭子划水Q水底下忙碌得很Q。悠然自得的境界需要按部就班地训练才能到达。好多读者写l我的信中,问到 C 语言的学习方式、Assembly 语言的学习方式、MFC 的学习方式、Windows programming 的学习方式。一一回答而未能给大局观,犹如中HvQ未能得其全貌。我军_以一ơ较大的幅Qؓ汝安心。我军_从一个语a初学者的立场出发QWindows programming 则是我设定的l极目标。我走的路线?C/C++ 路线。这L假设有几个考量因素Q?BR>
1. Windows 是当?PC 上最普及的作业系l,也是你就业时最可能面的^台?BR>2. C/C++ 是计机U学的主语aQ学术界与工业界通用?BR>3. 我的专长是这些,所以我能说的也只是q些?BR>
我将在每一个阶D|出我的看法,qDZ些好书给你叁考。我丑և的书l大部䆾是原文书Q这q不代表国内没有相关好书Q但它的反面也不一定就成立Q,而是因ؓ我自己接触了许多原文书,资讯也多由彼而来。这些原文书大多有中译本Q好坏就误行评断了?BR>
以下出现的出版社名,其全名是Q?BR>
A.W.QAddison Wesley
M.P.QMicrosoft Press
IDG QIDG Books
M&T QM&T Books
R&D QR&D Publications

●先器後道:?C/C++ 语言出发

E式语言没有l好Q什麽都是空谈。现在的 C/C++ ~译器忒也庞然大物一个,初学者如果未l指点,怼以ؓC一?C++Builder ?Visual C++ ?Symantec C++ ?Optima++...Q就是要直接开始在整合环境底下?Windows E式。我当然不认为是他们野心q大Q妄想一步登天;他们是因Z知道有简化的环境和简化的 Windows E式?BR>
在这个阶D,语言的练习应该独立於M作业pȝ之外。也是Q你学习的应该是 ANSIQ美国国家标准)C/C++Q你写的E式拿到M作业q_上应该皆能原始码相容。我Q在 Win32 环境下,你要?command line 方式~译联结E式Qƈ使用 console mode?BR>
所?command line 方式Q就是在 Windows 环境下开一?DOS 视窗Q将工具环境?PATH 和其他环境变敎ͼ?LIB ?INCLUDEQ?讑֮好,然後?DOS 提示号下直接~译联结你的E式Q完全不使用开发工h供的整合环境。以 Visual C++ ZQ假设你把它安装?E:\MSDEVQ於是你可以设计一个批ơ档Q?batQ如下:

@echo off
set TOOLROOTDIR=E:\MSDEV
rem
set PATH=E:\MSDEV\BIN;D:\WIN95;D:\WIN95\COMMAND
set INCLUDE=E:\MSDEV\INCLUDE;E:\MSDEV\MFC\INCLUDE
set LIB=E:\MSDEV\LIB;E:\MSDEV\MFC\LIB
set INIT=E:\MSDEV


每当惌使用 command line ~译联结E式Q就先在 DOS 视窗中执行上q批ơ档Q将工具环境讑֮好?BR>
然後Q你可以开始练习写E式。用Q何文字编辑器输入你的原始码,存档Q然後在 DOS 视窗中编译联l。以 Visual C++ ZQ你可以q麽做:

cl test.c <Enter>

?BR>
cl test.cpp <Enter>

CL.EXE ?Visual C++ 的编译器名称。它会在~译完成後自动呼叫联l器 LINK.EXEQ将你的E式所需要的函式库(C runtime libraryQ自动联l进来?BR>
你所写的q些 C/C++ E式Q虽然是 ANSI 标准Q但因ؓ是在 Windows 环境下以 Windows 开发工具徏造而成Q所以它们的执行档是属於 PE 档案格式Q也是 Win32 可执行档格式Q只不过它们没有用到M GUIQ图形用者介面)而已。这U?Win32 E式又称?Win32 console E式Q也是一般所谓的 DOS-like E式?BR>
常常接到读者的 mailQ希望我推荐 C/C++ 斚w的好书。由?C/C++ 的学习对我已l是遥远的回忆,当初自学以及朋友间互相讨论的成䆾比较多,阅读的经验比较少Q而晚q的许多相关书籍我又没有完整看完q,所以没有办法给你推荐名单。有一些经典名着Q出自大师之手,例如 K&R ?"The C Programming Language"Q有译本Q,Bjarne Stroustrup ?"The C++ Programming Language"QA.W.Q有译本Q,?STRONG>初学?/FONT>不见得是最佳选择。初学者需要详、亲切、范例多的导入书Q大师的书却往往学术味重Q言意赅。当Ӟ{你到达一定程度,q是应该把大师的书看一看。言意赅之中Q可能有许多微言大义?/P>



●可直接学习 C++ 吗?

回答q个问题前,需要先做点厘清。C++ 其实?C 语言的超集(super setQ,所?C 语言的关键字、指令、修饰词、特性、标准的 runtime 函式库,都应该相容到 C++ 之中。所以,基本上没有所谓「避开 C 语言Q直接学?C++」的可能。你看,很多时?C/C++ 是写在一LQŞ׃R?BR>倒是Q你可以不学 C++Q纯?C 闯天下。在 Windows E式设计领域中就是以所谓的 SDK 来撰写程式。也是以纯_的 raw Windows API 来写E式。不q,物g导向的观念与技术,历经数十q的验证Q已l证明其价|q且已被大家接受Q蔚Z,你若攑ּ C++Q会折损自己不少实力与工作机会?BR>
To be or not to beQthat is the questionQ(语出 莎士比亚/哈姆LQ呵呵,To C or not to CQthat is the question tooQ?/P>



●OOA/OOD

C/C++ 语言的基功夫完成之後Q你面ͽW一个分岔点。是要l在物g导向QOOQ领域中_进Q进入物件导向分析(OOAQ和物g导向设计QOODQ领域?q是要开始选择一个特定的作业q_Q学习其上的E式技术?q两者不是^行线Q它们最l是要相互ؓ用的。对 OOA/OOD 有愈多的了解Q用v Windows 开发工具中的C++ cd库(MFC ?OWL ?Open Class ?VCLQ自然愈能胸有成竹,而不是随波摆荡。但是,当然Q你也可以先q入 Windows E式设计领域Q慢慢再回头接触 OOA/OOD?BR>
我与同夥的几位老朋友曾l十分瞧不v OOA/OODQ每ơ去听些评Q回来就彼此嘲讽Q又费了一整天。一个原因是Q台上的老师自己q?OOPQProgrammingQ都不够实力Q谈什?OOA/OODQ没有据以实现观늚载具Q一切将只是晋玄谈。另一个原因是Q台下的我们自己?OO 基础也不够好Q对於听来的观念Q无法生有效的具体意识?BR>
我们瞧不?OOA/OODQ是因ؓ我们自己_鄙Q是因ؓ我们自己的程度不到。如果自q式写多了Q也用心揣摩q?classes 该怎麽设计怎麽分类Q自己有q一些想法,再来?OOA/OOD 的书Q收获就会大得多?BR>
OOA/OOD 的流z不,Booch 是相当有名的一个流z,他着?"OO Analysis and Design with Application"Q无译本Q,相当出名?/P>



●SDK Programming

如果你不喜欢一下子q入太多的理Z界,你希望早点写出漂漂亮亮的 Windows E式Q激p׃下,那麽在学?C 语言之後Q可以选择 SDK programming 做ؓ下一步?BR>
SDK 是个通称QQ何环境都可以提供自己?Software Development KitQSDKQ供E式员在其环境上开发应用程式。然而因?Windows SDK 太有名了Q一直被延用其名Q竟成了一个专用术语?SDK programming" 其实是以未加包装的 Windows API 撰写 Windows E式的意思。如果你在这个层面上写程式,可以在Q何一?Windows 开发工具中畅行?BR>
q个领域我推荐两本好书:

1. Charles Petzold/M.P.Q?Programming Windows 95"Q有译本Q?BR>2. Jeffrey Richter & Jonathan Locke/M&TQ?Windows 95 : A Developer's Guide"Q有译本Q?BR>
前者几乎是q个领域的圣l,有非常广泛的取材和很的内容。後者的技术层ơ定位更高,特别选择?hooking、subclassing、window class...{一些稀有主题?BR>
有些书评人对?Petzold 书籍?95 版没有太高评P但是Ҏ其前w(3.0 版和 3.1 版)却又推崇备致。噢Q一本书怎麽可能在「组l结构不变,仅是?16/32 位元UL」的改版情况下,落差如此大呢Q不可能Q书评hҎ新版没有太高评hQ是因ؓ他们的期望太高,忘记了这是改版书。以看新书的角度去评论改版书Q会有误差出现?BR>
Jeffrey 的书c名实不?-- 内容很棒Q其名不彰。这本书也是改版书,先前已有 3.0 ?3.1 两版?BR>
在这个领域里ȝQ或怽q需要一?Windows API 手册。各家整合开发工LU上手册固然是不错,但电子有电子的好处,书面有书面的优点。带着本手册,可以当小说随手翻,累积印象Q就不会在大做苦工之後才发现Q原来有现成?API 可用。Waite Group 出版了好几本 Win32 API 手册Q像?"Win32 Programming API Bible"?Windows 95 API How To" {等Q皆无译本)Q每?API q使用范例Q颇具叁考h倹{不q我发现其中颇有误谬Q你必须和线上手册交叉用才保险?BR>
SDK programming 也可以?C++ 语言。我的意思是你自׃ؓ自己包装一些类别,也就是自己把 Windows API 包装得更高阶一些。早?Borland 推出其C++ 2.0 版(市面上第一套可支援 Windows ?C++ ~译器)Q就是诉求让E式员自己做q样的包装(彼时未有主的cd库品如 OWL ?MFC ?VCLQ只有一个小有名气的 "Zinc" 产品Q。这L训练或许实际用处不大Q因为现在已有主的cd库品(不少人甚xZ使用那些cd库才军_开始学?C++Q。然而,曄历练q这栯l的人,OOA/OOD 的实力必有增ѝ?BR>
Paul Dilascia 有一?"Windows++ : Writing Reusable Windows Code in C++" QA.W.Q无译本Q,便是q个层面的着作。这位作者现今是非常知名?MFC 技术专栏作Ӟ我一直期待他Z?MFC 书籍Q苦候不臟?/P>



●Windows 作业pȝ/pȝE式设计

学习 SDK ProgrammingQ最大好处是能够清楚看清 Windows pȝ?"message based、event driven" 的观c另一个好处是藉由 API 函式Q你可以相当E度C解作业系l的基层动作。当Ӟ後者需要一些书c来辅助Q在 SDK programming 书籍上是不容易看到对此有太多介绍的。即便有Q层面也不够qѝ?BR>
Windows 作业pȝ领域我推荐五本书Q?BR>
1. Matt Pietrek/A.W.Q?Windows Internals"Q有译本Q?BR>2. Matt Pietrek/IDG Q?Windows 95 System Programming SECRETSQ有译本Q?BR>3. Jeffrey Richter/M.P.Q?Advanced Windows 3rd edition"Q有译本Q?BR>4. Walter Oney/M.P.Q?System Programming for Windows 95"Q有译本Q?BR>5. Garen Hazzah/R&DQ?Writing Windows VxDs and Device Drivers" 2nd editionQ未q口Q?BR>
W一和第二本书由同一位作者撰写,分别针对 Win31 ?Win95。两本书q没有太多重覆的地方QWin95 之中属於 16 位元的那一部䆾Q凡是在W一本书中提q的Q第二本书就不提了。Pietrek 的探讨是以三UŞ式进行:内部资料l构、API 虚拟码、系l程式设计。三UŞ式都非常重要Q而以内部资料l构然。你要充份了?Windows 作业pȝQ一定要好好看看q两本书。我正引领鹄?Pietrek 有没有一?"Windows NT Internals" ?"Windows NT System Programming SECRETS" q样的书。书名不重要Q要认就要认作者?BR>
W三本书站在比较高阶的层面,也就?API 层面Q来看系l。Jeffrey q不挖掘pȝ内部资料l构Q也不讲q?API 虚拟码,他只是非常详地告诉你一些与pȝ核心有关?API 如何使用Qƈl你许多的范例程式。那些与核心有关?APIs q不太容易在没有详细解说的情况下无师自通,因ؓ它们的叁数通常都很多,牉|的意义也很广。这本书的重要性不亚於W二本?BR>
W四本书和第五本书主要诉求在虚拟机器和虚拟装|驱动程式(VxDQ的层面。它们也可以归类?DDK Programming 领域Q稍後我再来介绍。放在这里主要是提醒你,它们和作业系l有非常密切的关联?/P>



●以 Console E式l习 system programming

q入作业pȝ层次Q大概免不了p接触到行E(processQ、执行AQthreadQ、模l(moduleQ、位址I间、虚拟记忆体、档案等题目。这些属g业系l基本教义派的题目都不牵扯图形介面,因?console 是很理想的练习环境。我的意思是你可以在 console E式中练习CreateProcess、CreateThread、VirtualQuery、CreateFile {等Win32 API。若需要输料来观察Q只?printf() 可以了Q不必大费周章去处理视窗、对话窗、列C清单?BR>
印象中很书c介l?console E式设计。其实的也没有什麽好介绍的,console E式是 DOS-like E式Qƈ且允怽直接呼叫 Win32 APIQ如此而已。D个例子:

// filename : test.c
// building : cl test.c
#include <windows.h>

void main(int argc, char *argv[])
{
STARTUPINFO si;
PROCESS_INFORMATION pi;

GetStartupInfo(&si);
CreateProcess("D:\\WIN95\\NOTEPAD.EXE",
   NULL, NULL, NULL,
   FALSE, 0, NULL, NULL,
   &si, &pi );
}


q个E式执行hQ会另生一?NOTEPAD 行程。你?"cl test.c" 做编译联l动作,所有必要的函式库(包括 C runtime 函式库和 Windows DLLs 的import 函式库)都会自动被联l进来?/P>



●Application Framework

SDK 的基有了之後Q你可以留在那个领域l箋_进。但是看到别Z两下子就做出一个自׃星期也做不出来的E式画面和功能,很少有h不痛心疾首,吁嗟dQ大叹n不逢时时不我予。汗水其实不会白,不过看准时机也要赶快下RQ换一班快速列车,让过ȝ汗水所植基的东西有更大的发挥?BR>
有一些开发工具大厂,?Windows API 及必要的资料包装在一个个?C++ cd之中Q让使用者站在他们的肩膀上,看得更高更远。有没有在^面电扶梯上走路的l验Q桃园机场出入境站内有一些^面电扶梯Q在上面走\Q每个h都好像神行太保,L漫步比梯外的h满头大汗q要快。Application frameworkQ一U凝聚性很强的 C++ cd库)像那电扶梯?BR>
市面上的 application framework 产品有好几套Q真正引领风骚的Q当?MFC ?OWL 二者。前者是 Microsoft 产品Q後者是 Borland 产品。由DU品中?C++ cd彼此关系密切Q因此同一个品的应用E式的「基本长像」也十分类伹{也因此q些产品都搭配程式码产生器,以及各式各样高度自动化的辅助工具?BR>
q种产品功能强大Q用h很爽Q但是要学得好不Ҏ。我看过太多因ؓ基础不稳而跌下马来摔得E青脸肿的例子。面对这U东西,学习者首先必L有不错的 C++ 基础Q那自然是不消说的。此外,Ҏ C++ 虚拟函式的精义,必须d了解Q才知道自己到底在干什麽?BR>
通常Q学?VC++ & MFCQ或 BC++ & OWLQ的人,可分两类。第一cMh只有 C 基础Q一心希望赶快通往物g导向的圣堂,希望赶快做出又炫又酷的程式。他们以?VC++ ?BC++ 是一U新?C++ 语言Q或以ؓ那是一U「Windows E式语言」。他们迫不及待地把整合环境上的wizardsQ或 expertsQ玩个痛快,东拉西扯Q却不知其实只是胡搞瞎搞Q搞得自׃头雾水。他们东凑一?classQ西凑一?classQ有样学P东施效颦。初期进展颇为惊人,把程式凑成一个怪物却浑然不觉。等到束手无{了Q信心也全失了,於是自己l自׃了个l论QMFCQ或 OWLQ是全世界最烂的东西Q大怪兽一个!

另一cMh不太一P他们或许也只?C 的基Q但是愿意先?C++ 的基打好Q尤其在虚拟函式痛下功夫。他们学?MFCQ或 OWLQ的本体架构Q企图了解那样一?application framework 是如何徏{v来的。研I的主题包括 Message Mapping、Command Routing、Runtime Class、Persistence...。数百个 MFCQ或 OWLQ类别不熟悉Q不会用Q没关系Q那只是手册查阅的功夫而已Q架构弄懂才最重要。这Uh初期q度~慢Q可能会被速食zh士嘲W。但假以时日Q谁W谁׃知道了?BR>
我自己对?OWL 不熟Q没有能力介l好书给你。至?MFCQ我推荐四本书:

1. 侯俊?村ֲQ?深入出 MFC"Q第Q版Q?BR>2. David Kruglinski/M.PQ?Inside Visual C++ 4th edition"Q前一版有译本Q新版未知)
3. Jeff Prosise/M.P.Q?Programming Windows 95 with MFC"Q有译本Q?BR>4. George Shepherd & Scot Wingo/A.W.Q?MFC Internals"Q无译本Q?BR>
W一本书用来建立?MFC 架构的通盘了解Q涵盖上q我提到的所有重要主题。内容虽然很深,但因为@序渐q,C意图也多,q不隄。第二本书提供许多范例,q以 Visual C++ 工具大量辅助 MFC E式设计。第三本书也提供许多范例QMFC 架构斚w的解释比W二本多Q但比第一本书得多。它完全不?Visual C++ 工具。第四本以挖?MFC 原始码的方式来介l?MFC 架构Q层面比W一本深且广Q但比较隄?BR>
我徏议的阅读序亦如上排列?/P>



●RADQRapid Application DevelopmentQ?/FONT>

有资DUCؓ RAD 产品的,当属 Visual Basic、Delphi、C++Builder 三者了。Optima++ 好像也是Q但我没有什麽接触。这里我要谈的是 C++Builder?BR>
C++Builder 对程式开发的帮助层面Q和 MFCQ或 OWLQ又不太一栗这个工具可说是 components softwareQ以元gl成软体Q的实践者。每一个元件有 properties、methods、events 三个性质Q分别代表其资料、可执行的行为、以及可反应的状态。你在整合环境中选拉一堆元Ӟ很快可以把一个应用程式的使用者介面兜h。比较困隄地方在於如何让元件和元g之间产生兌Q那需要写点程式码。程式码虽然短,却也l对需?C++ 的良好基Q以及对 VCL 各元件的相当E度的了解。虽?VCL 的架构和 MFC ?OWL 都不相同Q但如果你曾l用q?MFC ?OWLQƈ且曾l在架构上面花功夫,再来?VCL 自然是比较容易进入状c触cL通嘛Q?BR>
C++Builder 是个好品。它不但?VC++ ?BC++ 竞争Q层ơ又比两者更高一层。至g该选择 MFC ?OWLQ还是该选择 C++BuilderQ若以工L优秀度考量Q我投後者一。但是关於就业市场,考量的因素还有许多;不论你的选择如何Q似乎都是个赌注?/P>



●DDK Programming

DDK 是微软的一套工兗DDK Programming 是个l称Q意指撰写驱动程式(DRVQ,或虚拟装|驱动程式(VxDQ。这个领域需对作业系l有比较多的了解Q因为牵涉的技术层面比较低阶?BR>
高阶语言?C++ 在此领域较不用Qassembly 语言反而成Z。再佐以 C 语言应该是最好。虽Ӟ也有一些整合环境工具如 VToolsD 提供协助Q允怽?C/C++ 撰写虚拟装置驱动E式Q但 assembly 语言仍然得精通,因ؓ你常帔R要处理堆叠、暂存器...Q需要考虑机器码的长度、速度。这些都是学?assembly 语言时获得的知识Q高阶语a不管那个?BR>
q个领域我推荐两本书。如果你?DDK programming 没有兴趣Q这两本书也可以归类在作业系l领域里Q对你还是有帮助Q?BR>
1. Walter Oney/M.P.Q?System Programming for Windows 95"Q有译本Q?BR>2. Garen Hazzah/R&DQ?Writing Windows VxDs and Device Drivers" 2nd editionQ未q口Q?BR>
W一本书是学?VxD programming 的极佳书c,从最基础讲vQ相当详l。第二本书提供许多设计精良的C意图,非常隑־。事实上它也真的很「难得」,台湾没有q口?/P>



●Java E式设计

如果你有 C++ 基础Q又用过 MFCQ或 OWLQ,那麽老实Ԍ要进?Java D堂Q真是轻松。Java 的语法与 C++ 十分cMQJava ?APIQ不以单U的函式呈现Q而是以类别库形式呈现Q则z脱脱就是另一?application framework?/P>



●读者来?/FONT>

送g? <b83140163@ntou66.ntou.edu.tw>
收g? jjhou@ccca.nctu.edu.tw
L: 资讯人的生规划
日期: 1997q??6?PM 12:22

侯先生你好:
弟l常?RUN!PC 杂志上拜L的大作,也深觉很有收P其在读了「EQ h高」一文後Q生了另一个想法,希望您能抽空为我回答。或许这也可能是其他人心中的疑问?BR>
弟因联考的关系Q目前就读非资讯相关U系Q但是从?BR>中开始,便对电脑资讯产生了极大的兴趣。高中时候已多有涉猎Q进
入大学之後,q未忘情於电脑,q尝试自我学习。但是自p资讯相关U系的同学相比,在他们专注学习的情况下,有渐行渐q的感觉。感到惶恐,也担心自p资讯业界快速变化的z流所Ҏ。您作ؓ资讯界的代表人物之一Q不知有何想法或呢?


「作讯界的代表h物之一」,q一Ҏ谈不上。我把自己定位在「高阶技术的导引者」。是的,导引者而已Q在各个领域真正从事专案计划的工E师Q都拥有比我更深入更实际的经验。我比较q,而他们比较精。说到广Q其实我也不q是?C/C++、SDK、MFC、Windows O.S q一条线上而已?BR>
真的Q我不清楚,以现在资讯量q麽庞大QPC 软硬体进步这麽快速的情况下,有志在资讯领域实Ch生抱负,却不是科班出w的q轻朋友Q是否有太大的机会。「科班」所代表的文凭或w䆾Qƈ不是考量重点Q我所想的Q亦x所aQ「在别h专注学习的情况下Q彼此有渐行渐远的感觉」?BR>
我本w是个自学案例,但我可是在大学时代看q、用q打卡机的A世代人唷。那个时代的复杂度与今日不可以道里计。即使我其实是在大学毕业服役之後回锅才对电脑引发兴趣Q那时候电环境的复杂度仍然与今日不可以道里计。当时一切因陋就QPC 作业pȝ不过是?MS-DOSQ可以完全摊在手掌心里;最炫的软体开发工具不q就?Turbo PascalQ进入绘图模式画个简单的曲线囑ְ开心得嗄嗄叫。没有选单、没有图形hZ面、没有物件导向、没有整合环境、没?wizards、没?experts... 没有Q什麽都没有Q有的是记忆?640K、硬?20MB、Hercules 卡、单色萤q、九针点榘阵印表?..?BR>
我不知道Q现在这麽大的资讯量Q这麽多的技术和q麽多的工具需要同时学习的情况下,资讯U系以外的同学们Q即使你们依然保持高度兴和高度自持力,头悬梁锥刺骨Q「衣带渐宽终不悔」的感觉能够l持多久Q?BR>
我真的不知道呀Q?BR>
弟有以下问题希望您能回{,谢谢!!

一、您喜欢在资讯界中工作,是因为哪些条件呢Q?/FONT>

让自己永保朝气蓬勃。不会有「被C界遗弃」的孤寂感?BR>
二、一般资讯h对工作上会有哪些不满意的地方Q?BR>或是工作上会遇到哪些困扰呢?

会在走出学校後走入资讯业Q通常是因为本w的对资讯感兴,不然可能校内早就转系ChQ或d学校後马上就表明心迹了。排除「没有兴」的因素後,我想资讯人对工作的最大不满意Q大概是「永q有学不完的东西」。在我这个岁敎ͼq入人生的这个位|,我清楚自p掌握什麽,该舍弃什麽,所以庞大的资讯量对我威胁不那麽大(虽然也不)。但是对D没有事业基础的年L友,他们必须Q或自己认ؓ必须Q努力把十八般武v码也搞好十四般,那就得花很多很多的时间精力?BR>
其他理工领域的进步没有这麽快Q有些领域甚臛_一套可以吃一辈子。没有「活到老学到老」的心理准备的朋友们Q此行莫入!

x普遍的困扰则是:「这麽辛苦,我能够做到几岁?」这是工E师们一个普遍的危机意识。我的工研院老同事就W指我的光明Ӟ日渐光明的头Ӟ_『看你能做到几时Q?BR>
三、在准备从事资讯相关的职业前Q应有甚麽样的自我准备或是训l?

您讲的是职业Q而不是学业,那表C您已经完成了自我基本训l(不然p不了职场|)。我惻I那麽Q心理徏设是最重要的。老话一句,zd老,学到老。其实,兴趣是最重要的,有了兴趣做後盾,吃苦当做q补。没有兴,再轻杄工作也是无聊Q虚度h生而已?BR>
我工作的时候,常常做到肉体和精的负荷至极限Q才放下来,抒发一下。静一静,喝杯咖啡Q回惛_刚完成的成WQ想着想着兴致又来了,又坐到电脑前面干zR出国旅游的时候,飞机上的漫长光阴是我浏览整理MSJ、DDJ、WDJ {期刊的最好机会(我L带一袋子Q。你要怎麽解释一个h疯狂的干劲儿呢?辛苦但是快乐Q唯「兴」二字可以解释?BR>
四、面对压力与挫折Q您如何面对Q在工作成果满意与不满意中如何取得协调?

q好像在做家庭访问了。年岁相差太q,心境与作法都不会相同Q也不容易感染。此题免了吧?BR>
五、您当初如何下定军_从事q一行的呢?当初做了甚麽L自我准备Q?/FONT>

我不知道「这一行」是指我q入资讯界,q是指我q入资讯写作界。如是前者,因ؓ兴趣所在,pM。如是後者,因ؓ觉得可以有比较大的A献和发挥Q就转过来了。至D我准备,大约是把本质学能的基础打好吧。「电脑技术专业作家」的头衔gq没有尊荣到可以让小朋友做ؓ「我的志ѝ,或年L友做为「心目中理想的十大行业」,我自己是?..?..写作之後才开始学习写作的。当Ӟ每个人对文字的掌控能力与风格Q即使没有刻意培养,也可能在从小环境或x目染的情况下发展Z同的水准Q而那会大大媄响行文的畅与可L?BR>
如果有心在资讯工业界发展Q最重要的「自我准备」就是把基本功(作业pȝ、语a能力、资料结构、演分?..Q学好。常常追逐哪一U开发工L哪一个最新版本的哪一个很炫的功能Q是舍本逐末。如果有心在资讯写作界,「自我准备」就q包括组l能力和文字能力。尤其是l织能力。有志於此的一些朋友告诉我Q希望多做些译工作然後再开始创作,但是各位要知道,单纯的翻译,如果没有特别用心Q对於组l能力没有丝毫帮助?BR>
六、从事这一行有无充分的在职q修ZQ?/FONT>

一般而言资讯公司ȝ都相当清楚这一行的一日千里,所以稍兯模者应该都会提供进修机会。如果你说的是「留职停薪修士博士」这U大 caseQ那恐怕要研究单位或很大很大的公司才有。一般的技术研讨会、新技术(产品Q发表会、国外电脑大展等叁加ZQ应该是不少的。科学园区和工研院里头的q种Z非帔R常多。不q,您的表现是否以膺此「种子」重任,则是後话?BR>
七、您Ҏ非资讯相关科pL业,但有志从事资讯工作者,有什麽徏议?> 如何建立一个自我学习的ҎQ以免有闭门造R之憾Q?/FONT>

唯有比别人更努力Q才有机会。别忘了别h也非常努力,而且占尽优势。避免闭门造R之憾Q应多培d局观,最单的Ҏ是多看杂志和期刊(国内国外都要Q。对大学生而言Q期刊似乎有点吓人,但多接触自然有Z。No TouchQNo Chance?BR>
八、一个资讯h是否真的会忙得没有休闲娱乐的I闲Q?/FONT>

很有可能。我住的q栋大楼 190 户里头有一半以上在交大、清大、工研院、科学园区工作,其中又有许多在资讯领域,所以基本上我满清楚我们q些人类的生zdŞ态。年ȝ朋友们忙着专案q度、还要抽I修充实自己,未婚者以公司为家是很常见的事。同事们常常下班後相U吃个饭Q再回办公室充电。年长的朋友们有了点事业基础Q但q是要忙着L计划、拨I修充实自己(否则怎麽带个个头角僔嵘的弟兄们)?BR>
要说能够固定旉看个电媄Q唱个卡拉OKQ甚臛_日去爬爬山,我真的很遇q?BR>
九、面对资讯日新月异快速更替的z流下,您是否会有怕跟不上或是来跟不上的?gt; 虑呢Q如果有Q您是如何克服的呢?

有啊。我常和同辈朋友们彼此消遣:『唷Q还没被淘汰啊?杂志上的名词q跟得上吧?什麽时候{行呀』。吐吐苦水可以排遣情l。但q根I底Q怕跟不上Q就加倍努力?BR>
十、您认ؓ一个资讯h应有怎样的生涯规划?

刚出校门Q一定是?programming 的工作。既然有兴趣做ؓ後盾Q没有的话就免谈了)Q请把十八般武艺好好学学。名门名校的w段放下来,高学历的w段放下来。实务经验都没有Q又要摆w段Q徒惹一笑而已。基本功扎实了,要开始注意专案怎麽规画、h力怎麽安排、规g怎麽开、文件怎麽写,培养自己做ؓȝ的能力。当Ӟ此期_表达能力、分析能力的培养一样也不能。h际关pL不能因ؓ技术的提升而降低。所谓千光|得,一难求,技术以外的能力Q往往是决胜的关键?BR>
我的好朋友,N源先生(Run!PC 前「美东随W」专栏作者)Q去三q_q薪从四万调整到...不可说的E度Q被公司倚ؓ「绝对不可或~的人物」。他付出了许多许多,而成果丰。走q一行,前途完全在自己手里?BR>
很多同学抱怨资讯界实在太辛苦。但我提醒各位一点,念资讯的人,自我掌握度非帔R。其他科pȝ学生要怎麽h能够自力做出Ҏl?除了死O书,怎样才能够拥有实务经验?整个土木pdq我也不q就叁观了北横荣华坝和台中港而已Q要说实务经验那是半Ҏ有。念机械的h怎样才能够设计一个机构ƈ且自己把它做出来Q念电子的h哪有Z自己 layout 一块板子?는化的人,不上实验室哪有机会自己培M只菌Q?BR>
很多很多领域Q都需要很大的旁助力,才有办法 do something。但资讯pd生,一?PC 可以把自己ȝ成百战金刚。一切都掌控在你自己手里Q?FONT color=#ff0000>成也׃Q|也由?/FONT>?!--mstheme-->




Titan 2006-01-08 15:49 发表评论
]]>
վ֩ģ壺 Ű| ˮ| ͼʲ| ̫| | | | | ϰ| | | | ̨ʡ| ͨ| Ӻ| ɽ| Ͼ| | | | | | | | ̨| | ̨| | | | | | Ͻ| ͼ| | | ¡| ½| | | |