10年學到的編程經驗總結

我做爲一個web開發者的旅程始於2000年,那時我還只有21歲,我依然能夠清楚地記得那些日子裏激盪在我心裏的感受。若是必定要找一個詞來形容的話,我以爲那是——愉悅。html

我不須要擔心時間、最後期限和輕重緩急,也不須要擔憂生產力。我所要關心的只有一件事,那就是學習,儘量多和儘量快地學習。web

我急急忙忙地前進不是由於時間期限這些事情,僅僅是由於這讓我感受良好,讓我以爲有趣。學習如何構建東西,發現一個全新的世界讓我由衷地興奮不已。編程

一晃幾年過去了,時間來到了2006年左右,我開始認真對待編程。我開始做爲一名web開發人員參與到專業的工做中。也許你會認爲這樣作毀掉了我全部的樂趣,我不怪你。這無疑是一種大相徑庭的體驗。框架

回首過往,我做爲專業的web開發人員的旅程一點也不糟糕,雖然過程並不老是一路順風。對於咱們許多人來講,工做是爲了生活,但若是你願意的話,工做並不會阻礙你感到快樂。less

20160419145109707977

下面我要分享我在這旅程中收穫的能夠改進工做/生活平衡,並讓工做趣味盎然的一些內容。編程語言

讓堆棧滾吧!

熱愛你天天使用的工具天然是好的,特別是若是你已經使用了很長一段時間。老是搜尋讓本身感到舒服的東西是一種天性。但事實是,你如今正在使用的堆棧,並無你想象得那麼重要,下面我會告訴你緣由。編輯器

大多數新的編程工具被構建來解決前人未能解決的具體問題。顯然,隨着時間的推移,咱們試圖解決的問題會發生變化,從而使得工具生態系統極可能也發生變化,就像不斷進化的生命體會努力適應新的環境同樣。工具

我必須認可,我也很慚愧於忽略鋪天蓋地的宣傳,只願意舒舒服服地使用我久經沙場的工具。我也傾向於認爲讓別人花時間經歷全部的痛苦一步一步往上爬地到達新技術,才能更有效地學習,而後當在將來的某個時候,若是新技術被證實是好的,那麼我本身採起的策略是快速掌握它。學習

雖然這些作法是徹底能夠理解的,但我在這裏要告訴你的是,這是愚蠢的作法。事實上,你應該作截然相反的事情。網站

我鼓勵你花時間去學習又新又閃亮的語言、框架、模式,無論什麼都好,由於那是你成長的方式。那也是你拓展知識的方式,也是使得工做變得使人愉快的地方。

所以,你應該堅持的一個很是重要的事情,是學習。挑戰自我去探索新的東西,正是這些使得生活和工做有了樂趣。

擁抱不舒服的狀態!

可能只是想一想你須要搞定那麼一大堆的工做事務以跟上你們的節奏,你就已經以爲不舒服了。但其實,你不該該這樣想。

走出溫馨區,進入未知領域是迄今爲止最好的學習方法。堅持老一套不會教你不少你所不知道的內容。

你須要從不一樣的角度思考,你須要用不一樣的工具解決不一樣的問題,你須要擴展你的知識領域,你會享受於其中的每一分鐘。相信我。

不惜一切代價遠離壓力!

像那樣處於一種不舒服的狀態並試圖緊跟行業發展的速度,是有負做用的,由於每一天都會有數量龐大的新信息洶涌而至。你經常會以爲白天沒有足夠的時間去作你想要作的一切事情。沒錯,這樣的確會讓你沒有充裕的時間作事。

不過真實的狀況是這樣的,只有屈指可數的一些內容可以在給定的任什麼時候間激發你的熱情,而且若是你能集中注意力到那些事情上的話,那麼驟然之間,你會獲得一個更易於管理的範圍。

我要與你分享的是個人範圍管理系統。這個系統基於GTD(Getting Things Done)方法和每日目標設置。

長期目標

我使用的主要的衡量單位是長期目標,這裏的長期目標指的是那些我想要在一段至關短的時間內完成的目標,時間範圍從幾天到幾周。

長期目標的一個例子是「閱讀《Javascript Pattens》」或「爲UtmTag.com創建預訂系統」。這些都是長期的,由於很明顯你不可能一口氣作完。

如何定義長期目標的一個很是重要的方面是,有一種按部就班的感受。個人意思是每個長期目標都有一個我能夠明確的結束日期。

所以,長期目標不是「我要賺大錢」,由於沒有明確的方法來衡量這個過程和進展(我強烈建議閱讀David Allen寫的《Getting Things Done》這本書,若是你想要知道在實際中關於如何定義目標的話)。

在前面的例子中,我能夠輕鬆地說,「好吧,這本書我已經看了有一半了,因此我完成了進度的X」,或者「我能夠在一兩週內完成這個系統」。

在長期目標上取得進展是一個重要的激勵因素。由於若是不能衡量進度的話,咱們很容易中途放棄。

每日目標

那些長期目標在展望宏偉藍圖的時候頗有用,可是除此以外,還有一個神奇的祕訣。要想天天都按照預先規劃前行,最重要的一個技巧是天天都有充足的動力去完成一部分長期目標。這就是爲何我喜歡將長期目標聯合每日目標一塊兒使用。

每日目標要小得多,正如其名,其範圍是一天。因此任何須要超過一天時間才能完成的任務都不是每日目標,不過能夠經過再次細分使之成爲每日目標。

如何定義每日目標甚至比定義長期目標更重要。你須要實際安排天天能完成的工做量,同時要考慮到一些你不能控制的事情,例如跑腿和其餘事務。

我建議從很小的工做量開始(例如2H小時/天),看看本身可否在這個基礎上增長工做量而不會以爲不堪重負。

每日目標的一個例子是「在UtmTag.com上花2小時編碼」,其長期目標是「爲UtmTag.com創建訂閱系統」,每日目標可以使得咱們靜下心來天天有必定的進展。

相比於長遠目標,這些每日目標彷佛比較眇小,可是一點點累計起來而且當你再回過頭來看的時候,你會發現,咦,原來你的長期目標已經完成了一半。

自得其樂

曾經有段時間我但願時間能一直停留在週末,這樣我就不用回去上班了。也有一段時候,我火燒眉毛地數着假期結束,以便於回到工做崗位上。

那麼,爲何會有兩種截然相反的心情呢?會出現第一種感覺是由於你不得不作一些你不喜歡的事情,而第二種則是由於你興奮不已以至於沒有顧慮其餘。

很明顯,第二種感情是咱們大多數人所但願的,那麼咱們能夠作些什麼呢?我發現了興奮這種感情的一些特色,而且我正在試着融入我每一天的工做中。

什麼讓工做變得有樂趣?

在你考慮將樂趣融入到你的平常工做以前,你必須先定義對於你而言樂趣意味着什麼。

對我來講,樂趣是指經過完成我之前認爲不可能的事情——歸咎於感知到的複雜——而實現的某種啓迪。

所以,挑戰自我去探索和學習新的東西,而不是工做於那些陳詞濫調的任務,使我更享受於個人工做。

這讓我明白了我應該少作那些沒有這種特色的工做,多作那些有這些特色的工做。

我享受的工做

固然,我享受的工做,別人可能會以爲難以苟同,這很正常。可是我依然想分享一些東西,這些東西讓我以爲本身像一隻快樂的小蜜蜂,你能夠借鑑個人點子,製做出你本身的清單。

  • 工做於我本身的項目/思路
  • 工做於促使我學習的項目
  • 致力於開源
  • 探索新的編程技術
  • 探索新的編程語言
  • 磨礪個人編輯技巧
  • 擺弄個人編輯器配置

結論

請記住,你選擇作什麼樣的工做,其實就是選擇了什麼樣的生活和什麼樣的工做感覺,這徹底取決於你。因此,若是你想享受你的生活,那麼你酒應該喜歡上你的工做。

真心但願這篇文章能幫助你,而且我很是期待聽聽你們是如何改善工做/生活平衡的。

英文原文:Lessons Learned From 10 Years of Programming

中文譯文:http://www.codeceo.com/article/10-years-of-programming.html

相關文章
相關標籤/搜索