Re: 初學者要如何學習 C++【我見我聞我感】

看板CompBook (電腦用書)作者時間24年前 (2000/04/23 00:38), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串1/1
Re: 初學者要如何學習 C++【我見我聞我感】 侯捷 jjhou@ccca.nctu.edu.tw http://www.jjhou.com 本文第一次發表於 2000/04/22 清大.楓橋驛站(140.114.87.5).電腦書訊版(Computer/CompBook) 本文將於日後整理於 侯捷網站/散文 2000 --------------------------------------------------------------- 最近 CompBook 版的一個題目:「初學者要如何學習 C++」, 又引發一長串討論。每天我啜著咖啡,看著一篇篇的長短文, 在精譬與幼稚、深遠與淺薄、罵聲與辯白之間,固然得稍遣 一日下來的疲憊身心,聊以為茶餘飯後之資。但是看著日漸 眾多的貼信,想到某些問題,心情也不很輕鬆得起來。 我有一些感觸。 ●不要罵人 學問高、技術好,固然可以說話比較宏聲,比較強勢, 比較得到大家的尊敬與體諒,別人也比較不敢招惹, 但不表示可以出口罵人。「廢物、白痴、人渣、丑角」, 這些罵人的話實在不宜。 不可以罵人,是網路的基本禮儀。「不可以」可以從兩個 層面來說。法律上來講,網路上之不可以罵人也許是個 灰色地帶,被罵者多半也不會訴諸大動作。所以除非是 名人被罵,或名人罵人,而且嚥不下一口氣,多半只是 清風徐來,水波不興。 我要談的是修養層面上的「不可以罵人」。我要談的是 上網基本守則,就像談做人的基本道理一樣。 有些人的行事採「直率」原則,必要赤裸裸地表現自己的 情緒而後快,至於禮儀諸等,則或斥之「偽善」。網路 是個不露臉的世界,也大量容忍了這等「直率」。但是 如我常說的『文如其人』,文字表現了作者的為人處世、 心境修養、學問技術。為文能不慎乎? 古云「君子不欺暗室」,意思是雖處於無人得見之暗室, 亦不做欺心敗德之事(唐駱賓王.螢火賦:類君子之有道, 入暗室而不欺)。網路這個虛擬世界,就像一個大暗室, 你在暗室中的一切行為,雖然別人不得見,仍忠實映照 你自己。 昨天,我順道載來元智旁聽的交大學生回竹。途中剛好他 提起 CompBook 版的這陣熱鬧。我淡然地說:不該罵人。 學生說:可是有人本來就該被罵。 哦,是嗎? 如果說這個世界是「觀念可能有點偏差、技術可能有點不足、 態度又沒讓你順眼的人,便該罵」,那麼我說,罵人有罵人 的技巧與藝術,你罵人的表現這麼粗糙這麼差勁, 「觀念可能有點偏差、技術可能有點不足、態度又沒讓我順眼」, 也該罵囉? 不,你不該被罵。所以他也不該被罵。 要表現尖銳與犀利,另有辦法;請不要用罵,尤其是像 「廢物、白痴、人渣、丑角」這種話。 或有人說,我的個性就是這樣,直率是我的座右銘。那也 依得。我剛才說了,網路是個不露臉的世界,大量容忍了 這等「直率」。我寫這篇文章,原也意不在影響罵人文章的 作者(我想我沒有這樣的能力), 我想影響的是罵人文章的 讀者 — 你。 ●文如其人 衍生而來的,我還想說的是,競速的時代,以及臺灣教育 的偏頗,造成了網路上的文字錯別字連連、邏輯不通、 語意不暢…。大家都急就章地,有什麼想法就脫口而出, 線上回覆;不但不檢閱,甚至不重讀第二遍就按鍵送出。 文如其人。如果你連自己出手的文字 — 代表自己思想的東西, 都這麼不在乎不謹慎,你會對什麼在乎?你在乎的大概只剩 功利銅臭之阿睹物。如果現實生活中你是謹言慎行的,到了 暗室卻如脫疆野馬,這讓我想起現實社會中許多彬彬有禮之士, 上了自家車駕駛座,便換了張頭臉,罵聲連連,閃超擠推, 下得車來又彬彬有禮。 可是你,就是你,只有一個你。哪個是真實的你呢?半夜 問問自己。 ●初學者要如何學習 C++ 發問者,有能力從回信內容判斷回信者的經驗,進而估量其 正確性或適用性,進而決定自己的採用度嗎? 如果能,大概不會問這個問題。 如果不能,應該不必問這個問題。 在網路上悠遊這些年的經驗,使我輕易可以判斷哪一種題目 又有好戲看了,哪一種題目又要引爆口水戰乃至口角戰 — 而且最後只是一場混戰,篩子上留沒幾傢伙。 我們感謝熱心的回信者,他們熱切提供自身經驗,不論 自己是一年經驗、三年經驗、五年經驗、十年經驗…。不論 自己是 1/4 瓶水或半瓶水,或 3/4 瓶水或滿瓶水。 我想知道,以發問者的水平,如何判斷和取捨這些回覆? 通常我們尋求這類學習之道(這是對自己非常重要且關鍵的問題), 不應向陌生人求助,那於事無補。因為陌生人的經歷你一無所知, 為什麼他的學習之道值得你遵循?你既無法判知,就沒有必要發問。 為什麼不問你的老師?你的學長?你的同學?那是你看得見 摸得到的人,如果你佩服他們的能力,你就可以詢問他們的 學習經驗。因為你知道他們的表現,所以你可以決定你的採信度。 對發問者而言,這樣是不是有意義多了? ●三不政策 現代學生有三不政策:不講話,不回答,不要問我。不論是 在大學殿堂,或是公司職訓,我往往面對沉默的台下,所以 我也學會從來不做田野調查 — 要人舉手點數那種。 是的,連舉手都有人不願意。任何會曝露自己任何狀態的動作, 統統拒絕。 這大概是為什麼大家喜歡上網發問的原因了。呵,沒人知道 我是誰。 學生心頭有疑問,不喜歡上課問,喜歡下課問。我完全知道 癥結所在。因為你心裡頭掙扎『這個問題有水準嗎?藏拙算了, 不要自曝其短』。於是上焉者下課來問,下焉者完全不問。 有的老師回答某些層次不高的問題時,會帶著揶揄的表情 或口吻。這種老師應該為現代學生的三不政策負點責任。 不願自曝其短,是正常的人性。那麼,你應該做的是,課前 預習。唯有課前預習,或課後複習,才有信心你所問的問題 有沒有水準,不是嗎?我真不知道現在還有多少學生有 課前預習的習慣。我的班上有一位,我很欣賞他的積極。 下學期我讓大家都帶面具上課,保證問題多得不得了。 ●眼界 .1 從一連串 C++ 學習之道的討論信中,衍生出 C 和 C++ 的關係、 C 和 C++ 的能力比較。 老掉牙的問題! 有人不認為 C++ 比 C 優秀,認為別人大力捧 C++ 是因為沒 看過那種「C 功力出神入化」之神人,那種「C 語言程度高到 讓人難以想像」之怪物。 是的,我確信,所有 C++ 能做的事,C 都做得到。 "Inside the C++ Object Model" (中譯《深度探索 C++ 物件模型》, 侯俊傑譯,碁峰 1998)或是 "The Annotated C++ Reference Manual" (無中譯本)書中,把許多 C++ 的奧秘(例如 object model, vptr, vtbl, template, inline...)都曝露出來,讀者甚至可以因此寫個 C++ 編譯器(當然,方向有了,你可能需要知道更多實作細節)。 也許,C++ 編譯器便是以 C 語言完成的(我不確知)。 那麼,有什麼是 C++ 做得到而 C 做不到的呢? 沒有。 問題是,「可用」不見得「最好」。想想付出的代價。 我接觸 C++ 的前數年中,和同事有時候會去聽些課程。 我的慧根差,連 OOP 都轉不過來;我的同事慧根好一些,略可 掌握 OOP。至於 OOA/OOD,我們兩人都嗤之以鼻,私下竊想, 那些騰雲駕霧高來高去的老師,自己到底懂不懂呀。 但是我們只敢互相調侃開玩笑,不敢真的公開表達。即使 表達,也語多保留,容有迴旋。 因為我們知道,OO 這一軟體界的大勢,這麼多人的研究,這麼 多人的讚美,不可能沒有原因。我們也知道自己之不悟,怕只因 自己的淺薄。 後來我因此對 OO 失去了興趣,改攻 Windows(programming & OS), 我的同事則繼續深究。他雖不喜歡看書,但 C++/OOP 的書倒是 狠K了不少,並以個人卓越的 programming 功夫,在這個領域 成為專家。 我自己終於在研究 MFC 的時候,不得不痛下決心好好搞 C++/OOP。 所以我是為了運用一套 C++ class library,才開始學 C++。 要搞當然就要搞點成績(並且也因為搞出興趣),所以才往 object model, framework infrastructure, generic paradigm 繼續搞下去。 我再說一次,「可用」不見得「最好」。 我再說一次,一種技術,一種 paradigm,得到多人(可說是整個 業界)的推崇與讚美,不可能沒有原因。 眼界未開的時候,要知道自己眼界未開,保持謙遜。 ●眼界 .2 十年前,我有了第一部車。於是我開始知道坐在駕駛座上的 各種狀況。 有一天我和朋友夜至景美訪友,坐朋友的機車去。機車大燈壞了, 我很擔心,要他閃方向燈一路騎去。他斥為無稽,並且說台北路燈 那麼亮,我們看得見別人,別人也看得見我們。 但我知道汽車座裡的駕駛從反光鏡看不見我們。 是看得見,但是要仔細看。如果仔細看反光鏡,就無法分神看前方, 所以駕駛人看反光鏡都是目光一瞥而已。在夜間,只有燈光才能讓 他瞥到。他不是在看後方有沒有物體,他是在看後方有沒有燈光。 我很慶幸在冒險夜騎那輛沒大燈的機車後,現在還活著。 我的朋友沒開過車,所以他不知道這種情況。我開過車,所以我知道。 這是我和他在那個時候,就交通工具的駕駛而言,層次上的差異。 我開小客車,所以對於七人座廂型車、九人座廂型車也都能夠輕易 掌握,立刻上手。但是要我開 10 輪大貨卡、兩噸半、甚至怪手, 我就知道有級次(order)上的障礙需要克服。要我開飛機,那級次 更高了。 機車的駕駛難度,以及可遊距離,和汽車有一個級次的差距。 汽車的駕駛難度,以及可遊距離,和飛機有n個級次的差距。 所以我們沒有辦法和井裡的青蛙談廣闊的天,和河裡的魚談汪洋的海, 和燕雀談鴻鵠之志。 但是我們必須有謙遜的心:在級次更高的人面前,我們便是他們眼中 的青蛙、河魚和燕雀。 --- the end -- ※ Origin: 楓橋驛站<bbs.cs.nthu.edu.tw> ◆ Mail: jjhou@ccca.nctu.edu.tw
文章代碼(AID): #v0TLm00 (CompBook)
文章代碼(AID): #v0TLm00 (CompBook)