1. 程式人生 > >給年輕程式設計師們的10點啟示

給年輕程式設計師們的10點啟示

最近,陸續在51CTO和CSDN上看到好幾篇寫程式設計師如何成長,如何拿到高薪的文章。文章都很不錯,一些觀點也很實用,但整片文章讀下來,我總覺得意猶未盡,感覺還應該再給年輕的程式設計師們說些什麼似的。

我其實離開正式的程式設計師崗位(當時我是一名架構師)已經快3年了,現在我仍然在業餘時間做一些感興趣的開源或個人專案。但我發現恰恰是最近幾年,讓我能夠從不同的角度和視野,對程式設計師這個職業有了更深入的理解和認識。當我成為一名IT管理者,我從更多的程式設計師的身上看到他們身上的一些特質對其職業生涯所產生的影響;當我開始自學設計,我從一些設計大師們那裡得到很多極具啟發性的觀點,發現這些觀點對那些程式設計師同樣具有很大的價值;而當我開始寫作時,每一篇文章過後與年輕程式設計師讀者們進行交流的過程中,我的想法和觀點又得到了進一步的完善和提升。

因此,我迫不及待地將這些記錄下來,希望從一些不同的角度給予年輕程式設計師朋友們一些啟發:

1. 正確地認識自己

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

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

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

2. 比一般人更加努力

我曾看到一個關於天才與普通人的有趣漫畫(很遺憾我沒能找到原圖,只能用文字進行描述):
圖1:。一個普通人每天都很努力,他頭頂上顯示的能力槽也在慢慢地增長。而圖中的另一個天才,則整天不務正業,當然他頭上的能力槽也幾乎沒有增長。
圖2:經過了長時間的努力,普通人頭頂上的能力槽慢慢接近了滿格,此時圖中的那個天才醒悟並開始了努力。
圖3:又過了一段時間,普通人頭頂上的能力槽終於滿格了,但此時天才頭頂上的能力槽卻早已爆表,高出了那個普通人很大一截。那個努力的普通人只好無奈地擡頭仰望著那位天才。
圖4

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

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

3. 適時建立個人權威

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

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

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

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

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

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

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

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

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

(最近,我在自學一些簡單的機器學習語言,從中就受到了一些很有價值的啟發,我也希望後面能通過幾篇文章來分享給大家。)

6. 拋開程式碼與人溝通

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

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

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

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

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

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

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

8. 生活、睡眠、旅行

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

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

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

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

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

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

  • 讀那些優秀的書籍:好的想法絕不是憑空產生的,嘗試從書中去尋找那些能激發你創意和靈感的優秀內容
  • 記錄和收集:嘗試用一本小本子,將你轉瞬即逝的好想法記錄下來,它們可能並不直接有效,但下一個更好的想法可能就是從這些你記錄下來的想法中產生的
  • 嘗試動手:光有好的想法是不夠的,你需要成為一個有工匠精神的人,通過親自動手去嘗試和實踐,你會不斷從中得到新的創造力。

10. 如果上面提到的其他建議都對你無效的話,那麼就請堅持第2點建議吧“比別人更努力地工作”,因為它將成為你最大的競爭優勢。

想學前端的小夥伴,可以關注+私信回覆《資料》免費獲取哦~

感謝您的閱讀!喜歡的