金三銀四尾聲,獻給還在面試Java開發的你們

金三銀四尾聲,獻給還在面試Java開發的你們

 

1. 正確地認識自己

我聽到過很多用來形容程序員的網絡詞彙,碼農,程序猿,軟件工程師,張江男,屌絲程序員等等。其中大部分都略帶貶義,有些甚至是程序員們自己發明出來用於自嘲的。其實這些稱呼對你來說並不重要,關鍵是你自己內心中用了哪一個詞彙來描述自己。當你僅僅將自己定位成一個碼農,那你可能就是那個整天用着相同的工具,寫着相似代碼的碼農;你把自己看作是一個屌絲程序員的話,那你也可能就是那個衣食不愁,但整天渾渾噩噩、無所追求的屌絲。

我更願意用技匠這個詞來形容像程序員,就像我給自己起的花名一樣。程序員應該是那些不斷追求更高技術,並有着自己產品夢的工匠。當你通過對自己技術不斷打磨,一次又一次做出那些優秀產品的時候,你會發現你不再是他人口中的碼農或是屌絲,而更多被稱爲了大師、大神,而受到大家的尊重。

我相信沒有一個真正的程序員是願意將自己視爲碼農或屌絲的,那麼不妨也像我一樣找到一個能真正反應你內心的詞彙來描述你自己,通過努力,你會慢慢變成你想象的樣子。

 

2. 比一般人更加努力

我曾看到一個關於天才與普通人的有趣漫畫(很遺憾我沒能找到原圖,只能用文字進行描述):

圖1:。一個普通人每天都很努力,他頭頂上顯示的能力槽也在慢慢地增長。而圖中的另一個天才,則整天不務正業,當然他頭上的能力槽也幾乎沒有增長。

圖2:經過了長時間的努力,普通人頭頂上的能力槽慢慢接近了滿格,此時圖中的那個天才醒悟並開始了努力。

圖3:又過了一段時間,普通人頭頂上的能力槽終於滿格了,但此時天才頭頂上的能力槽卻早已爆表,高出了那個普通人很大一截。那個努力的普通人只好無奈地擡頭仰望着那位天才。

圖4:但當普通人默默回過頭來,卻驚訝地發現有更多的人正同樣充滿敬意地仰望着他,因爲此時的他也早已成爲了大多數人眼中的那個佼佼者。

這組漫畫非常發人深省,優秀的程序員往往會被同天才或高智商的人聯繫在一起,但是我想告訴你,你周圍所看到的那些天才(身邊的優秀程序員)只是在你沒看到的時候花了更多時間工作或者學習而已,當你也堅持這麼做時,你也會和他們一樣變得非常優秀的。

 

3. 適時建立個人權威

我以前有一個美國同事,是個東歐人,在公司裏負責一個非常老舊系統的開發和維護工作,用的技術也是幾乎快被淘汰的Power Builder,因此他在公司裏是個不怎麼被重視的人。然而有一天,他突然拿着筆記本電腦敲開了老闆辦公室的門,並且給老闆展示了一個非常漂亮而且易用的Web系統。原來他利用業餘時間自學.NET技術,將他所負責的那個系統整個重寫了一遍。這個煥然一新的系統一下子讓老闆和整個公司驚呆了,大家由衷地對他報以敬佩之情。不久,他便被提拔爲了開發團隊的負責人,而他的那套系統也很快作爲公司的拳頭產品推出了。

我經常聽到一些程序員抱怨自己的職業生涯毫無起色,或者在工作了幾年之後就擔憂自己遇到了瓶頸。其實造成這些的原因往往是他們已經習慣了聽命於人,而缺少自己的觀點和主張,久而久之便成了那個在他人眼中可有可無的平庸之人。你不妨也學一學我的那位美國同事 ,選擇合適的時機去表現自己,建立個人權威,這能讓其他人看到你的不同之處,併爲你在公司或團隊內部構建起良好的影響力。當然,這一切的前提首先是你需要通過努力積累自己的實力,並在恰當的時候去展現它。

 

4. 遵從那些最佳實踐,因爲它們往往是有效的

技術總是在不斷髮展,我們每年都能看到很多新的開發語言、工具和框架的出現,而每隔幾年又會有一些大的技術變革產生。那麼作爲程序員,如何才能適應適應這種變化呢?其實,就像每年都會有新的流行設計趨勢,然而設計的本質和原則卻始終不變一樣。作爲一名程序員,你也需要嘗試去理解那些軟件領域最本質的東西,而我的建議是就是學習那些最佳實踐。

當你理解了GOF的那些經典設計模式,你會知道使用一個單例來最有效地實現一個Logger組件;當你理解了SOA或是最新的微服務架構,你能夠通過架構使你的企業IT治理更加有效;當你理解了DEVOPS這種新的運維文化和理念,你能使企業IT運維效率得到顯著的提升。你還需要理解在網絡安全、性能調優、代碼優化等各個方面的最佳實踐,使你寫出更高質量的代碼和做出更優秀的產品來。

這些最佳實踐或由此衍生出來的框架、工具都是那些有經驗的程序員通過大量實踐總結出來最優秀的軟件開發思想,通過理解和對它們的有效實踐,能夠讓你站到前人的肩膀之上,對軟件開發本身獲得更深入的理解和認識。

 

5. 保持好奇心並樂於探索新的事物

好奇心可能是優秀程序員與普通程序員之間最明顯的區別之一。那些優秀的程序員往往不滿足於對手頭工作的認識和理解,他們有很強的意願去了解那些更深入的東西。比如他們會通過研究公司的框架(甚至是更底層的框架)源代碼,去了解它們具體的實現原理和設計思想。這對提升程序員的技術深度是非常有幫助的。

另外,優秀的程序員們也往往非常樂於探索那些看似與工作無關的技術,比如做後端的程序員去學習前端的技能,前端工程師則去學習UI設計等等,這些不會讓他們成爲那一個領域的專家,但技術往往是相通的,當你在探索這些新鮮事物的同時,你會發現原有的技能也得到了提升。

 

6. 拋開代碼與人溝通

“緊盯着電腦屏幕,不斷敲擊鍵盤,目光有些呆滯。”這可能是程序員給人的印象。而我所看到的那些優秀的程序員卻都不是這樣的,他們往往興趣廣泛,並且都非常樂於與人溝通交流。

程序員們很容易會忽視與人的溝通,這其實對他們的職業生涯發展是不利的。我很支持那些年輕的程序員們堅持去走技術路線,但這不應該成爲你排斥與人溝通的理由。你需要與人溝通來獲得他人的幫助;你需要與人溝通來建立良好的工作關係;當你的能力不斷提升,被賦予更多職責時,你更需要與人溝通來管理好自己的團隊,以及與老闆或客戶進行有效的溝通等等。

嘗試離開你的電腦桌去與人溝通,相信我,這會給你的工作和生活帶來積極的變化。

 

金三銀四尾聲,獻給還在面試Java開發的你們

 

 

7. 不要爲愚蠢的人工作,否則你會變得和他們一樣

還記得我面試過的那位優秀的UI設計師嗎(給職場新人的10點職涯建議 中提到的)?當問到他的離職原因時,他告訴我,當他每天聽到他的老闆和同事們聊天內容的大多是股票、育兒、遊戲時,他就下定決心要離職了。

環境對一個人的影響是巨大的,而最可怕的是當你身在其中的時候很難意識到你正在變得越來越糟。我之前帶過一些不錯的程序員,他們中的一些人去到了一些整體氛圍或環境不是太好的公司。當過了一段時間,再次與他們碰面聊天時,我發現他們的思維觀點相較之前並沒有提升,有些甚至反而下降了。

我其實並不鼓勵程序員盲目跳槽,但當你發現所在的環境和周圍的人已經無法讓你獲得提升時,不妨學一下我提到的那位設計師,選擇一個更好的環境,儘可能與那些優秀的人一起工作。

 

8. 生活、睡眠、旅行

我們時常聽到關於程序員因疲勞過度而猝死的新聞,我非常爲他們感到惋惜。但這裏所反映的一個問題卻值得深思,那便是程序員不懂得生活。我希望每個程序員都能明白工作、技術、寫代碼這些都不是你存在的本質,而生活纔是,你需要懂得生活,並且學會生活:

生活:嘗試有節制和有規律的生活,程序員生涯絕不是一次衝刺跑,而更像是一場馬拉松。你需要合理規劃自己的時間分配(學習、閱讀、寫代碼)並持之以恆地去做。另外,不要忽視你的家庭,扮演好你在家庭中的角色,無論你是與父母還是與妻兒住在一起,不要將自己隔離起來,嘗試融入其中,做一個快樂有愛的程序員。

睡眠:有很多人覺得睡眠是弱者的表現,他們往往會長時間熬夜,其實我覺得這是一種惡性循環,反而會使你的工作效率變得更低。充足的睡眠往往能使你更有效率地投入到新一天的工作中,你也會變得更有創造力。請記住,保證充足的睡眠將使你變得更加強大。

旅行:去任何一個新的地方都可以稱之爲旅行,旅行不是爲了放鬆,因爲你需要坐飛機,開車,走路,這些都會使你產生壓力,但你仍需要去旅行,因爲這能讓你發現和感受新的東西,而這些是從電腦屏幕上無法獲得。

 

9. 相信自己的天賦和創造力

做到以上這些,你已經是一名優秀的程序員了,但你離傑出還差了一點。你需要依靠你的天賦和創造力,讓你更進一步。天賦和創造力絕不是那些天才的專利,每個人的身上都有屬於他自己的天賦和創造力,但它們也絕不是與生俱來的,你需要在生活中不斷地培養和發掘它們。下面是我覺得一些行之有效的方法。

讀那些優秀的書籍:好的想法絕不是憑空產生的,嘗試從書中去尋找那些能激發你創意和靈感的優秀內容。

記錄和收集:嘗試用一本小本子,將你轉瞬即逝的好想法記錄下來,它們可能並不直接有效,但下一個更好的想法可能就是從這些你記錄下來的想法中產生的。

嘗試動手:光有好的想法是不夠的,你需要成爲一個有工匠精神的人,通過親自動手去嘗試和實踐,你會不斷從中得到新的創造力。

 

10. 如果上面提到的其他建議都對你無效的話

那麼就請堅持學習吧,因爲它將成爲你最大的競爭優勢。

金三銀四尾聲,獻給還在面試Java開發的你們

 

轉發+關注

私信我“面試”即可獲取以上Java架構視頻面試資料。

何時進步?

《Java學習、面試;文檔、視頻資源免費獲取》

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