第一次翻譯文章,之因此會想把這篇文章分享給你們,是由於以前羣裏一個剛入行的新人尋求建議,問學哪一個框架好。而我腦海裏想到的倒是準備個杯子多喝水,搞個好點的椅子保護好腰,多看源碼多逛社區之類的。忽然發現,除了技術以外,還有不少工做經驗,學習方法,爲人處世的東西也很重要,甚至它們是先於技術的。可是講述這些東西的文章並很少,因此昨天看到這篇文章的時候,裏面得不少建議偏偏是我面臨問題的解決方法,以爲頗有必要分享給更多人知道,因而便尋求了原文做者的受權,抓緊時間翻譯出來。前端
原文做者:Emma Wedekind
原文連接:dev.to/emmawedekin…git
這裏做爲讀者,我我的認爲該文大部分建議都很是有用,可是有些建議是相似的能夠合併,並且排序也有些隨意,像是想到什麼說什麼,沒有通過整理,致使全文其實有些過長。還有很重要的一點是有些建議請根據國內狀況靈活判斷,我也會將我認爲比較重要的幾點標上⭐。程序員
這條是我專門爲國內程序員加的,你們應該都懂,否則的話第一條就打住了。github
做爲一名程序員,你要知道如何搜索問題的答案。學會有效的使用google,你將節省大量開發時間。算法
讓你的團隊知道一項任務須要三週的時間,並在兩週內完成,這比讓他們知道相反的狀況要好。經過謹慎承諾和超額交付,你會創建信任。編程
產品設計人員爲用戶的痛點提供解決方案。向他們學習,團結一致地構建有效的產品。後端
找到一個能夠學習和借鑑的人。若是你須要技術指導,Coding Coach會是一個不錯的地方。設計模式
作一個別人能夠學習和借鑑的人。你能夠嘗試在Coding Coach成爲別人的導師。瀏覽器
這個網站並非很瞭解,請自行斟酌。國內厲害的程序員也不少,掘金,知乎上找也能夠。 安全
寫下有用的回答而不是問爲何,mark和灌水也沒什麼意思`、。
函數和變量應該準確地表示它們的用途,所以myCoolFunction不是一個好名字。
咱們都須要時間來緩解壓力。去一個你一直想去的地方放個假。你的大腦和同事都會感謝你的。
沒有理由積累更多技術債務。
閱讀代碼是一項很是寶貴的被低估的技能。
結束一週的工做以後,週末放鬆一下。關閉工做通知,刪除手機上的應用程序。
能用郵件解決的就不必開會,若是非要開,也應該讓會議簡短高效。
結對編程可讓你同時扮演老師和學生的角色。
郵件的內容應該簡潔而清晰,抓住重點。沒人會想看你的四頁郵件,兄弟。
和志同道合的人在一塊兒會激勵你走出低谷。
清理你的版本控制分支,就像在你的岳父母來訪以前清理你的房子同樣。若是你再也不須要,請刪掉它,不刪留着過年啊。
包容點,不要告訴別人不夠好,不能進入這個行業。每一個人都是有價值。
你選擇了一個須要不斷學習的職業,學會愛上它。
這並不容易,可是咱們都是從同一個地方開始,你也能作到。
若是任務沒有挑戰,它就不會幫助你成長。
在開擼以前,你應該瞭解驗收標準,這將爲你節省時間和痛苦。
擁有一套你熟悉的工具,瞭解哪些工具服務於哪些目的,以及項目什麼時候能夠從使用這些工具中獲益。
向信任的同事和朋友尋求建設性的批評,它將幫助你更優秀。
技術在變化,並且變化得很快。不要反對新技術,學習它,而後造成本身的觀點。
經過關注出版物,博客,播客和科技新聞,及時瞭解最新的科技新聞。
鍛鍊本身解決問題的能力,強大的解決問題的能力可以幫助你應付一切,專一於解決問題的方法。
三人行必有我師,不管你什麼頭銜,什麼公司,都要保持謙遜。
學習如何吸引你的聽衆,並給出有效的演示。
給本身更多選擇,在開展工做前,調研儘量多的解決方案。
科技產業也有不少分類,找到你最感興趣的領域,併成爲一名專家。
試着創建一致的、健康的習慣,好比保持專一,合理安排時間,出席會議,從最重要的任務開始。這可能須要一些時間來適應,但從長遠來看是值得的。
探索瀏覽器調試器工具。學習使用IDE調試的細節。經過學習最有效的調試問題和跟蹤錯誤的方法,再困難的bug也能搞定。
並非說你已經掌握了一項技能就不須要再鍛鍊它。業精於勤荒於嬉,除非有意識地提升技能,不然技能會隨着時間的推移而消失。而這個行業又發展得如此之快,堅持練習是很重要的。從「我一直都是這樣作的」的心態中走出來,進入「有沒有更好的方法來作這件事」的心態。
僅僅是由於你如今擁有六塊腹肌,不意味着你就能夠天天吃一個🍩。
有時你必須表達本身的意見,所以瞭解其背後的緣由很是重要。爲何解決方案A比解決方案B更好?提供有效的論據,你的意見將更加可靠。
技術也是商品,應該獲得適當的報酬。瞭解你所在地區的行業平均水平。若是你賺的錢少了,是時候和你的老闆談談,追求你應得的。
若是你被困在一個問題上,花了太多時間尋找解決方案,是時候尋求幫助了。咱們都是人,咱們都須要幫助,尋求同事的援助並不可恥。
人們學習的方式不一樣,有些人經過視頻教程學得最好,有些人經過閱讀書籍學得最好。弄清楚你的學習風格,而後努力實踐。
有時你會被要求向同事提供反饋,友善一點,你能夠對某位同事不夠積極表達見解,而不是出言不遜。
連續敲8個小時代碼幾乎是不可能,你很快就會筋疲力盡,犯不少錯誤。因此設個鬧鐘來提醒本身停下來休息一下。去散散步,和同事一塊兒喝杯咖啡,遠離屏幕會對你的工做效率和質量產生積極的影響。
學習編程須要時間,當你看不到進展時,你會感到很是沮喪。因此跟蹤你的成就和實現目標的進展很是重要。在你的電腦旁邊放一個小清單,每次你完成一件事,把它寫下來,無論它有多小,最終將會從量變到質變。
掌握一個框架和庫不如深刻學習這門語言,沒有必要一個接一個的學習這些庫和框架,可是理解框架和庫如何實現能夠幫助你寫出更簡潔強壯的代碼。
讓別人閱讀和分析你的代碼可能會讓你不安,可是能夠提供寶貴的反饋,這會讓你成爲一個更好的程序員。並且你也應該提升進行良好代碼評審的能力。
學習其餘領域的基礎知識, 如設計、營銷、前端開發或後端開發。它將幫助你成爲一個更全面的程序員。
每一個項目都有不一樣的需求,所以咱們必須爲這項工做選擇合適的工具。儘管選擇之前使用過的技術很方便,可是若是它們不適合項目的須要,應該探索其餘替代方案。
全部人都會犯錯,在你的職業生涯中,你會犯不少不少的錯誤。所以,當你犯了錯誤時,站出來承擔責任是很重要的,它將與你的團隊成員和管理層創建信任。
在發起PR請求以前,檢查本身的代碼,若是這是同事的工做,你會發表什麼評論?在請求代碼審查以前首先嚐試本身診斷問題或錯誤很是重要,就像考試交卷前應該本身檢查一遍。
失敗只是沒有達到預期的結果,並不必定是件壞事。在咱們的職業生涯中,咱們會面臨不少失敗,從失敗中學習下次你能作些什麼。
瞭解你本身,你的缺點是什麼?也許你老是在推送以前忘記更新測試,或者你真的不擅長回覆電子郵件。瞭解你的弱點,這樣你就能積極地改善它們。
這個行業在不斷髮展,因此好奇心很重要。若是你不明白什麼,無論是項目需求仍是一行代碼,大聲說出來。沒有人會由於你要求說明而批評你,你會所以創造出更好的代碼。
世界上有無窮無盡的知識寶庫,你不可能征服它。選擇幾個要掌握的主題,其他的就不要管了。你能夠得到其餘領域的相關知識,但你不可能掌握全部內容。
僅僅由於你寫了一些代碼並不意味着你須要對它產生感情。沒有人喜歡他們所作的工做被丟棄,可是代碼有一個生命週期,因此沒有必要一直保留着它。
優秀的團隊相互支持,這爲嘗試新事物創造了一個安全的空間,而不用擔憂受到懲罰。
在行業裏找幾個你欽佩的人。它會激勵你繼續你的項目或嘗試新事物
無論你有多少經驗或者你的職位是什麼,你的工做都是有價值的,給予它應有的價值。
關掉閒置的通知、短信、電子郵件和社交媒體會幫助你集中精力,最大化你的工做日。晚30分鐘回覆你朋友的信息,他死不了,真有事就打電話了。
試着支持你的團隊成員,不管是參加一個重要的演講,仍是在他們遇到困難時幫助他們。
若是有人作得很好,告訴他們。正面反饋是與團隊成員創建信任和幫助他們事業發展的好方法。他們也更有可能幫助你
測試是很重要的。單元測試、迴歸測試、集成測試、端到端測試。測試你的代碼,你的產品將會更加穩定。
當你收到一個新功能需求或bug修改時,先制定應對計劃,你須要什麼來解決這個問題或開發這個特性?花幾分鐘來作這件事,也許後面能夠爲你節省數小時的沮喪。
僞代碼是一項很好的技能,由於它容許你在不浪費時間編寫代碼的狀況下考慮複雜的問題。將一種方法寫在紙上,運行不一樣的測試用例,看看缺陷在哪裏。
若是你在工做中得到了嘉獎,把它寫下來。若是你開發了一個重要的功能,把它寫下來。你會擁有一些積累、沉澱,它將有助於你職業晉升亦或在某一艱難的日子鼓舞你的士氣。
學習一些基本的排序和搜索算法以及數據結構。它們與語言無關,能夠幫助你跨語言解決問題。
儘管測試最新的技術頗有趣,可是選擇那些在企業應用程序中易於維護的技術。大家的團隊將在將來的歲月裏感謝大家。
設計模式是構建代碼的有效工具。你可能不是每一個項目都須要它們,可是對它們有一個基本的瞭解將有助於構建更大的應用程序。
不要編寫複雜的代碼來展現你高超的編程技能,而要着眼於可讀性和簡單性。這將使你的團隊成員更容易作出貢獻。
技術債務可能會對性能產生巨大影響,因此若是可以重構,就應該重構。(這個建議絕對是好的,可是現實中要面臨諸多問題)
與其每月發佈一次大規模的升級,不如更頻繁地發佈較小的變動。這樣你不太可能會引入bug和破壞更改。
儘早提交和常常提交是確保你的工做保持乾淨的最好方法,而且還能夠減小意外地恢復重要更改的壓力。
你不只不該該懼怕尋求幫助,並且你應該學會何時尋求幫助。在尋求幫助以前,你應該試着解決問題,並記錄下你嘗試的事情。可是當你被一個簡單的問題難住一個多小時的時候,代價大於收益,你應該向同事求助。
當你問問題的時候,要儘量的具體,(能夠參考github提issue的要求)。
你的工做不須要完成就能獲得反饋。若是你不肯定方向,請一位值得信賴的同事來檢查你的解決方案的有效性。
文檔是關於技術的最純粹的事實來源,所以學習閱讀文檔能夠快速幫助你成爲專家。
沒有什麼能阻止你嘗試解決問題的方法,你有什麼損失呢?
你的想法和意見是有價值的,因此參加會議將有助於你與你的團隊和管理層創建融洽的關係。
若是你有機會和公司裏的其餘團隊一塊兒工做,那就去爭取吧。
當你每週工做40個小時時,花時間作你感興趣的項目是很重要的(72小時的話更要如此)。它們能夠幫助你從新找回對編程的熱愛,並嘗試你在工做中可能沒法接觸到的新技術。
對你的職業生涯有一個理想的軌跡是很重要的。若是你不這樣作,你就是在沒有目標的狀況下射箭。
在博客上發表評論,參與Twitter主題,參與社區活動,作一個積極的旁觀者會比單純的旁觀學到更多東西。
學會肯定任務的優先順序將有助於提升您的工做效率,創建一個平常任務和長期任務待辦事項列表,並按最重要的順序排序。
細節能夠在項目中產生很大的影響。
你的同事由於他們的技能而被僱傭,交給他們工做,並相信他們能完成。
若是你處於領導地位,學習如何有效地委派任務。它會節省你的時間,你不能作全部的事。
你惟一應該比較的是昨天的本身。
學習編程將是一個漫長而不怎麼容易的過程,和那些幫助你成長並鼓勵你堅持下去的人在一塊兒。
一開始考慮太多作一個大而全的項目會讓你不堪重負。構建時要考慮可伸縮性,但在須要時纔開始擴展。這樣你就不會用沒必要要的膨脹來壓倒你的團隊,而是保持了成長的能力。
若是你想使用一種很酷的新技術,你應該權衡這樣作的性能影響。你能在不影響性能的狀況下實現相似的功能嗎?若是能夠,你可能須要從新考慮你的方法了。
不要歧視新技術或新想法,對學習新技能的可能性保持開放的心態,也不要歧視他人,咱們都值得尊重。(也不要歧視舊技術,即便如今前端框架盛行,但你也不能說Jquery就沒有任何可取之處。)
你永遠不可能知足工做的全部要求,因此抓住機會申請吧,你有什麼損失呢?
你能夠在一個長文件中編寫全部代碼,但這是不可維護的。經過模塊化,咱們確保代碼易於理解和測試。
若是你要複製並粘貼Stack Overflow中的解決方案,你應該確切地理解它的做用,有意識地選擇要引入的代碼。
若是你喜歡你的工做環境和技術設置,你會更有動力去工做,因此還在等什麼?
咱們都是從同一個地方開始的,隨着你的技能和職位的發展,不要忘記你來自哪裏,不要膨脹。
若是出了什麼問題,試着樂觀一點。明天是新的一天。樂觀會幫助你的團隊充滿活力和精神健康。
僅僅由於某樣東西如今有效,並不意味着它永遠有效。從新評估你的工做流程,並在必要時作出調整。
若是你有能力在家工做,那就學會有效地在家工做。找一個獨立的辦公空間,遠離干擾。Boneskull寫了一篇很棒的關於在家工做的文章,你應該看看。
無障礙不是過後纔想到的,也不必定很難,每一個人都應該可以使用你的產品。
若是你告訴別人你會在某一天完成某件事,要信守承諾。若是你不能在截止日期前完成任務,那就早點說出來。
若是你有額外的精力,找一個任務來幫助你的團隊,他們會很感激你是主動的。
一個優秀的做品集讓你不同凡響,使用它做爲展現你的編程和設計技巧的機會!
你進入這個行業是由於它激發了你的興趣,若是你感到沮喪和怨恨,休息一下,給本身空間從新點燃你對編程的激情。
若是你學到了一些很酷的東西,不要吝惜分享它,參加當地的技術交流會,在午飯時間教你的同事或學員,分享你的知識可讓更多人受益同時本身也能鞏固提升。
完結撒花 🎉🎉🎉
這就是我關於成爲一個優秀程序員的所有建議,但願大家喜歡。
在原文的評論下面有網友續寫兩個兩條,102條適當鍛鍊和103條充足睡眠,其實程序員幹久了就會愈發認識到這兩條的重要性,因此可能還會有人在下面給出有建設性的建議,能夠去原文關注一下。
此次翻譯中有些內容加入了一些我的的理解,若是以爲哪些內容翻譯的不恰當,能夠評論留言,也能夠提出你對於成爲優秀程序員的建議。