如何成為 Java 冠軍程式設計師?

WBOY
發布: 2016-07-25 08:47:02
原創
990 人瀏覽過
但有些程式設計師朋友們一直在向我徵求職涯的建議,現在我覺得是時候再寫一篇了。順帶提及,如果你有心思去看其他的東西——我已經開始在 Heinz’s Worst Recipes (海因茨最差食譜)上記錄我所烹飪過的那些慘不忍睹的食物。受我好吃的強烈慾望所致——這可以由我的腰圍證明,烹飪成為我的一大愛好。我遠遠不能成為一個合格的廚子,因為我從來不遵循食譜,由此我所烹飪的許多食物也以“黯然不可食”的狀態被拋棄掉,當然有時在做了足夠的嘗試、出了足夠多的問題後也能遂我所願。在我的部落格中,成功和失敗的例子都被記錄了。當然,這和Java毫無瓜葛。
如何成為Java冠軍程式設計師?
幾個月前,我和的商務夥伴 Carl 以及我們的法國課程導師 Xavier 在巴黎的一家餐廳用餐。在談話中,我和 Carl 就年輕時使用的那些酷炫技術而談笑風生。同時,我注意到Xavier 沉默良久,於是我決定詢問他的年齡。雖然不能確切的想起他的年齡,但我記得他與我年齡差距很大,和我第二個孩子的年齡相仿。這意味著,多少年來,我和 Carl 同時有過的那些程式設計經歷,對他來說一文不值。
軟體工程師的職業生涯裡,知識有一個三年的半衰期。這意味著三 年後,你所擁有的一半知識是毫無價值的。舉這樣一個例子,年紀越大,就越難看到有誰能夠了解 TSR(內存駐留程序 Terminate-Stay-Resident ),而找到曾經寫過一個 TSR 的人更是如同大海撈針。在 DOS 系統裡,並不能讓多個程式同時運作。因此,在我們需要一個後台功能的時候,例如日曆或計算器,我們就會寫一個記憶體駐留程式( Terminate-Stay-Resident program ),然後透過特定的組合鍵從另一個程式啟動。
在這個行業裡,知識的三年半衰期其實是件極好的事情,這使你永遠不會變成沉舟病樹。少年時期,人們警告我、反對我成為一個程式設計師,認為我將被迫持續學習 新東西,而我卻認為我們的工作將因此而受益。首先,頭腦應該保持新鮮和活躍。上次見到我祖母的時候,她已經98歲了,行走不便,但依然心如明鏡。她看 到我的 Macbook Pro 便說:「喲,這看起不錯,我也想買一個。」正是因為她不斷地學習新東西,使得她頭腦清醒。其次,忽略那些你並不是非常感興趣的技術,因為不久之後它們就會 被取代。我舉一個 Subversion 的例子。我過去使用它,因為我必須使用它,但我沒有特別對待它,我並沒有成為一個 Subversion 的專家。幾年之後,git 出現了,只能對 Subversion 揮手拜拜。可悲的是,今年我有一個客戶居然從 CVS 遷移到 Subversion !這可是 2015 年!
好了,讓我們重返的主題-怎樣成為冠軍程式設計師?我認為以下幾點是非常有幫助的:
強大的記憶力。當 我上八年級的時候,全因那位死氣沉沉的歷史老師,讓我自己都相信我的記憶力太差了。然而,令我驚訝的是,歷經多年程式設計師的工作,我驚訝地發現自己對之前看過 過的 Java 原始碼可以立即重現。在我閱讀 JDK 裡的一個方法(method)的時侯,我常常能說出該方法(method)相較先前版本有無改動。也許我並不能記清楚某個人的長相和名字,但是對於 Java 程式碼可以做到過目不忘——要是人的名字也是 for 迴圈就好了。所幸,缺乏好的記憶力也絲毫不影響我們成為冠軍程式設計師,但擁有強大的記憶力依然是明顯的優勢。
數學能力。不是成為一個數學高手才能成為一個好的 Java 程式設計師,但數學能力顯然會幫助你擁有成為優秀程式設計師的資格。今年一月我有點空閒時間,於是決定去試試歐拉謎題(Project Euler)。其中有一個謎題需要運行九個半小時去尋找解決方案。在它運行的過程中,我看了一下這個問題,然後發現其中數位間的一點關係,這可以用來優化解決方案。我再次運行,這次只花了 6 分鐘。同時,我第一個演算法仍然持續運行,嘗試找到答案。我再次回到數字中去,發現了另一個沒有見過的模式,現在它只需要 6 秒鐘就完成了。我也嘗試過用聰明的程式設計技巧和並行去暴力優化程式碼,這可能讓速度加快了一點點,但依然沒有辦法使之少於6秒鐘。
大約十年前, Sun 發布了 Java 冠軍程式設計師(Java Champion)計畫。這個點子是用來發現世界上最頂尖的 1000 個 Java 專家,他們在也積極的做事情來幫助 Java 提升。我們現在大概排名在第 160 名。 Oracle 公司持續進行這個計劃,在過去的幾年裡,我們看到了這個認可製度的更多好處。這是一個自選的團體。新的冠軍是被現存冠軍推介並進行票選的。通常情況 下,在選定冠軍之前,需要有十多個贊成,而一個反對就會否決提議。自薦的情況是會被考慮的,但一般不會得到足夠的支持。
程式設計師朋友們常問我是怎麼成為Java 冠軍程式設計師的,「很簡單」我說,「只要和我一樣,發表200 篇Java 相關的文章;要么寫個Hibernate、Spring、 Jacoco或什麼的;或在StackOverFlow 上回答數千個問題並出版一打好文章;或組織歐洲最大的Java 開發者大會。精力。沒有人因為他們的個人魅力和顏值而成為 Java 冠軍程式設計師,全靠辛苦工作才可以,這也許是為什麼我們的名字後面沒有臉部照片的原因 ;-) 。甚至,不要為成為冠軍程式設計師而成為冠軍程式設計師。摒棄私心、等待其他人的讚揚,這將讓你感覺更好。並不是每個冠軍程式設計師都會被官方冠以「Oracle Java Champion(甲骨文Java冠軍程式設計師)」的稱號。
無論你選擇了哪種方式,成為冠軍程式設計師就意味著奉獻。和朝九晚五式的上班是完全不一樣,你不可能在上班時學到所有你需要的知識。而要成為冠軍程式設計師,需要利用晚上和週末的時間學習,以保持與時俱進。最誇張的笑話是,程式設計師一到40歲就會進入淘汰期。也許他們在Java 程式設計上做的還不錯——除非他們透過閱讀書籍、文章,或是參加開發者大會和具有挑戰性的課程來刷新他們的知識——否則僅僅依靠一紙文憑,終將變得毫無價值, 這個行業將會把他們像用過的餐巾紙一樣拋棄掉。千萬不要變成這樣的人!學習,學習,再學習!而最好的學習方式無疑是和你的同僚分享知識。
怎麼樣分享你的知識呢?如今,我們有很多方式可以選擇:可以在StackOverflow 或其他類似的網站上回答問題;可以在午餐時間透過叫外送來討論技術問題——許多年前在我所在的一家公司裡,我們就透過這樣的方式過了一遍”Design Patterns」。這需要一點犧牲,你可能必須放棄午餐,花費某些晚上去準備你的會談。然而,比起單純地做一個資訊的消費者,這能學到的東西要多得多。
「The Java™ Specialists's Newsletter」 現在為130多個國家的70000 多程式設計師所閱讀,但開始起步的時候非常微小,我把它發給我的八十個朋友和家人(包括我哥哥,和我父母),我懇求他們轉發給他們的朋友和同事。隨著時間地推移,它慢慢地發展。我相信,如果你觀察周圍,你可以找到 80 個電子郵件地址,這就是它怎麼起步的。萬事開頭小。它發展緩慢,但是成長很穩定。我知道當你看到 70000 這個數字,可能會被震懾,但這只是 Java 程式設計師很小的比例。
最後,我想以一個非常有幫助的要點來結束這篇文章:熱忱。大部分人不得不做枯燥的電腦工作,很少人能在其中享受。在我的一份工作裡,他們把組織原始碼庫的工作安排給一個電子工程師。他完全搞錯了——當他在做原始碼控制的時候,讓我們在目錄之間拷貝原始碼樹。每週的build時我們都要同時做這件事,伺服器就像爬蟲一樣緩慢。在機器卡殼的時候往往需要幾個小時,所有的人都只能慢慢等,這是令人痛苦和沮喪的。我對 VSS(Visual Source Safe:用於管理軟體開發中各個不同版本的原始程式碼和文件)毫無熱情。找到一個你令你感到熱愛的事情,它他應該是你下班後非常願意做的事。對我而言,就 是研究 Java 生態系裡的犄角旮旯。熱忱就是,當有無數個理由要我們停下,它依然驅使我們前進。
這有點像我喜歡烹飪的原因。只不過幸運的是,我編程要比做菜水平高一些。
免費領取LAMP兄弟連原創php教學光碟/《細說PHP》精要版,詳情諮詢官網客服:http://www.lampbrother.net

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板