標籤:
前言:
無意間瀏覽到此篇文章,發現這篇文章無論是對於新手程式員,還是學過幾年的程式員,都是挺有協助的。於是,在此分享,後面也有我自己的一些理解,希望能幫到更多的朋友。
作為一個軟(ku)件(bi)工(de)程(ma)師(nong),你有沒有覺得做什麼事都沒時間?沒時間學習新東西,沒時間去回顧、整理原來寫的爛代碼,沒時間寫單元測試,沒時間給接管你項目的傢伙寫文檔,沒時間思考,沒時間喘氣,沒!時!間!
額……如果你肯花點時間看看這篇文章,我相信你會明白應該把時間花在哪。
我曾以為成為一個技術大牛的唯一途徑是玩命地學習與工作。這個想法差點毀了我。身體越來越差,和家人與朋友越來越疏遠,很快我就撐不住了。後來我開始反思,發現自己的時間安排極為不合理,並逐漸悟出了下面這5個道理,這才讓自己從那種高壓狀態中解脫出來。
不要因為怕自己落伍而去學習新東西
一個優秀的開發人員始終在學習,這一點毋庸置疑。誠然,舊的技術終會被淘汰。但是新的技術終有一天會變成舊的。因此,沒有必要一味地去追求最新的技術。
平均每37秒就會誕生一個新的標準或架構,你不可能把它們都學會。很多新技術、架構或者新特性對你來說都不是必需的,你沒必要非得瞭解它們。真正有價值的技術需要經過社區和市場一段時間的打磨才能出現。IT公司通常都會重點培養適合於自己的技術,沒有哪個公司會一拍腦門讓自己的代碼去適配某個全新的架構。因此你也不用太擔心因為某些新技術而被裁員。你需要關注的是這三類知識,按照優先順序排列如下:
(1)基礎。基礎是重中之重。當你掌握一門基礎知識後,你可以快速掌握其相關的技術。比如如果你非常熟悉JavaScript,那麼基於JavaScript的任何架構都難不倒你。如果你掌握了物件導向編程,那麼你可以快速掌握一門新的物件導向的語言。深入學習基礎能夠大幅提高你的學習效率。
(2)你常用技術的最新版本。你平常用得最多的技術才是你的鐵飯碗。如果它們出了新的版本,那麼你有必要花時間去學習一下。
(3)大公司推崇的技術。如果一個非常知名的公司(如Google、臉書和微軟)發布了一個新的技術並不斷地對它進行維護,那麼這個技術就值得你去關注。曾經社區裡有成百上千個非常火的JavaScript架構,結果Angular和React的出現瞬間搶走了他們的風頭。
好好規劃你的學習時間,每天安排一段時間來學習。這段時間不一定很長,哪怕只有25分鐘也能使你有所成長。
寫出高效的代碼比一般的代碼要花更多的時間
當你運行完程式並發現功能實現的時候,你感覺工作已經完成了,實則不然。實現一個新的功能除了編寫新的代碼以外,還包括對該功能相關的其他部分已有代碼的調整與最佳化。當你發現你的一部分時間花在完善代碼的設計上了,那麼從長遠角度來看你遇到的錯誤會更少一些。
要想減少你的代碼的錯誤並最佳化設計,你需要注意以下兩點:
(1)先準備好測試環境,然後再開發。先將測試功能配置好,然後再編寫符合測試標準的代碼。這樣既可以減少bug的產生還能最佳化你的代碼思路,因為你在編寫代碼的時候就嚴格遵守更加合理和規範的標準。這會使你的代碼變得簡潔、高效。
(2)迭代完成你的工作而不是一步到位。在你的代碼實現需求之前不要花時間去完善它。你永遠也不可能使你的代碼處於完美的狀態。你優先要做的就是讓你的程式碼完成指定的功能。通常情況開發人員會犯這兩個錯誤:要麼花了太多時間思考而沒有充足的時間去實現,要麼沒有在設計最初的方案上花足夠的時間。遵循Kent Beck說得這句話:
“先讓它生效,再讓它正確地工作,最後再讓它更高效”。
7*24小時的工作不會讓你成為佼佼者,合理的時間安排才是最重要的
這個經驗源於我自身的教訓。我曾經為了讓老闆和客戶滿意而瘋狂地工作。我害怕說“不”,不想讓其他人失望。我盡我所能去完成工作,曾經大量攝入咖啡因通宵地工作,困了就直接睡在我的辦公桌上。
起初我是全公司的楷模。我得到老闆的賞識並感覺風光無限,前途一片光明。這種並不長久的過度表現使其他人對我產生了過高的期待,很快我就撐不住了。結果我的身子垮了,經常生病,耽誤了工作。公司的人變得不再信任我。
後來我漸漸明白真正的佼佼者是那些一直可靠的人。他們保證的事一定會做到。要想成為那樣的人就必須認真規劃自己的時間。
你必須牢牢把握自己時間的控制權,在約定好的期限即將到達的時候高品質地完成你的工作。要想做到這一點起初會很難,因為你需要對超出你能力範圍的任務說不。
剛開始,你的老闆和客戶可能不太會在意你。但是一旦你建立起靠譜、可信的名聲後,一切就都不一樣了。隨著時間的推移,其他開發人員都會漸漸顯露疲態,變得不再那麼可靠,而你則會脫穎而出,成為團隊裡的佼佼者。我就是這樣成為了行業翹楚。我很好地協調了自己的時間並調整他人對自己的期望值,因此建立起了高品質和高實效的好名聲。
不是所有的付出都會有回報
花時間也是一種投資。和其他的投資一樣,你非常期待投資會有回報,希望在回本的基礎上有所收益。
我之前曾提到“先讓它生效,再讓它正確地工作,最後再讓它更高效”這句話。但是不要誤解,這裡的“正確”不代表完美,“高效”不代表追求極致。“正確”意味著你的代碼能夠準確地實現功能並易於維護。“高效”意味著不影響使用者體驗。最關鍵的一點是你的應用要讓使用者感覺很快。
因此,不要糾結於最佳化一個基本上不用的函數,也不要為了僅節省幾毫秒而去修改一個已經比眨眼(大約300毫秒)還要快的功能。不要因為你學了一個新的技術或方法就把你之前寫的功能正確、結構完整的代碼推翻重寫。
按照時間表去工作可以使你更加高效
起初我很難理解這一點。你不將你的精力全部投入到工作中也能做到高效?恩,這是真的。Allison Gabriel是維吉尼亞聯邦大學的管理學教授助理,主要研究工作需求和員工動機。她認為:“很多研究表明人的認知能力是有限的,當你不斷地去耗費你的能力時,你並不能達到最佳的工作狀態。當你被自己榨乾時,你的效率會大幅下降。”
永遠不要在壓力非常大的時候工作,尤其是你非常疲勞、情緒不好的時候。這些不安因素都會讓你分心,從身心兩方面對你造成不良影響,降低你的工作效率。
人腦的自控能力好比是一種資源,當你進行自我控制時,這個資源會被消耗一部分。如果你的自控能力被大量消耗的話你就不能集中注意力,自然就不能高效地工作了。
不論你是否樂意,你的身心都需要一個休息的時間。因此在每天的時間表裡都要安排休息的時間。嚴格按照時間表的休息時間去休息,不多也不少,這樣可以讓你在充分休息的同時不感到內疚。指定明確的休息時間可以讓你以更加自如的心態去工作,因為你知道你有休息的時間而不是無休止的工作下去。
結語
瞭解了這五個經驗,相信你已經明白了應該如何安排自己的時間。合理地安排你的學習、工作與休息的時間,制定出詳細的時間表並嚴格按照它執行。學習你應該學的、花時間在一些必要工作上、該休息的時候好好休息。希望你也能在自己的領域嶄露頭角,成為一個真正的大牛~
以上除前言外為轉載,原文連結:
igeekbar《想成為一個高效的Web開發人員嗎?來看看大牛分享的經驗吧~》
我的理解:
仔細閱讀完上面的文章,對此文章有點小小的總結。上面的文章說了5個經驗,也就是:
1、不要因為怕自己落伍而去學習新東西
我覺得更準確的說,其實應該是:不要因為怕自己落伍而去學習所有的新東西/技術。
一個人的精力與生命總是有限的,正如前文所說:平均每37秒就會誕生一個新的標準或架構。
試問,就單說這個每37秒誕生的一個標準或架構,都無法全部學來,更何況程式設計語言如此大的一個概念。正因為我們精力與生命有限,所以,我們要學會學習,學會挑選。
上面總結了小3點,也就是:基礎、常用技術的最新版本、大公司推崇的技術。
2、寫出高效的代碼比一般的代碼要花更多的時間
如何寫出高效的代碼,在我的理解看來,這不是一蹴而就的,這需要積累,自己平時寫代碼的時候,就需要注意代碼的高效性這個問題。
在水平有限的時候,我們可以不必追求高效。在水平提高一些後,就該注意這個問題了。在用我們自己的程式碼完成完整的功能後,可以對已經完整的代碼去進行進一步的完善。
或者最好一開始就先設計架構好項目,對後面的開發與查錯很有協助的。
因為自己水平目前有限,無法做出更多的理解。見諒~
3、7*24小時的工作不會讓你成為佼佼者,合理的時間安排才是最重要的
即使我們再怎麼想努力工作,一天也只有24小時,而你能學習的,除去必須的吃飯睡覺運動,個人覺得一天能有10個小時左右的累積學習時間,那麼,堅持下去,每個月你都能看到自己明顯的進步了。
合理的安排時間,這個也是挺重要的,個人並不喜歡全部依賴計划行事,畢竟,總會有一點意外的。但是適當的規劃,還是必要的。
例如,這一天學習什麼,學多少。一周學習完哪些東西。這個月做哪些事、等等,我覺得雖然不需要詳細的計劃,但是,至少,明白自己要做什麼,應該學習什麼。而不能完全隨性而為,想到做啥了就去做啥,然後到最後,啥也沒真正的做好。
4、不是所有的付出都會有回報
正如此小標題所說,不是所有付出都會有回報,準確的說,這是一句人生哲理了。相信大家對此都有一些瞭解,我也就不再說明了。
5、按照時間表去工作可以使你更加高效
時間表這個東西,挺好的。但是最好不要把時間分成很細。
分成大概就好。而且安排在時間表上的事,不要隨意去更改,可能對於一個剛開始按照時間表去做事,挺難的,但是堅持下去,無論是學習的效果還是其他例如鍛煉方面的效果都會是很明顯的。
最後-我的理解如有不恰當之處,歡迎指出。
本文章由[諳憶]編寫, 所有權利保留。
轉載請註明出處:http://blog.csdn.net/qq_26525215 ------大學之旅_諳憶的部落格
[深度好文]想成為一個高效的Web開發人員嗎?來看看大牛分享的經驗吧~外加一些自己的理解