網上並不缺乏告訴你 「採起行動」 的內容,很大程度上,它們但願你忘記學習並專一於行動。這些帖子的出發點也許是善意的,但並不是事情的全貌。程序員
光學習不行動是沒用的,但只行動不學習一樣如此。程序員是知識工做者,這意味着學習是咱們工做的必要部分,然而這須要咱們去創造學習機會,關鍵在於平衡。編程
若是你屁股一坐在那不停的收集文章卻從不使用這些信息,那麼你就須要偏向行動;可是,若是你盲目的進入行動,你也不會走得太遠。微信
曾經多少次,你爲那些無知且魯莽的程序員創造的項目進行善後清理,收拾殘局?他們可能不只僅是缺少技能,也多是不肯意學習。不熟練的程序員也許會給團隊帶來負面的生產力,特別是那種不假思索就大幹快上類型的程序員。架構
學習和行動是相輔相成的。學習太少會致使效率低下和低質量的軟件,行動太少,則沒有結果或結果微乎其微,忽略不計。做爲程序員,爲了最大化你的成效,須要在獲取知識和使用它們作有用的工做之間取得平衡。學習
在這篇文章中,你會學會這種平衡的藝術。最後,你將會擁有一些具體的策略來改善你的工做與智識。網站
首先要提醒你們,咱們只有這麼多時間。不只是說一天咱們只有 24 小時,並且咱們也只有有限的一點點富有有效、保持專一的時間。即便你能把全部 16 小時的時間都花在開發軟件和學習上,但在那以前你恐怕早就精疲力竭了。編碼
大多數高效的做家和藝術家天天只花幾個小時工做在他們的手藝上,即便是那些技藝超羣之人,天天也只花幾個小時進行刻意練習。在這兩種學習中,你所能投入的精力是有限的 —— 一樣,行動亦如此。視頻
這一限制強調了在你使用時間時對效率的需求,面對生活中的全部需求,多數人都很難找到他們一天內能工做的最大有效時間。即便你能很好的管理你的時間,接近最大的極限,你仍然須要注意如何去分配時間。(這是學習的主要好處之一,知識可使你更有效率)blog
對給定的程序庫或編程棧知道的越多,就越能繞過問題,你也就不須要花那麼多時間在 StackOverflow 上 「釣」 答案。ip
此外,學會如何管理時間,清晰編碼,並更好的溝通,可使你在其餘方面更有效率。用對話來解決複雜的問題一般比用代碼更快。我有時會稱以外 「外交決議」,這是我最喜歡的修復 Bug 的方法(譯註:Bug 有時就是不一樣人對同一個表象的不一樣理解)。你做爲程序員碰到的許多問題都是因爲缺少清晰性致使的。
學習也會擴張你的技能集。對新技術的瞭解意味着你能夠構建不一樣類型的軟件,這意味着你能從維護它們到架構它們。知識擴展了你的能力。
技術老是處在變化之中,咱們須要花時間瞭解行業的當前趨勢來規劃咱們的職業生涯,而軟件開發就是這樣一種緊跟變化的職業。
程序員的努力奮鬥使我想起了《愛麗絲夢遊仙境》中 「紅桃皇后」 的一句話:
親愛的,在咱們這個地方,你必須儘量快的奔跑,才能留在原地;若是你想去任何地方,你必須跑得比那快兩倍。
咱們行業發展很快,咱們須要保持學習,不然咱們將被拋下。
在前文中,我批評那些呼籲行動而不是學習的人,但這並不意味着行動是不重要的。行動是必不可少的。
你擁有多少知識並不重要,假如你都不使用它,那就是毫無心義的積累。學習的目的是改進行動,而不是在程序員的知識面上獲勝。
你也許讀過數百本編程書籍,但若是你晚上和週末都窩在沙發上追劇,而不是去建立你的業餘項目,那讀過的這些書都可有可無了。若是你的工做中都一直使用相同的技術、技巧和實踐,那也無所謂了。只有當你吸收了學到的全部教訓,並試圖將其應用到現實世界中時,你才能取得進步。
行動鞏固學習,行動也觸發回憶,這是學習的關鍵部分。例如,也許你在網上看過二十多個視頻課程,但這並不重要:你不會了解一項技術,除非你真正用它來構建某種東西。若是我沒用某個技術構建過至少算是 Demo 的項目,我是絕對不會放在個人簡歷上的。
人們並不關心你知道些什麼,人們只關心你能作什麼。知識是有助於行動的,但它不該取代行動。別作一個受太高等教育的電視迷,把你辛苦習得的知識運用起來吧。
在這點上,你應該理解平衡的重要性。如今,你將學習一些具體的策略,將這種平衡帶入自身的生活。
第一個策略是成爲一名更高效的學習者。花點時間學會如何學習,學得越快,就越能騰出時間來採起行動。做爲程序員,學習是咱們所作工做的重要部分,花時間學習如何學習將給你的職業生涯帶來巨大的紅利。
除了學習如何學習以外,在你的日程中找出額外的時間,經過把一些跑腿的差事和其餘 「死」 時間與學習時間合併起來。你無法用這些時間來編寫軟件,因此你能夠自由的利用這些時間來學習。我在通勤時間聽播客和有聲書,作家務時我也會聽。在過去的幾年中,我用這種方式已經消化了數百本書,要不還真沒那麼多時間去讀。我在排隊時也閱讀文章,這些時間一般會被浪費掉,讓它們成爲有用的學習時間。
提升總體效率的另外一種方法是更加當心地處理所消費的信息。避免時間被社交媒體和低質量的信息娛樂所吞噬,不少提供這類信息的垃圾網站會成爲你時間的黑洞,而給你的生活帶來的價值微乎其微。你不只節省了時間,也減輕了壓力。大多數 「信息垃圾食品」 站都是依賴於觸發壓力反應。壓力會下降你的創造力,讓你更難建造東西。限制垃圾信息,會給予你更多時間去學習和行動。
在你開始學習一個主題以前,要知道你須要從中獲得什麼,弄清楚你要用這些知識採起什麼樣的行動。例如,假設你對虛擬現實(VR)開發感到好奇,記下來你想用這些知識作什麼。你是想要構建一個很酷的 VR 應用呢,仍是想在下次和你的開發小夥伴談論 VR 時能有些有趣的話題可說?相應的,根據不一樣的目的調整你的學習計劃。若是你只是想跟上 VR 技術的最新發展,你能夠去訂閱一些相關的博客,到此爲止也就夠了。經過只從特定資源和主題獲取相關的內容,你可以節省大量的時間。
另一個節省時間的方法是練習 「即時」 學習。即時學習,是指你花時間學習的東西馬上就會用在當前的項目或目標上。與其積累大量可能沒什麼用處的技能,不如把時間花在學習與當前項目相關的事情上。把你的學習和行動直接綁定起來,這種方法在那種 「潮流涌動」 的軟件開發領域尤爲有用,就像 JavaScript 的世界。
當你在創造一些東西時,按期評估什麼樣的信息會讓你進展更快。當你是在胡亂地擺弄一個問題而非用你的頭腦解決它,就要特別注意了,這時候,看看書可能比用頭砸鍵盤要容易得多。
最後,在學習和行動之間取得平衡的最好方法就是同時作這兩件事。每當我學到一些東西,我就把它和某個項目關聯起來。這多是一些公開的東西,好比博客文章或者技術演講,或者使一些私有的東西,好比參考實現。
總而言之,你不會真正瞭解一項技術,直到你用它來建造了一些東西。必定要把你的學習和一個項目關聯起來,纔會真正把知識烙印下來。
學習和行動是同一枚硬幣的兩面,爲了得到最好的職業生涯,你要兩者兼顧。
在學習和行動之間走鋼絲是很困難的,但有幾種策略是能夠作到的。從如何學習有效的學習,到關聯學習與行動,你職業生涯的兩個方面便能獲得平衡。
首先,坐下來考慮一下你的學習計劃。弄清楚你想作什麼,你須要什麼技能才能達到目的。而後爲每一項技能安排好學習計劃,把計劃滲入到一些項目中以增強你的學習。
將來,你會感謝當下的你本身的。
做者:Dustin Ewers
日期:2018-10-12
原文:How to Balance Knowledge and Action
寫點文字,畫點畫兒,記錄成長瞬間。
微信公衆號「瞬息之間」,既然碰見,不如同行。