如何成為一名優秀的程式設計師(知乎)
阿新 • • 發佈:2019-02-01
我不能算是一個很優秀的程式設計師,但這個問題我已經反覆思考了五年了。跟大家分享一下我的看法:
首先, 我認為答案絕對不是"只要寫很多年程式碼就好了“。我面試過不少有10年經驗,程式碼卻寫的很糟糕的程式設計師。經驗很保貴, 但只靠經驗是不夠的。就像下棋一樣,假如你用心研究,複習,不斷挑戰自己,也許可以成為一名大師。但不斷用懶散的方式去玩棋,下20年也只是一個"臭棋簍子“。
我覺得比較有用的進步方式:
1. 學會看程式碼
大多數程式設計師都只願意用自己寫的程式碼,但高手一般可以輕易呼叫別人寫的程式碼。表面看上去是工作習慣不同, 但實際上是能力上的差別。看程式碼要比寫程式碼難很多倍。
我建議上班時多給隊友們作code review,下班後試著閱讀github上的開原始碼。
2. 複習
程式設計師一般都很忙, 手上有永遠也做不完的活兒。但在某些公司裡, 你只是在反覆做同樣的事。偶爾放下手上的活兒,留下一部分時間來分析自己的弱點,更改壞習慣,看新書, 或學習新語言。
3. 做個人專案
工作中的程式設計一般只能讓你熟悉一部分技術, 導致漏洞的形成。這就好像你長期一個人在自己後院練習投籃, 但第一次打比賽才(在慘敗中)發些原來還需要傳球, 防守, 強籃板這些概念。
Facebook喜歡僱傭所謂的 “full stack programmer”,就是一個人從設計,到互動,到html, css,javascript, server,sql, 架構,和資料統計都能做。成為full stack programmer最好的方式就是不斷做個人專案。
4. 問答網站
問問題和回答問題都是很好的學習方式。 有的時候寫出一個好問題, 比寫出解答次問題所需要的程式碼還難。寫問題可以幫你整理自己的思維邏輯。你可以試著每週在http://stackoverflow.com上問一個好問題或寫一個好答案。
5. 加入一個好團隊
最好的進步方式就是跟比自己強的人一起做事。高手都願意聚在一起,所以很多會選擇去優秀的早期創業公司。我在矽谷和創新工場創業時遇到了很多神人, 跟他們學了不少東西。
首先, 我認為答案絕對不是"只要寫很多年程式碼就好了“。我面試過不少有10年經驗,程式碼卻寫的很糟糕的程式設計師。經驗很保貴, 但只靠經驗是不夠的。就像下棋一樣,假如你用心研究,複習,不斷挑戰自己,也許可以成為一名大師。但不斷用懶散的方式去玩棋,下20年也只是一個"臭棋簍子“。
我覺得比較有用的進步方式:
1. 學會看程式碼
大多數程式設計師都只願意用自己寫的程式碼,但高手一般可以輕易呼叫別人寫的程式碼。表面看上去是工作習慣不同, 但實際上是能力上的差別。看程式碼要比寫程式碼難很多倍。
我建議上班時多給隊友們作code review,下班後試著閱讀github上的開原始碼。
2. 複習
程式設計師一般都很忙, 手上有永遠也做不完的活兒。但在某些公司裡, 你只是在反覆做同樣的事。偶爾放下手上的活兒,留下一部分時間來分析自己的弱點,更改壞習慣,看新書, 或學習新語言。
3. 做個人專案
工作中的程式設計一般只能讓你熟悉一部分技術, 導致漏洞的形成。這就好像你長期一個人在自己後院練習投籃, 但第一次打比賽才(在慘敗中)發些原來還需要傳球, 防守, 強籃板這些概念。
Facebook喜歡僱傭所謂的 “full stack programmer”,就是一個人從設計,到互動,到html, css,javascript, server,sql, 架構,和資料統計都能做。成為full stack programmer最好的方式就是不斷做個人專案。
4. 問答網站
問問題和回答問題都是很好的學習方式。 有的時候寫出一個好問題, 比寫出解答次問題所需要的程式碼還難。寫問題可以幫你整理自己的思維邏輯。你可以試著每週在http://stackoverflow.com上問一個好問題或寫一個好答案。
5. 加入一個好團隊
最好的進步方式就是跟比自己強的人一起做事。高手都願意聚在一起,所以很多會選擇去優秀的早期創業公司。我在矽谷和創新工場創業時遇到了很多神人, 跟他們學了不少東西。