程序員的八種境界

原文鏈接:https://blog.csdn.net/happydeer/article/details/8107560

在求職的時候,相信很多人都被問過這樣的問題,“你對自己未來5年的職業規劃是怎麼樣的?” 每當我被問起這個問題的時候,我的腦海裏總是浮現出Twisted Sister樂隊1984年拍攝的一段視頻裏的這個場景:一位老師對着他的學生大喊,“我想要你告訴我,不,是告訴全班同學,你究竟想要過怎樣的生活?”

譯者注:Twisted Sister是一支源自美國紐約的搖滾樂隊,成立於1970年代早期。後來經過將近10年的奮鬥,他們在80年代初取得了較大的突破。然而由於他們的叛逆形象和古怪行爲,在他們最風光的時候,他們被美國政府看作是重金屬毒害青少年的一個典型例子,於1988年被迫解散。

你自然會想:我要變得很牛!或者至少成爲一個很牛的程序員。儘管這個問題看起來並不像其他一些同樣老掉牙的問題那麼嚴肅(比如,“你覺得你最大的弱點是什麼?”),但很可能你還是覺得難以回答。也許有時候你表現得太牛了,不屑於回答這樣的問題。但要小心了,你可能會惹惱別人。

在我看來,這個問題同樣是一個相當嚴肅的問題,值得好好思考一番。不是爲了應付面試官,而是爲了你自己。

對於這個問題,大部分人都會選擇一個不痛不癢的答案來敷衍面試官。但它也確實引出了一個更爲深層次的問題:一個軟件開發人員究竟該有怎樣的職業生涯?當然,我們選擇這一行是因爲我們喜歡這行,並且幸運地得到了老天的眷顧,我們幹上了這一行。但你能在50歲的時候依然坐在電腦前敲代碼嗎?60歲呢?所以,我們得趁還年輕的時候好好思考一下這個問題:作爲一個程序員,最完美的職業生涯應該是什麼樣的呢?

那我就來告訴你吧,基本上,這個世界上的程序員可以有8種境界:

 

1.      不朽的程序員

這是最高境界!雖然人已經走了,但是他的代碼卻依然活着。他成爲計算機博物館中的一個永久收藏。其他爲數衆多的程序員都在學習他的作品。他在生前可能得到過圖靈獎,或者發表了大量有影響力的論文,或者是發明了一些影響到計算機專業課程設置的基礎技術。他已經不僅僅只是擁有一個維基百科的條目,事實上,有很多專門的網站來講述他的作品以及他生平的事蹟。

在人的有生之年能夠達到這一境界的程序員屈指可數。

代表人物:Dijkstra、Knuth、Kay。

譯者注:Dijkstra是一名荷蘭的計算機科學家,他因發明了計算機編程語言而於1972年獲得了圖靈獎。Knuth是《計算機程序設計藝術》一書的作者,他被稱爲算法分析之父。Kay是一名美國的計算機科學家,是面向對象編程、視窗圖形用戶界面設計的先驅者,他有一句名言是:“預測未來的最好辦法是創造未來。”

2.      成功的程序員

成功的程序員不僅擁有廣泛的知名度,同時還運營着一個不錯的公司,甚至控制了整個產業鏈。他們擁有絕對的自由,可以做着自己想做的事情。他們同時還有着把“自由”帶給廣大程序員同胞的夢想。

這一境界的程序員最受人羨慕。要到達這一境界,更多的是需要商業上的才能,而不是你的編程能力。

代表人物:比爾·蓋茨、Carmack、DHH。

譯者注:比爾·蓋茨是微軟公司的創始人,他是個電腦神童,13歲開始編程,20歲開始領導微軟;他同時也是個商業奇才,他利用自己的遠見卓識和精明的商業頭腦讓微軟名噪天下,把軟件做成了人們生活中不可或缺的東西,成就了今日的微軟帝國。Carmack是Id軟件公司的創始人,該公司主要從事電腦遊戲以及遊戲引擎的開發,作品有《半條命》、《反恐精英》、《毀滅戰士》等。DHH是一名丹麥的程序員,他建立了“Ruby on Rails”Web應用架構,並與人合寫了《Web開發敏捷之道:應用Rails進行敏捷Web開發》一書。

3.      知名程序員

進入這一境界的程序員也不錯,當然前提是,你得有一份不錯的工作。

這個境界的程序員雖然在圈子裏很有名,但是成爲名人並不意味着你可以靠這個賺取收入並且養活自己。出名固然不錯,但成功更爲關鍵。你可能在一家非常知名的大型技術公司工作,也可能在一家很有影響力的小公司,或者是在一個很有希望的創業團隊。不管怎麼樣,其他的程序員都或多或少地聽說過你,並且你對你所在的領域有着積極的影響。

4.      勝任的程序員

你作爲一名軟件工程師非常成功,因爲你的能力使你在工作中遊刃有餘。你從來不會爲找一份滿意的工作而發愁。你的同事也非常尊敬你。每一家你工作過的公司都因爲你的加盟而在某些方面得到了提升。

但問題是:你接下來的方向在哪裏?

5.      普通程序員

這個境界的程序員能夠基本應付一般的編程工作。他們自己也很清楚,由於天資所限,他們很難成爲傑出的程序員。

其實,天賦跟成功的關係並不大。如果你有敏銳的商業嗅覺和不錯的人際交往能力,你依然可以變得很成功。如果你是一個普通的程序員,但你還能靠這一行當過上不錯的生活,那已經說明你是很有才的,只是你不必非得幹程序員這一行。

人貴自知之名。通常你的能力都會比你自認爲的要低。缺乏天賦並不是什麼大不了的事情。要勇敢一點,發掘自己的特長,並且充分地加以發揮。

6.      業餘程序員

業餘程序員通常都熱衷於編碼。他們可能是一些很有前途的學生或實習生,也可能正在參與某些開源項目,或者利用個人閒暇時間開發一些“好玩的”應用程序或網站。從他們的代碼和創意可以看得出,他們是一羣很有想法、充滿激情的人。

成爲一名業餘程序員是件好事。這個境界的程序員可以通過自我提升,很快速地勝任程序員這個職業。

7.      低調的程序員

還有一些坊間流傳的比較有個性的程序員,比如JoeCoder,很有能力但是沒啥令世人矚目的成就。他們可能服務於某家大型公司。對於這些人來說,寫代碼僅僅是份工作而已,並非他們生活的全部。這沒什麼錯,挺好的!

8.      爛程序員

這個級別的程序員技能極其匱乏(已無境界可言),他們通常是因爲某些陰差陽錯的原因才幹上這一行的。他們所做的任何事情都會給他們的同事帶來痛苦和災難——當然可能也有一個例外,就是他們的同事也是一幫差勁的程序員,差到連身邊全是一幫爛程序員都意識不到。

如果要給爛程序員下一個定義的話,那就是:沒有金剛鑽,卻偏偏攬了瓷器活。

應該承認,以上所有的這些境界定義得並不嚴謹。其實,不是所有的程序員在他們的職業生涯中都渴望相同的東西。思考一個程序員在他10年、20年、乃至30年、甚至一生的時間內所能達到的成就,是非常有意義的!想一想,你最崇拜哪個程序員?到底是他的什麼成就,使得你對他有如此的崇拜?

話說回來:你究竟想要過怎樣的生活?

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章