程式設計老手的哪些特點,是值得新手程式設計師學習的?

HansDo發表於2016-07-11

這個來自源自 Quora,題主還補充問:

作為一個經驗豐富的程式設計師,有哪些事情是你希望在一開始程式設計的時候就知道的?或者換個方式來說,你認為每個新手程式設計師應該做或者學什麼才能讓自己的程式設計水平更好?

下面是一位 CTO Ken Mazaika 的觀點,目前已有 6700+ 贊同

有經驗的程式設計師會做到下面 29 項事情,這也是每個新手程式設計師應該知道的事情。

如果你想成為更好的開發者,你應該尤其注意第 15 點和第 29 點

1.積極大膽地谷歌。你得知道如何有效地組織搜尋關鍵字,查閱別人寫的程式碼,然後合理地用在程式碼裡,從而解決問題。

2.擁抱變化,堅持不懈。老手程式設計師在接觸新技術時,能欣然接受像個初學者一樣處處受挫,並總能在完成工作的同時自學成才。

3.承認細節的重要性。例如變數和函式的命名、CSS 屬性的命名、該用雜湊還是用陣列,以及其他看起來微不足道,但可能對專案有深遠影響的事情。

4.承認大多數的“重要決定”其實並沒有那麼重要。一般的開發者經常在技術選型等“重大問題”上陷入脣槍舌戰,而程式設計師老鳥們會避免浪費時間在罵戰中。這一點上,他們就像禪宗大師一樣(zen-like)。

5.選擇合適的工具解決問題。網上有無數的開源庫、工具和框架,讓人眼花繚亂。而老手們清楚地知道針對怎樣的問題,應該用什麼樣的工具。

6.明白程式碼「不值錢」(該刪就刪)。你必須習慣於刪掉幾百行程式碼來重寫程式的某一部分,毫不留情。

7.在評估技術的時候要全面。例如,我一直在鼓吹Elixir。它語法優美,社群完善,有很大的潛力。但Elixir誕生的時間太短,所以如果要構建複雜的功能,可能會難以找到能幫你提高效率的開源工具。因此,在評估要不要選擇使用一項技術時,你得把所有這些因素都考慮在內。

8.學會說“我不知道”。沒有比拒絕承認自己不知道更能浪費一個開發者的時間了。

9. 仔細分析錯誤資訊裡的線索。傳統教育告訴我們:失敗是壞事。報錯資訊這種東西也經常被跟失敗聯絡起來,然而優秀程式設計師明白,這些錯誤訊息裡其實隱藏著能將你指向最終正確解決方案的線索。

10. 瞭解過早優化和必要的“炫技式”優化的區別。老手們清楚在什麼時候需要寫一些看上去沒那麼好懂,但會讓程式執行更快的程式碼。

11.每個人都會犯錯,為自己的過失負責。而尤其在團隊裡,把責任推來推去沒有任何意義,因為錯誤的發生往往不只是一方的因素造成的。

12. 成為你所用的開發工具的重度使用者。如果長期在某個開發環境下有相當比例的開發工作,那你應該去掌握使用它的細節。

13. 學會用Vim(至少會一點)。 你至少應該在這個編輯器裡學會勉強地移動和翻頁。

14. 不要接陌生技術領域的私活。個人做自由職業專案,其中很大一部分挑戰就是評估專案時間。不要規劃自己未知領域的事情,那會讓你處於想當尷尬的境地。

15. 不要數你幹活花了幾個小時。技術大牛會把時間花在有深度的工作上,並且他們清楚花了多少時間完全不重要。

16. 學會坦然接受批評。當你的程式碼因為各種原因四分五裂時,你需要培養用理性和邏輯的方式來應對(而不是情緒化處理)。

17. 同有更多經驗的人結對程式設計。沒有比這個更高效的程式設計學習方式了。

18. 一定要先自己做一遍程式碼審查。當你在GitHub上發起一個pull request之前,先把程式碼當成別人寫的,自己先審查一遍。

19. 認識到做自由職業的難點不是寫程式碼,而是其餘的所有事情。銷售、推廣、客戶支援,質量保證以及產品管理,所有這些都會花費大量時間。

20. 發現並解決更大的問題。優秀的程式設計師不拘泥於眼前的問題,而是清楚如何用更長遠的方式徹底的解決這一類問題。

21. 深入瞭解一些大型開源專案的核心能讓你開發時如虎添翼。如果你知道如何給你的專案打猴子補丁(Monkey Patch), 那麼你將無所不能。

22. 跳過多數的會議。你的公司僱你是來寫程式碼的,而不是談程式碼的。當會議多到失控的時候,不去參加也沒有任何問題。而且一旦你開始這樣做,別人會更珍惜你的時間。

23.知道什麼時候開始回饋。 到了某個時候你需要將你的技能和經驗傳授給年輕的開發人員,就像你的導師當時教授你一樣。

24. 能寫爛程式碼。有時候可以當一當“膠帶式程式設計師”。關鍵是隨著時間推移,你需要弄清楚什麼時候可以走捷徑,什麼時候必須走捷徑。這其實是最難掌握的技能之一。

25. 禮貌地告訴別人你工作到很晚。如果你是辦公室裡最後一個,可以發一封簡短的彙報郵件。別人一般會注意到郵件上的時間戳的。

26. 像一個領導者(Leader)一樣做事,而不是老闆(Boss)。老闆是讓別人為他工作的人,領導者是人們追隨的人。做個領導者。

27. 去打打桌上足球。從長期來看,同其他開發者(或不同崗位上的同事)建立聯絡會比在緊巴巴的期限裡交付一個功能更有價值。

28. 在壓力下學習。你需要知道如何應對像系統當機而你要負責將它復原的情況,即使一開始你完全沒有頭緒。

29. “Move fast and break things” 別讓完美主義阻止你做事。錯誤往往是最好的學習機會。所以別把犯錯當作失敗,而應該把它們當作值得學習的經歷,並意識到:正是不斷克服和突破這些錯誤,作為一個程式設計師,你才能不斷成長起來。

像生活中的很多事情一樣,程式設計也是你做的越多,瞭解的就越多。所以如果你是一個新手程式設計師,還是直接去編碼吧。記得將這些最佳實踐應用在日常工作中,來不斷提升你的程式設計技藝。

歡迎更多老手來分享經驗 :)

打賞支援我翻譯更多好文章,謝謝!

打賞譯者

打賞支援我翻譯更多好文章,謝謝!

任選一種支付方式

程式設計老手的哪些特點,是值得新手程式設計師學習的? 程式設計老手的哪些特點,是值得新手程式設計師學習的?

相關文章