1. 程式人生 > >Java夜未眠·經典句子選載

Java夜未眠·經典句子選載

最近在讀前輩蔡學鏞《Java夜未眠·程式設計師的心聲》,幾天就看完了,裡面的內容很好懂,圍繞Java展開一系列的話題,包括社會現象,他自己的生活,說實話,這本書對我們程式設計師很有幫助,有時候是把你自己的心聲說出來了,是啊,資訊產業的變化速度太快,我們這些程式設計師其實是很累的,要不斷的學習的新的東西才不至於被淘汰。蔡學鏞前輩的句子幽默有趣,儼然不失一個技術作家的大家風範,也許是因為他也讀了很多Java經典書籍的緣故吧。下面我就選載一些很有趣很有用的句子,希望對大家有所幫助.

學習,是一條漫長的道路

培養興趣把程式設計當成興趣可以讓你學得更快樂,學習效果自然會更好。在我到一個單位面試時,主管看了我的履歷之後問我:「你怎麼有這麼多時間學會這麼多東西、做這麼多事?」

我的回答是:「把工作、學習、和娛樂結合在一起,時間就會是別人的三倍。」

多讀好書,少上課大量閱讀好書,是精進自己的不二法門。在這種快餐時代,許多人沒耐心讀書,反而喜歡到處上課,所以現在到處都是計算機班。如果遇到厲害的好老師,當然上過他(或她)的課會收穫很大,只是目前好老師的比例實在不高(雖然我自己也在開 Java/Enterprise Java/Java Swing 的課,但我還是得這麼說)。我曾在網路上看到有人說:「沒聽過補習班教出什麼程式高手」,這倒也有幾分真實性。不過一方面要歸咎老師之外,一方面也要歸咎學生,因為我發現通常上課的學生會在家裡讀書和寫程式練習的比例不高。

加強英文閱讀能力加強英文和崇洋無關,而是有它實際的價值。許多資訊都是要直接看英文的資料,因為沒有中文版可看。

問人之前,先問自己遇到問題,可以到國內外的程式設計相關討論區去請教別人,如果態度謙遜,且問題敘述清楚,相信許多有經驗的前輩會很樂於參與討論。不過,凡是遇到問題就發問,這不是好事,因為你會因此越來越依賴別人,而失去了自我解決問題的能力。自己應該嘗試著查書、寫程式測試、甚至閱讀原始碼,來找出答案。如此一來,真的沒辦法而請教別人時,也才能比較深入地討論。

多寫程式學程式設計不可以只看書,將隨書光碟的程式執行一次,就認為自己已經學會了。應該開始寫一些程式,且由小到大,由簡單到複雜。找一些有趣的題目(比方說:計算器,踩地雷,小畫家,俄羅斯方塊),可以提升寫程式的動力。

向上延伸,向下延伸,向旁延伸

當你發現你已經可以掌握此程式語言之後,你可以選擇:向上延伸:學習物件導向分析設計、Design Patterns、以及軟體工程。讓自己具有做大型計劃的能力。向下深入:深入瞭解內部底層的機制,例如作業系統(甚至硬體)內部。向旁延伸:學習不同的API,例如:多媒體、資料庫、企業運算另外,資料結構、演算法、編譯原理等基礎也很重要。

開後門

如果沒有在軟體開發的過程中實施XPeXtreme Programming)所提倡的Pair ProgrammingPeer Review),那麼程式設計師就有機會在程式中開後門,感謝見不得人的勾當。

利用此手法,你可以進行收集資訊。此程式在客戶的計算機上執行時,你彷彿在客戶的計算機中裝入一個“內神”,你最好再設計一個情報收集網站“外鬼”,一旦“內神通外鬼”,就可以進行五鬼搬運,客戶的資料一五一十地通通落到你手中。

也有人利用此手法進行遠端遙控,甚至進行惡劣的破壞行為。簡單的因應之道有二:

少用來路不明的軟體,多用Open Source的軟體。

少用native程式,多用Java程式,因為Java程式可以利用policy tool來關閉程式的某些許可權。

職業敏感度

軟體人要有軟體人的職業敏感度,有職業敏感度的人,每天都在不自覺地增加專業功力。許多工作上棘手的問題,甚至會在一覺過後就突然「悟出」解決之道。我也有過這樣的經驗,睡夢中夢到某一道指令可以解決我的程式問題,馬上從床上跳起來衝向計算機,只不過,Oops!我很快地發現這道指令根本是不存在的

如何培養高度的職業敏感度?讓自己暴露在大量相關的資訊下是最自然的方式。比方說,如果你希望培養 Java 的職業敏感度,你不妨把瀏覽器的首頁設定成 JavaSoft 或是 JavaLobby,每次開啟瀏覽器就會有相關資訊進入你腦海;訂閱幾份 Java mailing list。如此一來,你就可以漸漸地把這些當成生活中的一部份。

從美麗的菲奧莉娜說起

許多女生一直都有錯誤的觀念,認為自己「邏輯觀念又沒男生強」,所以「程式作業當然是找男生幫忙」,也因此資訊系的男學生都很搶手。大一時女生多的科系喜歡找男生當學伴(或稱學友),因為他們認為男生可以幫他們寫計算器概論的程式作業。沒有學伴,或者學伴自己也寫不出來,女生只好上網尋求幫助。這些幫助的 post 分為幾種風格:

·
 比較古典的標題「小女子有難,請程式高手拔刀相助」

·
 比較新潮的標題「美眉需要各位葛格幫忙寫一個程式」

·
 比較淑女的標題「請各位大哥幫小妹解決程式問題好嗎」

·
 比較情色的標題「需要有人幫忙寫程式,我願意以身相許」

·
 比較怨天的標題「我是女生,所以不會寫程式,請幫忙」

·
 比較尤人的標題「老師出的程式好難,害人家都不會寫」不管標題風格為何,這些女生無非是來要作業的,絕對不是自動自發練習時遇到問題為求甚解而主動發問。女生真的比較不會寫程式嗎?我可不這麼認為。女生學習外國語言的能力比較強,學習程式語言應當如是。而且女生的心思比較細膩,不若男生的粗心,所以寫出來的程式可能比男生的程式 bug 更少。諸位女性們,你們應該從今天起,卯起來寫程式,好改變大家對你們既定的印象。

走出你自己的成功之路

我不想矯情地說:“我喜歡失敗,因為失敗帶來後繼的成功”。但是成功的確是需要長時間努力的付出,才有可能實現,而失敗會是成功路上免不了的石頭。

A E+

「終生」有效的貴賓卡,這理所謂的「終生」恐怕指的不是我的終生,而是他們的終生。

人才「瘠瘠」他們的供貨商大都知道,他們有一間神奇的倉庫,這間倉庫的管理員精通資料結構,他不是採用 FIFO 先進先出的演演算法,也不是採用 LIFO 後進先出的演演算法,而是發明了一套 OINOOnce In Never Out)只進不出的演演算法,且此演演算法被他們尊為管理倉庫的圭臬,奉行不渝。什麼東西「只進不出」?我想來想去也只有宇宙的黑洞可以比擬。根據天文學家的說法,黑洞是種體積很小,但是質量很大的星球,可以將周遭的物質,甚至光線都吸進去。天文學家或許要窮其一生才能找到宇宙的一個黑洞,但是我不需天文望遠鏡,不需要複雜的數學計算,輕易地就可以在此找到許多黑洞,例如:庫存黑洞、財務黑洞 ......

軟體產業的知識經濟專業知識是一種無形的資產,不容易評估其價值。但是大致上,專業知識可以分成四個層次,價值由低而高分述如下。
Know-What
受過訓練,通過認證,而精通某領域的基本知識,這類的知識就稱為 know-what,也稱為認知性的知識(cognitive knowledge)。know-what 是一切知識的根基,但是有了 know-what,並不表示有能力可以活用這些知識。許多軟體人員在通過專業認證之後,就開始學會獅子大開口了,其實他們的知識可能還停留在 know-what 的階段,而 know-what 階段的知識對公司來說是沒有太多生產力的。此階段的軟體人員應該努力地提升自己,以進入下一個階段,也就是 know-how

Know-How
know-how
階段的知識也稱為進階技能(advanced skills),指的是可以活用書本上學來的知識、理論,以解決實際的問題。know-what 的知識或許可以透過「填鴨」方式生硬地吞下去,但是 know-how 的培養一定要透過實務經驗的累積與體會。如果有一個好老師或 leader 的引導,know-what 可以很快地提升成 know-how,靠自我的培養則通常會比較辛苦。不過,當我要引導學生由 know-what know-how 時,往往會有許多「不識貨」的學生嫌我囉唆。
Know-Why
know-why
階段的知識指的是對整個系統的掌握度(system understanding),也就是了解各種知識背後複雜交錯的因果關係。有了 know-why 的知識,軟體人員除了能順利地進行軟體計劃之外,還能進一步解決更大、更復雜的問題,因為一切的知識都是有條理的。具有 know-why 的軟體人員對整個計劃具有強烈的「第六感」,可以直覺地做出正確的判斷,預先知道可能會遇到的問題。計劃的 leader 必須具備 know-why,才能全盤掌握計劃。

Care-Why
care-why
指的是自發性的創意(self-motivated creativity)。有了源源不絕的創意,才能保持高度的競爭力。軟體產品相當需要創意和洞燭先機的能力,在大家一窩蜂搶做某軟體或某服務之前,就已經先完成深度的耕耘,技術自然比別人來得紮實,也能迅速地迎合市場需求,為公司創造最大的利益。時間和努力見證知識經濟欲創造軟體界的知識經濟,沒有特效藥,而是需要相當時間的努力才會有成果的,軟體公司應該致力於提升員工的知識層次,由 know-what 進化到 know-how,再由 know-how 進化到 know-why,乃至於 care-why。而軟體人員也不應該以自己現有的知識為滿足,畢竟知識是無止境的。我們都該問問自己,自己的知識是在哪個層次呢?

苦恨年年壓金線,為他人作嫁衣裳

許多人嫌侯捷先生翻譯的書以及O'Reilly臺灣分公司翻譯的書貴,但是卻沒想到譯者的辛苦。一個好的譯者,做出一本好書,可以提升你的技術能力,絕對值得多花一些錢購買。即使在我是個窮學生的時候,我還是隻管買好書不管價錢的。書價過於低廉,會造成出版社的營運不良,影響所及譯者拿不到好的稿酬,造成有能力的譯者不願意再翻譯,使得資訊圖書品質低落。淪落到此,讀者得到了什麼好處?