[譯] 成爲一個優秀程序員的101個小建議

第一次翻譯文章,之因此會想把這篇文章分享給你們,是由於以前羣裏一個剛入行的新人尋求建議,問學哪一個框架好。而我腦海裏想到的倒是準備個杯子多喝水,搞個好點的椅子保護好腰,多看源碼多逛社區之類的。忽然發現,除了技術以外,還有不少工做經驗,學習方法,爲人處世的東西也很重要,甚至它們是先於技術的。可是講述這些東西的文章並很少,因此昨天看到這篇文章的時候,裏面得不少建議偏偏是我面臨問題的解決方法,以爲頗有必要分享給更多人知道,因而便尋求了原文做者的受權,抓緊時間翻譯出來。前端

原文做者:Emma Wedekind
原文連接:dev.to/emmawedekin…git

這裏做爲讀者,我我的認爲該文大部分建議都很是有用,可是有些建議是相似的能夠合併,並且排序也有些隨意,像是想到什麼說什麼,沒有通過整理,致使全文其實有些過長。還有很重要的一點是有些建議請根據國內狀況靈活判斷,我也會將我認爲比較重要的幾點標上⭐。程序員


0. 遵照規則的狀況下跨過那道牆看看

這條是我專門爲國內程序員加的,你們應該都懂,否則的話第一條就打住了。github

1. 善用google⭐

做爲一名程序員,你要知道如何搜索問題的答案。學會有效的使用google,你將節省大量開發時間。算法

2. 謹慎承諾超額交付⭐

讓你的團隊知道一項任務須要三週的時間,並在兩週內完成,這比讓他們知道相反的狀況要好。經過謹慎承諾和超額交付,你會創建信任。編程

3. 善待產品設計人員,他們是你的朋友

產品設計人員爲用戶的痛點提供解決方案。向他們學習,團結一致地構建有效的產品。後端

4. 找到一名導師

找到一個能夠學習和借鑑的人。若是你須要技術指導,Coding Coach會是一個不錯的地方。設計模式

5. 成爲一名導師

作一個別人能夠學習和借鑑的人。你能夠嘗試在Coding Coach成爲別人的導師。瀏覽器

這個網站並非很瞭解,請自行斟酌。國內厲害的程序員也不少,掘金,知乎上找也能夠。 安全

6. 寫些有用的評論

寫下有用的回答而不是問爲何,mark和灌水也沒什麼意思`、。

7. 合理的命名變量和函數名

函數和變量應該準確地表示它們的用途,所以myCoolFunction不是一個好名字。

8. 給本身放個假

咱們都須要時間來緩解壓力。去一個你一直想去的地方放個假。你的大腦和同事都會感謝你的。

9. 刪除無用代碼⭐

沒有理由積累更多技術債務。

10. 學會閱讀代碼⭐

閱讀代碼是一項很是寶貴的被低估的技能。

11. 找到健康工做和生活平衡點

結束一週的工做以後,週末放鬆一下。關閉工做通知,刪除手機上的應用程序。

12. 只安排必要的會議

能用郵件解決的就不必開會,若是非要開,也應該讓會議簡短高效。

13. 結對編程

結對編程可讓你同時扮演老師和學生的角色。

14. 寫好郵件

郵件的內容應該簡潔而清晰,抓住重點。沒人會想看你的四頁郵件,兄弟。

15. 加入社區⭐

和志同道合的人在一塊兒會激勵你走出低谷。

16. 清理你的分支⭐

清理你的版本控制分支,就像在你的岳父母來訪以前清理你的房子同樣。若是你再也不須要,請刪掉它,不刪留着過年啊。

17. 接納萌新

包容點,不要告訴別人不夠好,不能進入這個行業。每一個人都是有價值。

18. 活到老學到老

你選擇了一個須要不斷學習的職業,學會愛上它。

19. 永不言棄

這並不容易,可是咱們都是從同一個地方開始,你也能作到。

20. 勇於接受有挑戰性的任務⭐

若是任務沒有挑戰,它就不會幫助你成長。

21. 項目開始前明確需求⭐

在開擼以前,你應該瞭解驗收標準,這將爲你節省時間和痛苦。

22. 工欲善其事,必先利其器⭐

擁有一套你熟悉的工具,瞭解哪些工具服務於哪些目的,以及項目什麼時候能夠從使用這些工具中獲益。

23. 咱們須要建設性的批評

向信任的同事和朋友尋求建設性的批評,它將幫助你更優秀。

24. 保持開放思惟⭐

技術在變化,並且變化得很快。不要反對新技術,學習它,而後造成本身的觀點。

25. 保持在技術前沿,不要掉隊⭐

經過關注出版物,博客,播客和科技新聞,及時瞭解最新的科技新聞。

26. 專一於解決問題⭐

鍛鍊本身解決問題的能力,強大的解決問題的能力可以幫助你應付一切,專一於解決問題的方法。

27. 保持謙虛⭐

三人行必有我師,不管你什麼頭銜,什麼公司,都要保持謙遜。

28. 不光要代碼寫的好,PPT也要講得好

學習如何吸引你的聽衆,並給出有效的演示。

29. 選型如買菜,也要貨比三家⭐

給本身更多選擇,在開展工做前,調研儘量多的解決方案。

30. 找到本身的定位⭐

科技產業也有不少分類,找到你最感興趣的領域,併成爲一名專家。

31. 養成好習慣⭐

試着創建一致的、健康的習慣,好比保持專一,合理安排時間,出席會議,從最重要的任務開始。這可能須要一些時間來適應,但從長遠來看是值得的。

32. 學會debug⭐

探索瀏覽器調試器工具。學習使用IDE調試的細節。經過學習最有效的調試問題和跟蹤錯誤的方法,再困難的bug也能搞定。

33. 鍛鍊你現有的技能⭐

並非說你已經掌握了一項技能就不須要再鍛鍊它。業精於勤荒於嬉,除非有意識地提升技能,不然技能會隨着時間的推移而消失。而這個行業又發展得如此之快,堅持練習是很重要的。從「我一直都是這樣作的」的心態中走出來,進入「有沒有更好的方法來作這件事」的心態。

僅僅是由於你如今擁有六塊腹肌,不意味着你就能夠天天吃一個🍩。

34. 瞭解緣由⭐

有時你必須表達本身的意見,所以瞭解其背後的緣由很是重要。爲何解決方案A比解決方案B更好?提供有效的論據,你的意見將更加可靠。

35. 瞭解本身的價值

技術也是商品,應該獲得適當的報酬。瞭解你所在地區的行業平均水平。若是你賺的錢少了,是時候和你的老闆談談,追求你應得的。

36. 不要懼怕尋求幫助⭐

若是你被困在一個問題上,花了太多時間尋找解決方案,是時候尋求幫助了。咱們都是人,咱們都須要幫助,尋求同事的援助並不可恥。

37. 學會學習⭐

人們學習的方式不一樣,有些人經過視頻教程學得最好,有些人經過閱讀書籍學得最好。弄清楚你的學習風格,而後努力實踐。

38. 與人爲善

有時你會被要求向同事提供反饋,友善一點,你能夠對某位同事不夠積極表達見解,而不是出言不遜。

39. 休息一下

連續敲8個小時代碼幾乎是不可能,你很快就會筋疲力盡,犯不少錯誤。因此設個鬧鐘來提醒本身停下來休息一下。去散散步,和同事一塊兒喝杯咖啡,遠離屏幕會對你的工做效率和質量產生積極的影響。

40. 跟蹤你的學習進度

學習編程須要時間,當你看不到進展時,你會感到很是沮喪。因此跟蹤你的成就和實現目標的進展很是重要。在你的電腦旁邊放一個小清單,每次你完成一件事,把它寫下來,無論它有多小,最終將會從量變到質變。

41. 不要依賴庫和框架⭐

掌握一個框架和庫不如深刻學習這門語言,沒有必要一個接一個的學習這些庫和框架,可是理解框架和庫如何實現能夠幫助你寫出更簡潔強壯的代碼。

42. 學會愛上代碼審查

讓別人閱讀和分析你的代碼可能會讓你不安,可是能夠提供寶貴的反饋,這會讓你成爲一個更好的程序員。並且你也應該提升進行良好代碼評審的能力。

43. 多方位全面學習

學習其餘領域的基礎知識, 如設計、營銷、前端開發或後端開發。它將幫助你成爲一個更全面的程序員。

44. 不要選擇熟悉的技術,而應該是正確的⭐

每一個項目都有不一樣的需求,所以咱們必須爲這項工做選擇合適的工具。儘管選擇之前使用過的技術很方便,可是若是它們不適合項目的須要,應該探索其餘替代方案。

45. 敢於承擔責任⭐

全部人都會犯錯,在你的職業生涯中,你會犯不少不少的錯誤。所以,當你犯了錯誤時,站出來承擔責任是很重要的,它將與你的團隊成員和管理層創建信任。

46. 檢查本身的代碼⭐

在發起PR請求以前,檢查本身的代碼,若是這是同事的工做,你會發表什麼評論?在請求代碼審查以前首先嚐試本身診斷問題或錯誤很是重要,就像考試交卷前應該本身檢查一遍。

47. 從失敗中吸收教訓⭐

失敗只是沒有達到預期的結果,並不必定是件壞事。在咱們的職業生涯中,咱們會面臨不少失敗,從失敗中學習下次你能作些什麼。

48. 正視本身的缺點

瞭解你本身,你的缺點是什麼?也許你老是在推送以前忘記更新測試,或者你真的不擅長回覆電子郵件。瞭解你的弱點,這樣你就能積極地改善它們。

49. 保持好奇心⭐

這個行業在不斷髮展,因此好奇心很重要。若是你不明白什麼,無論是項目需求仍是一行代碼,大聲說出來。沒有人會由於你要求說明而批評你,你會所以創造出更好的代碼。

50. 不要試圖學習一切⭐

世界上有無窮無盡的知識寶庫,你不可能征服它。選擇幾個要掌握的主題,其他的就不要管了。你能夠得到其餘領域的相關知識,但你不可能掌握全部內容。

51. 該捨棄就捨棄

僅僅由於你寫了一些代碼並不意味着你須要對它產生感情。沒有人喜歡他們所作的工做被丟棄,可是代碼有一個生命週期,因此沒有必要一直保留着它。

52. 團隊支持

優秀的團隊相互支持,這爲嘗試新事物創造了一個安全的空間,而不用擔憂受到懲罰。

53. 在社區中尋找鼓舞

在行業裏找幾個你欽佩的人。它會激勵你繼續你的項目或嘗試新事物

54. 重視而且珍惜你的工做

無論你有多少經驗或者你的職位是什麼,你的工做都是有價值的,給予它應有的價值。

55. 排除干擾

關掉閒置的通知、短信、電子郵件和社交媒體會幫助你集中精力,最大化你的工做日。晚30分鐘回覆你朋友的信息,他死不了,真有事就打電話了。

56. 樂於助人

試着支持你的團隊成員,不管是參加一個重要的演講,仍是在他們遇到困難時幫助他們。

57. 不要吝嗇你的讚美⭐

若是有人作得很好,告訴他們。正面反饋是與團隊成員創建信任和幫助他們事業發展的好方法。他們也更有可能幫助你

58. 測試你的代碼⭐

測試是很重要的。單元測試、迴歸測試、集成測試、端到端測試。測試你的代碼,你的產品將會更加穩定。

59. 制定應對計劃

當你收到一個新功能需求或bug修改時,先制定應對計劃,你須要什麼來解決這個問題或開發這個特性?花幾分鐘來作這件事,也許後面能夠爲你節省數小時的沮喪。

60. 掌握僞代碼

僞代碼是一項很好的技能,由於它容許你在不浪費時間編寫代碼的狀況下考慮複雜的問題。將一種方法寫在紙上,運行不一樣的測試用例,看看缺陷在哪裏。

61. 記錄你的成就

若是你在工做中得到了嘉獎,把它寫下來。若是你開發了一個重要的功能,把它寫下來。你會擁有一些積累、沉澱,它將有助於你職業晉升亦或在某一艱難的日子鼓舞你的士氣。

62. 學習編程基礎⭐

學習一些基本的排序和搜索算法以及數據結構。它們與語言無關,能夠幫助你跨語言解決問題。

63. 選擇長期維護的技術

儘管測試最新的技術頗有趣,可是選擇那些在企業應用程序中易於維護的技術。大家的團隊將在將來的歲月裏感謝大家。

64. 學習設計模式⭐

設計模式是構建代碼的有效工具。你可能不是每一個項目都須要它們,可是對它們有一個基本的瞭解將有助於構建更大的應用程序。

65. 化繁爲簡⭐

不要編寫複雜的代碼來展現你高超的編程技能,而要着眼於可讀性和簡單性。這將使你的團隊成員更容易作出貢獻。

66. 還清技術債務

技術債務可能會對性能產生巨大影響,因此若是可以重構,就應該重構。(這個建議絕對是好的,可是現實中要面臨諸多問題)

67. 優先小版本迭代

與其每月發佈一次大規模的升級,不如更頻繁地發佈較小的變動。這樣你不太可能會引入bug和破壞更改。

68. 儘早並常常提交⭐

儘早提交和常常提交是確保你的工做保持乾淨的最好方法,而且還能夠減小意外地恢復重要更改的壓力。

69. 瞭解什麼時候尋求幫助

你不只不該該懼怕尋求幫助,並且你應該學會何時尋求幫助。在尋求幫助以前,你應該試着解決問題,並記錄下你嘗試的事情。可是當你被一個簡單的問題難住一個多小時的時候,代價大於收益,你應該向同事求助。

70. 問一些有效的問題⭐

當你問問題的時候,要儘量的具體,(能夠參考github提issue的要求)。

71. 工做中及時尋求反饋

你的工做不須要完成就能獲得反饋。若是你不肯定方向,請一位值得信賴的同事來檢查你的解決方案的有效性。

72. 閱讀文檔⭐

文檔是關於技術的最純粹的事實來源,所以學習閱讀文檔能夠快速幫助你成爲專家。

73. 儘量作出各類嘗試⭐

沒有什麼能阻止你嘗試解決問題的方法,你有什麼損失呢?

74. 在會議上積極發言

你的想法和意見是有價值的,因此參加會議將有助於你與你的團隊和管理層創建融洽的關係。

75. 跨團隊協做

若是你有機會和公司裏的其餘團隊一塊兒工做,那就去爭取吧。

76. 保持項目熱情

當你每週工做40個小時時,花時間作你感興趣的項目是很重要的(72小時的話更要如此)。它們能夠幫助你從新找回對編程的熱愛,並嘗試你在工做中可能沒法接觸到的新技術。

77. 肯定你的職業目標⭐

對你的職業生涯有一個理想的軌跡是很重要的。若是你不這樣作,你就是在沒有目標的狀況下射箭。

78. 加入到討論中來⭐

在博客上發表評論,參與Twitter主題,參與社區活動,作一個積極的旁觀者會比單純的旁觀學到更多東西。

79. 肯定任務優先級

學會肯定任務的優先順序將有助於提升您的工做效率,創建一個平常任務和長期任務待辦事項列表,並按最重要的順序排序。

80. 不要忽略細節

細節能夠在項目中產生很大的影響。

81. 信任你的同事

你的同事由於他們的技能而被僱傭,交給他們工做,並相信他們能完成。

82. 學會委託

若是你處於領導地位,學習如何有效地委派任務。它會節省你的時間,你不能作全部的事。

83. 不要拿本身和別人比較

你惟一應該比較的是昨天的本身。

84. 找到你的盟友

學習編程將是一個漫長而不怎麼容易的過程,和那些幫助你成長並鼓勵你堅持下去的人在一塊兒。

85. 不要想一步登天⭐

一開始考慮太多作一個大而全的項目會讓你不堪重負。構建時要考慮可伸縮性,但在須要時纔開始擴展。這樣你就不會用沒必要要的膨脹來壓倒你的團隊,而是保持了成長的能力。

86. 衡量性能影響⭐

若是你想使用一種很酷的新技術,你應該權衡這樣作的性能影響。你能在不影響性能的狀況下實現相似的功能嗎?若是能夠,你可能須要從新考慮你的方法了。

87. 技術歧視不可取⭐

不要歧視新技術或新想法,對學習新技能的可能性保持開放的心態,也不要歧視他人,咱們都值得尊重。(也不要歧視舊技術,即便如今前端框架盛行,但你也不能說Jquery就沒有任何可取之處。)

88. 申請你不能勝任的工做

你永遠不可能知足工做的全部要求,因此抓住機會申請吧,你有什麼損失呢?

89. 模塊化你的代碼

你能夠在一個長文件中編寫全部代碼,但這是不可維護的。經過模塊化,咱們確保代碼易於理解和測試。

90. 不要只是作代碼的搬運工⭐

若是你要複製並粘貼Stack Overflow中的解決方案,你應該確切地理解它的做用,有意識地選擇要引入的代碼。

91. 創造一個溫馨的工做環境⭐

若是你喜歡你的工做環境和技術設置,你會更有動力去工做,因此還在等什麼?

92. 記住你來自哪裏

咱們都是從同一個地方開始的,隨着你的技能和職位的發展,不要忘記你來自哪裏,不要膨脹。

93. 試着保持樂觀

若是出了什麼問題,試着樂觀一點。明天是新的一天。樂觀會幫助你的團隊充滿活力和精神健康。

94. 不斷從新評估你的工做流程⭐

僅僅由於某樣東西如今有效,並不意味着它永遠有效。從新評估你的工做流程,並在必要時作出調整。

95. 學會在家辦公

若是你有能力在家工做,那就學會有效地在家工做。找一個獨立的辦公空間,遠離干擾。Boneskull寫了一篇很棒的關於在家工做的文章,你應該看看。

96. 無障礙代碼

無障礙不是過後纔想到的,也不必定很難,每一個人都應該可以使用你的產品。

97. 遵照你的承諾⭐

若是你告訴別人你會在某一天完成某件事,要信守承諾。若是你不能在截止日期前完成任務,那就早點說出來。

98. 積極主動

若是你有額外的精力,找一個任務來幫助你的團隊,他們會很感激你是主動的。

99. 建立一個使人驚歎的做品集

一個優秀的做品集讓你不同凡響,使用它做爲展現你的編程和設計技巧的機會!

100. 記住你喜歡編程的緣由⭐

你進入這個行業是由於它激發了你的興趣,若是你感到沮喪和怨恨,休息一下,給本身空間從新點燃你對編程的激情。

101. 分享你的知識⭐

若是你學到了一些很酷的東西,不要吝惜分享它,參加當地的技術交流會,在午飯時間教你的同事或學員,分享你的知識可讓更多人受益同時本身也能鞏固提升。

完結撒花 🎉🎉🎉

這就是我關於成爲一個優秀程序員的所有建議,但願大家喜歡。

最後

在原文的評論下面有網友續寫兩個兩條,102條適當鍛鍊和103條充足睡眠,其實程序員幹久了就會愈發認識到這兩條的重要性,因此可能還會有人在下面給出有建設性的建議,能夠去原文關注一下。

此次翻譯中有些內容加入了一些我的的理解,若是以爲哪些內容翻譯的不恰當,能夠評論留言,也能夠提出你對於成爲優秀程序員的建議。