想成爲一個高效的Web開發者嗎?來看看大牛分享的經驗吧~前端
做爲一個軟(ku)件(bi)工(de)程(ma)師(nong),你有沒有以爲作什麼事都沒時間?沒時間學習新東西,沒時間去回顧、整理原來寫的爛代碼,沒時間寫單元測試,沒時間給接管你項目的傢伙寫文檔,沒時間思考,沒時間喘氣,沒!時!間!web
額……若是你肯花點時間看看這篇文章,我相信你會明白應該把時間花在哪。編程
我曾覺得成爲一個技術大牛的惟一途徑是玩命地學習與工做。這個想法差點毀了我。身體愈來愈差,和家人與朋友愈來愈疏遠,很快我就撐不住了。後來我開始反思,發現本身的時間安排極爲不合理,並逐漸悟出了下面這5個道理,這才讓本身從那種高壓狀態中解脫出來。併發
不要由於怕本身落伍而去學習新東西框架
一個優秀的開發者始終在學習,這一點毋庸置疑。誠然,舊的技術終會被淘汰。可是新的技術終有一天會變成舊的。所以,沒有必要一味地去追求最新的技術。
平均每37秒就會誕生一個新的標準或框架,你不可能把它們都學會。不少新技術、框架或者新特性對你來講都不是必需的,你不必非得了解它們。真正有價值的技術須要通過社區和市場一段時間的打磨才能出現。IT公司一般都會重點培養適合於本身的技術,沒有哪一個公司會一拍腦門讓本身的代碼去適配某個全新的框架。所以你也不用太擔憂由於某些新技術而被裁人。你須要關注的是這三類知識,按照優先級排列以下:
(1)基礎。基礎是重中之重。當你掌握一門基礎知識後,你能夠快速掌握其相關的技術。好比若是你很是熟悉JavaScript,那麼基於JavaScript的任何框架都難不倒你。若是你掌握了面向對象編程,那麼你能夠快速掌握一門新的面向對象的語言。深刻學習基礎可以大幅提升你的學習效率。函數
(2)你經常使用技術的最新版本。你日常用得最多的技術纔是你的鐵飯碗。若是它們出了新的版本,那麼你有必要花時間去學習一下。單元測試
(3)大公司推崇的技術。若是一個很是知名的公司(如谷歌、臉書和微軟)發佈了一個新的技術並不斷地對它進行維護,那麼這個技術就值得你去關注。曾經社區裏有成百上千個很是火的JavaScript框架,結果Angular和React的出現瞬間搶走了他們的風頭。學習
好好規劃你的學習時間,天天安排一段時間來學習。這段時間不必定很長,哪怕只有25分鐘也能使你有所成長。測試
寫出高效的代碼比通常的代碼要花更多的時間
當你運行完程序並發現功能實現的時候,你感受工做已經完成了,實則否則。實現一個新的功能除了編寫新的代碼之外,還包括對該功能相關的其餘部分已有代碼的調整與優化。當你發現你的一部分時間花在完善代碼的設計上了,那麼從長遠角度來看你遇到的錯誤會更少一些。(web前端學習交流羣:328058344 禁止閒聊,非喜勿進!)優化
要想減小你的代碼的錯誤並優化設計,你須要注意如下兩點:
(1)先準備好測試環境,而後再開發。先將測試功能配置好,而後再編寫符合測試標準的代碼。這樣既能夠減小bug的產生還能優化你的代碼思路,由於你在編寫代碼的時候就嚴格遵照更加合理和規範的標準。這會使你的代碼變得簡潔、高效。
(2)迭代完成你的工做而不是一步到位。在你的代碼實現需求以前不要花時間去完善它。你永遠也不可能使你的代碼處於完美的狀態。你優先要作的就是讓你的代碼完成指定的功能。一般狀況開發者會犯這兩個錯誤:要麼花了太多時間思考而沒有充足的時間去實現,要麼沒有在設計最初的方案上花足夠的時間。遵循Kent Beck說得這句話:
「先讓它生效,再讓它正確地工做,最後再讓它更高效」。
7*24小時的工做不會讓你成爲佼佼者,合理的時間安排纔是最重要的
這個經驗源於我自身的教訓。我曾經爲了讓老闆和客戶滿意而瘋狂地工做。我懼怕說「不」,不想讓其餘人失望。我盡我所能去完成工做,曾經大量攝入咖啡因通宵地工做,困了就直接睡在個人辦公桌上。
起初我是全公司的楷模。我獲得老闆的賞識並感受風光無限,前途一片光明。這種並不長久的過分表現使其餘人對我產生了太高的期待,很快我就撐不住了。結果個人身子垮了,常常生病,耽誤了工做。公司的人變得再也不信任我。
後來我漸漸明白真正的佼佼者是那些一直可靠的人。他們保證的事必定會作到。要想成爲那樣的人就必須認真規劃本身的時間。
你必須緊緊把握本身時間的控制權,在約定好的期限即將到達的時候高質量地完成你的工做。要想作到這一點起初會很難,由於你須要對超出你能力範圍的任務說不。
剛開始,你的老闆和客戶可能不太會在乎你。可是一旦你創建起靠譜、可信的名聲後,一切就都不同了。隨着時間的推移,其餘開發者都會漸漸顯露疲態,變得再也不那麼可靠,而你則會脫穎而出,成爲團隊裏的佼佼者。我就是這樣成爲了行業翹楚。我很好地協調了本身的時間並調整他人對本身的指望值,所以創建起了高質量和高實效的好名聲。
不是全部的付出都會有回報
花時間也是一種投資。和其餘的投資同樣,你很是期待投資會有回報,但願在回本的基礎上有所收益。
我以前曾提到「先讓它生效,再讓它正確地工做,最後再讓它更高效」這句話。可是不要誤解,這裏的「正確」不表明完美,「高效」不表明追求極致。「正確」意味着你的代碼可以準確地實現功能並易於維護。「高效」意味着不影響用戶體驗。最關鍵的一點是你的應用要讓用戶感受很快。
所以,不要糾結於優化一個基本上不用的函數,也不要爲了僅節省幾毫秒而去修改一個已經比眨眼(大約300毫秒)還要快的功能。不要由於你學了一個新的技術或方法就把你以前寫的功能正確、結構完整的代碼推翻重寫。
按照時間表去工做可使你更加高效
起初我很難理解這一點。你不將你的精力所有投入到工做中也能作到高效?恩,這是真的。Allison Gabriel是弗吉尼亞聯邦大學的管理學教授助理,主要研究工做需求和員工動機。她認爲:「不少研究代表人的認知能力是有限的,當你不斷地去耗費你的能力時,你並不能達到最佳的工做狀態。當你被本身榨乾時,你的效率會大幅降低。」
永遠不要在壓力很是大的時候工做,尤爲是你很是疲勞、情緒很差的時候。這些不安因素都會讓你分心,從身心兩方面對你形成不良影響,下降你的工做效率。
人腦的自控能力比如是一種資源,當你進行自我控制時,這個資源會被消耗一部分。若是你的自控能力被大量消耗的話你就不能集中注意力,天然就不能高效地工做了。
不論你是否樂意,你的身心都須要一個休息的時間。所以在天天的時間表裏都要安排休息的時間。嚴格按照時間表的休息時間去休息,很少也很多,這樣可讓你在充分休息的同時不感到內疚。指定明確的休息時間可讓你以更加自如的心態去工做,由於你知道你有休息的時間而不是無休止的工做下去。
結語
瞭解了這五個經驗,相信你已經明白了應該如何安排本身的時間。合理地安排你的學習、工做與休息的時間,制定出詳細的時間表並嚴格按照它執行。學習你應該學的、花時間在一些必要工做上、該休息的時候好好休息。但願你也能在本身的領域嶄露頭角,成爲一個真正的大牛~