當前位置:編程學習大全網 - 編程語言 - 編程的路很艱難,有時候就像在叢林中尋找出路...

編程的路很艱難,有時候就像在叢林中尋找出路...

最近 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++ 編譯器功能的 C library 附在 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)上的障礙需要克服。要我開飛機,那級次的障礙就更高了。

機車的駕駛難度,以及可遊距離,和汽車有1個級次的差距。汽車的駕駛難度,以及可遊距離,和飛機有n個級次的差距。

所以我們沒有辦法和井裏的青蛙談廣闊的天,和河裏的魚蚌談汪洋的海,和燕雀談鴻鵠之誌。

但是我們必須有謙遜的心:在級次更高的人面前,我們便是他們眼中的井蛙、河魚和燕雀。

  • 上一篇:WIFI用什麽加密算法
  • 下一篇:為什麽要學Python
  • copyright 2024編程學習大全網