當前位置:
首頁 > 最新 > 演進:在工作的前三年里快速成長

演進:在工作的前三年里快速成長

有人可以靠中彩票,然後一夜暴富;有人隨隨便便發幾張自拍,就一不小心一夜成名。可技術成長,要一步一個腳印地練習,才能掌握某項特定技術。等到我們掌握了學習的技巧,才能用更短的時間,來掌握某項特定的技術。

而練習,也不是一天里寫一萬行代碼,也不是重複寫一百行代碼,而是在一百天里,每天寫下一百行代碼。它需要一定的技巧,不懈的堅持,還有一些休息。因此在這篇文章里,我將分享工作幾年裡的練習技巧:

基礎篇:正確的練習姿勢。從程序員的基本技能:盲打,到練習使用快捷鍵、重構技能等,再到如何使用新的框架練習。

進階篇:如何通過練習來提高。初學時,我們可以使用 Vue、React去高仿一些項目;有經驗以後,高仿應用只會讓我們更累。我們便需要一些更高級的練習技巧,從引入別的框架思想,到造各式各樣的輪子。

找到合適的時間練習。早上,慢慢進入狀態;中午,適合做一些 Review;碎片時候,可以做一些知識的管理等等。

怎樣才能持之以恆下去。分享一些制定目標的技巧,及激勵自己的方式。

當然,練習有一個大前提是:我們有充足的時間。時間是一種很珍貴的資源,特別是對於長期加班的開發人員來說。因為技術能力不足導致的加班,會變成惡性循環。

如果你還沒工作,那麼便相當的幸運,你有相當多的時間。工作的時候,大家都忙於實現業務功能,沒有時間讓你提升自己。如果你已經工作了,那麼你需要每天預留一些時間,才有機會去練習。每天會佔用一些遊戲、看電視時間,哪怕只是半個小時,一周、一個月、一年下來,幫助就很大了。

進行這些練習之前,請不要忘了根本——能熟練地用框架、語言完成工作。完成工作,相當於必須達到的 60 分及格要求。在勝任工作之外,提高能力到 80、90 分,追求更好的技術能力,才是正確的路線。

下面,讓我們開始第一部分的內容吧~。

基礎篇:正確的練習姿勢

編程的時候,我們只是在碼字——編碼的過程(即思路)實際 上是在腦子裡完成的。嫻熟的碼字能力,可以幫助我們更好地編程。

小學時,自參加了五筆打字比賽之後,便開啟了我的編程生涯。可當工作的時候,已經可以熟練的完成工作的我,仍然無法打對每一個字元。有一天,看到了一個名為Typing的在線代碼打字練習工具。練習了一次之後,發現它會給出一些建議,便開始進行了一些編碼練習。但是得到的反饋能表明,在打字這方面,仍然有一些提升的空間:

我的「自我解釋」是:今天的編程語言設計得不合理——使用了各種字元,導致了右手在這方面的負擔比較大。在那之後,我便陸續進行了一些基礎的練習,並整理他們的因果關係,便有了下面的一些練習項目:

作為經常用電腦的人,應當掌握好打字的基本技巧,比如說採用正確的打字姿勢,以及盲打技能。

作為一個程序員,應當「精通」使用手上各式的IDE、編輯器,熟練使用它們的快捷鍵。

作為一個專業的程序員,我們還要將重構代碼、命名等高級的技巧掌握好。

這些練習,可以讓我們成長為一個更專業的程序員。

語言與框架的練

對於語言與框架的練習,算是比較簡單的。於我而言,這種練習過程便是:

買本相關的書籍,或者尋找份教程、官方指南。

再找個合適的 Demo,熟悉基礎概念,並掌握好相關基礎。

在 Demo 的基礎上,實現一些業務功能,了解各種功能、特性。

查看官方文檔,查有沒有漏掉了什麼重要的東西。

撰寫博客、日誌來記錄這個過程。

因此,只需要找一個合適的網站、APP,作為模仿的對象,一步步往下練習即可。唯一的難點在於,第一次寫 Web 應用的時候,可能會多花費更多的時間。新手期的程序員,對很多的概念都不清楚,如若能找到一個新手社區、群體,提高起來就會方便多了。

熟練使用語言或者框架,不能幫助我們成為一個『優秀』的成員。只能帶領我們成為一個「勝任」的程序員,即我們可以憑藉著這種練習,找到一份養家糊口的工作。

工程實踐練習:模仿開源軟體

工作的時候,寫的都是業務代碼,純技術上的實踐並不多。這意味著,多年的工作經驗,與技術能力的關係並無太大關聯。如果有一天,我們看到幾年前寫的代碼,和今天寫的代碼並沒有太大的區別,那麼說明了:我們已然陷入了這樣的一個瓶頸。

在學校寫的代碼,與工作寫的代碼,最大的區別在於:軟體工程實踐。單單憑藉工作經驗,那麼在軟體工程實踐上的提高可能不會太大。受限於上線 deadline 的影響,多數項目的軟體工程實踐,並不能做到最好,甚至可能很差勁。如我們所見,國內的大部分公司(包括BAT)在這方面的實踐也很難做全,更不用說做好。這些實踐包括:

使用版本管理。諸如 GitHub 上的項目採用的 Git,基本已經普及。

使用持續集成。它可以為團隊協作,提供一個可靠的幫助。

完整的測試用例。編寫單元測試、功能測試等等。

代碼檢視。用於提高整個項目的質量。

等等。

而對於一個優秀的開源軟體來說,為了保證好項目的質量。擁有者往往付出了很多的精力,在提高軟體工程的實踐上。因此,對於軟體工程實踐來說,最好的練習,便是模仿開源軟體,並自己去創造一些輪子。以 React 為例,其在首頁擁有下面的幾個徽章(badge):

分別是:

Circle CI,即持續集成,諸如測試是否都通過、部署是否成功等等。

Travis CI,同上。

Coverage,代碼的測試覆率,81%。

npm,當前的版本號。

PRs welcome,即歡迎來 Pull Request。

那麼,我們在實踐的時候,就可以模擬這樣的項目組成,一步步往下實踐:

為項目添加測試框架,如 Java 里的 JUnit,Node.js 里的 Mocha 等等。

添加自動化測試腳本,如 Java 里的 Gradle,Node.js 里的 Grunt、Gulp、NPM 等等。

添加測試覆蓋率工具。

添加持續集成,如 Travi CI 或者 Circle CI。

添加代碼質量分析工具,如 Code Climate。

制定目標,並完成。

最難的實際上是最後一步,制定一個目標並實現。它可以是測試覆蓋率要達到 90% 以上,這就需要一步步的來完成。如先將目標放到 60%,再慢慢地往上提升,直到 90%,甚至 100%。在這個過程中,會不斷地遇到一些挑戰,如難以測試的代碼為了編寫測試而修改功能代碼等等。但是,它能確確實實地幫助我們提高工程能力。

基礎練習:從碼字到盲打

編碼的時候,如果我們心裡想輸入的是一個 ,結果打下的字元是 ,那麼我們就需要刪了重來。又或者是小心翼翼地,邊看鍵盤邊輸入一個個字元。雖說,編碼只是一個打字的過程,但是很多時候,經常出現的錯字會中斷我們的思路。因此,盲打應該成為程序員的基本技能。而這裡的盲打,指的並不是我們可以閉上眼晴打字聊天,而是可以完成編程工作,即能盲打下 26 個字母,及各種字元,還有各種功能鍵。

而在進行這一類練習的時候,我們經常會遇到的一個障礙:度量。即以某種方式來衡量練習的成果,我們做了很多的練習來提高自己,但是沒有數據來支撐。它不像編碼,我們寫了幾行代碼,完成了一個功能,那麼寫下的這些代碼的價值就是可以衡量的。因而練習的時候,我們可以尋找一些合適的工具,如 Typing.io、Keybr.com 這一類工具。如 Typing 使用的是真實的代碼片段,它能幫我們發現真實場景下:我們容易打錯哪些字,容易按錯哪些鍵,我們的打字速度是多少等等的內容。

對於可以衡量的打字練習,我們可以訂下每天十幾分鐘的時間,一段時間要提升到什麼水平的目標。這樣它便能滿足SMART原則,就能讓我們看到我們在這段時間內的提升。

當時,我拿 Typing 練習的時候,差不多練習了一個月,每天大概半小時左右。因為打字的速度比較快,所以容易出錯,所以便將注意力放在減少錯誤上。而對於有些人來說,則是相反的,即打字速度比較慢,但是準確率比較高。而這個練習的主要目的是,能熟練地做到盲打,不讓它影響我們的效率。

掌握了熟練開關機、鍵盤上的各種按鍵後,我們就在使用工具上做一些效率的提升。

基礎練習:掌握開發工具

剛工作的時候,發現每個有經驗的程序員,幾乎可以不用滑鼠編程。熟練的使用各種快捷鍵,進行代碼重構、打開新頁面、開啟新窗口等操作。慢慢的,我覺得自己在這方面上有相當大的提升空間。

這意味著,我要學習、探索開發工具的功能,也要能使用快捷鍵來控制。儘管在日常結對編程、代碼檢視、交流的時候,可以請從別人身上學習。但是理想的方式,還是應該自己去練習。

對於大部分的開發工具,它們都有對應的手冊、Keymap 或者 cheatsheet,即「作弊表」。如下是 Intellij Idea Keymap 的截圖。

上面列出了其可用的快捷鍵,及其相應的用途。因而只需要列印好,放在眼睛能看到的地方,就能有效的改善。除了列印成紙質資料,他們還可以有不同的形式,如滑鼠墊、杯子的形式。需要的時候,便可以一眼看到;平常多看到幾次,也能多多少少的多記住一些。

需要注意的是:對於開發工具而言,沒有必要掌握所有的快捷鍵,而是只掌握常用的功能。我曾陷入了一個誤區,練習使用快捷鍵的時候,邊練習一些重構的技巧,同時也花費了時間在練習一些『屠龍之術』上——一些非常少用的功能,除了炫耀,也沒有什麼用。時間一久,我便忘了很多的快捷鍵。

再舉些例子:如 Vim,對我而言,一般用於伺服器維護及 Git 修改。因此,主要使用的功能便是:快速地改幾個字元、更新配置,保存並退出。如 Chrome 瀏覽器,在日常使用時,配合下 Vim 插件,便不需要滑鼠。在進行前端開發的時候,便需要使用滑鼠來調試。

對於大部分的工具來說,我們只需要一個 CheatSheet。複雜的工具,如 Vim、Emacs,則需要有一本更專業的書。它們是高度可定製的,這也意味著我們需要一步步的定製這些工具,尋找合適的插件,自定義快捷鍵,又或者是使用別人的配置。

而,要衡量快捷鍵使用方面的提升,目前還沒有看到有效的度量工具。如果有的話,那麼就是編碼的時候,使用滑鼠的頻率。因此,在某些特定的時候,可以通過禁用滑鼠來提升自己在這方面的能力。

進階篇:如何通過練習來提高

儘管我在上面指出,學習新框架的最好姿勢是:基於現有的業務來學習。即從工作中學習,從做中學。但是,如果一直只使用新的框架來重寫舊的業務,那麼你的成長就會趨近於 0。第一次,使用新框架時收穫可能頗豐;第二次,收穫的東西就更少了;第三次,你可能就學不到東西。

因此,在業餘的練習時間裡,不要一直練習新的框架,不要再拿 Vue、React Native 去高仿一些應用。當且僅當,你所處的項目正在使用新的框架,這種練習才是有意義的。

經過上面的練習,我們提高了我們的工作效率。同時,在別人的眼裡,我們更像是一個專業的程序員。在這之上,我們還需要提高頂層的能力。下面介紹的是,我嘗試過的一些,比較有效果的提升方法:

閱讀開源軟體與重構代碼。

造自己的輪子來重寫應用。

結合設計模式。

引入其它領域的思想。

總的來說,收穫還是蠻多的,特別是造輪子,能有更大的提升。與其他的練習稍有不同的是,因為涉及到代碼設計,這裡的練習有些難以衡量。這時候,我們應該是保持著練習的心態,並意識到我們是在做這方面的練習。

閱讀開源軟體與重構代碼

如果在工作環境中,沒有代碼寫得比較好的人,那麼我們就只能從開源代碼中去學習。筆者之前寫過一篇《如何以「正確的姿勢」閱讀開源軟體代碼》的文章,文中我建議的閱讀開源軟體代碼的方式是:

clone 某個項目的代碼到本地。

查看這個項目的 release 列表。

找到一個看得懂的 release 版本,如1.0或者更早的版本。

讀懂上一個版本的代碼。

向後閱讀大版本的源碼。

讀最新的源碼。

可只讀這些代碼,不能讓我們顯著的提高水平,我們應該結合『重構』這個技能來練習。從我的練習經驗看來,對於重構的練習是最有意思的。我們可以見證,一段不好的代碼在我們的調教之下,煥發出新的光彩。當我們重構一段壞味道的代碼,對比重構前後的代碼,便會發現自己竟然有這樣神奇的能力。

如果找不到合適的練習項目,可以到 GitHub 上找一些star 多,但是沒有測試缺少 CI等的項目練習,這樣的項目在 GitHub 上也是蠻多的。

有一次,我在尋找一個迷你的 Markdown 解析器,看到 GitHub 有一個精巧的實現。它有 100+ 的 star,但是沒有測試、四百行的代碼里,有一個方法有三百多行等等的壞味道。於是,便花了幾天的時間,邊思考邊重構這個項目。這樣對編碼的提升比較大,因為工作的時候,完成任務是第一優先順序,然後才是質量。

因此,對於我們練習來說,我們只需要:

找一個不錯的開源庫。

閱讀其中的代碼。

找到代碼中設計不好的地方。

自己認為設計得不好的代碼重構。

結合《重構》一書,來改進設計。

需要注意的是:不同的人對於代碼設計,有著不同的觀點。因此,在這時如果只是因為代碼的設計不好,而不是代碼里有各種壞味道(code smell),那麼,就不應該去給別人的代碼提 Pull Request。

造自己的輪子來重寫應用

與閱讀代碼、重構相比,造一個自己的輪子,來實現同樣的功能,便是一個更不錯的選擇。在 Web 開發領域,大部分的開發框架本身都是『通用型』的框架。即它擁有相當多的功能,其中有很多的功能都不會用到。如你使用 jQuery 的時候,你可能只會使用到其中的 Ajax、Event等功能,那麼你就可以寫一個新的框架,兼容這兩個介面。

練習時間充裕的時候,便可以自己動手去做一個。上面說到的閱讀框架代碼,是一種好的方法。除此無論是前端還是後端,我們都可以找到從零創建框架的資料,來幫助我們理解框架的組成。

通過閱讀諸如 Python 里的 Flask、 Ruby 里的 Sinatra 等輕量級的框架,我們就能理解一個框架所需要的元素,並模仿他們做出一個新的系統。這些框架的關注點是:處理 HTTP 請求的 CGI、與資料庫交互的 ORM、控制邏輯的 Controller 層、返回 HTML的 View 層等等。除了相關的框架,我們還能在 GitHub 上看到很多人模仿這些框架。做一個這樣的後台框架,搭建自己的博客,那就能理解好這一系列的邏輯了。

對於前端來說,也是類似的,諸如 Building React From Scratch,可以讓我們在 250 行理解 React 的原理,並做出一個類似的框架。除了 MVC,還有模塊化設計、數據請求等等的內容。在兩三年前,《JavaScript框架設計》就是這方面一個不錯的選擇。

我曾經造過一個名為 Lettuce 的前端框架,它的主要目的就是用於:學習前端框架的設計,便在自己的多個業餘項目上使用這個框架。而在前端領域,定製自己的 UI 框架、CSS 框架也是一個很不錯的選擇。再用到自己的博客上,再寫上『自豪地採用xx框架』,豈不是更加的自豪?

在底層領域,又有各式各樣的《自製操作系統》、《自製編程語言》、《自己動手設計物聯網》等等的書籍,它們都能讓我們從底層理解一個系統的組成。除此,還有各種各樣的剖析類書籍,可以讓我們理解底層機制的同時,也能讓我們製作出一個框架。

最後,我們只需要能不改寫或少數改寫代碼,將我們的應用運行在上面,便是成功的一個仿造的輪子了。

結合設計模式

設計模式,不同的人有不同的看法。在我看來,一個優秀的程序是要能『看懂』的。即不一定要精通,但要能識別出來,它是一種設計模式。當我們看到了一次又一次的相似設計時,應該猜想到,其背後應該是一種設計模式。如在前端開發框架中的『雙向綁定』,它實際上就是發布-訂閱模式,又或者稱觀察者模式的一種實現。

在筆者看來,模式就是一種高級的語言。當別人一說『工廠模式』,多數人瞬間就明白了,不猶得會發出:原來如此,這一類的感嘆。認識了一些模式後,一遇到一些特定的場景,我們就能一下子套用這種模式。

可只憑閱讀 GoF 的《設計模式》一書,又或者《Head First 設計模式》、《重構與模式》等設計模式書籍,我們所學的知識便是有限的。我們要做的是:

先熟悉書本上的示例代碼,來對不同的設計模式有一個大的了解。

識別日常代碼中的設計模式。

練習這些設計模式,並掌握常見的設計模式。

嘗試在日常的代碼中,套用設計模式。

重構現有的代碼到設計模式。

要對設計模式進行練習,不是一件容易的事。並且很多時候,容易模稜兩可的情況,即適合使用 A 模式,又適合使用 B 模式。這是因為我們是在為設計而設計,因此會儘可能的貼近現有情況。

引入其它領域的思想

不同的領域裡,都有自己領域的優秀思想。如我們熟知的設計模式,便是受建築領域的《建築的永恆之道》中描述的 253個 建築模式的啟發。又如今天流行的精益思想,最早是來自汽車製造業,可它對軟體行來說,有著令人受益匪淺的啟發。好的框架、軟體是會相互學習,如 iPhone 與 Android,都在不斷地借鑒——通知中心,但是又在那之上做一些改進。

又比如,今天的前端框架里,很多思想都是從後端「借鑒」過來的。如 Angular 中採用的依賴注入,便是深受 Java 語言的影響。近一點來說,Redux,框架最初是用在 React 上,但是它已經被推廣到了 React 和 Vue.js 上。

因此,當我們發現一個新的優秀思想產生時,便可以嘗試引入到自己的領域裡。又或者我們所處的領域,正遇到一些難題,答案可能就在別的領域裡。可在這方面的練習,往往都是一些創新性的練習。多數時候,我們的探索可能沒有結果,但是它往往能對自己有更大的啟發。

找到合適的時間練

每天能有半小時、一小時甚至更長時間的穩定練習,比三天打魚兩天晒網的效果要好得多。清理出一些固定的時間,用於為自己騰出時間來提高自己。既然,你都有時間到這篇文章,那麼你應該屬於能騰出時間的人。

如果不能的話,那麼我們也可以嘗試去擠出一些時間,如從上下班去尋找空間。即使是同一公司,不同的人都有不同的上下班時間,所花費在路上的時間也有所不同。有的人,需要在幾環外坐個一個多小時的地鐵,再轉公交才能到公司;有的人,只需要出門左轉,走個十分鐘就到公司了。因為在路上花費的時間不同,也在一定程度上影響了學習、練習等等的時間。

因此,如果可能的話,應該減少花費在上班路上的時間,才能避免繼續陷入這樣一個惡性循環:租不起近的房子,花費大量的時間在路上,沒有時間提升技能。

早上

早上的練習,是一種慢慢進入一天工作狀態的感覺。一旦上班時間到來的時候,就已經進入工作姿態了——對於「資本家」來說,可謂好事一件。早晨剛醒來,總會想不起昨天項目做到哪一步,便更容易反思哪裡做得有問題。

如筆者已經習慣了,每天七點起床、洗漱,隨後寫會代碼,再去上班。有時候,可以有一個半小時的練習時間,有時候會有半個小時,將這些時間浪費在夢裡總是有些可惜。同時,之前為了能成功地上公交,便提前半個小時到公司,寫一些開源軟體的代碼。畢竟,作為一家非產品公司,你無法和別人解釋說,我們做了些什麼、取得了哪些成就。

在很多地方,這是一個很好的策略:錯開高峰期上下班,路上就不容易堵車。所花在路上的時間就縮短了,那麼我們就有時間來練習了。

需要注意的是:練習的時候不要關注時間,而是關注怎麼於提高。關鍵點在於:讓每天進步一點。

中午

吃完飯後,因為米飯血糖指數高的緣故,容易犯困。對於北方的同學來說,因為主食不是米飯,所以這就不算是一個問題了。這個時候,身體會妨礙我們進行一些練習。可如果你的午休時間比較長,那麼也可以做一些練習,再去休息片刻。

碎片時間

對著屏幕寫代碼,時間一久,集中力就會開始渙散,便應該休息會兒。刷刷資訊、朋友圈,又或者收集各種資料,開放我們的視野。接收各種新的知識,來擴大自己的視野,以便於自己了解整個市場的水平。

常見的方式有:

將這些內容存儲到 Evernote、WunderList、OneNote 等各式各樣的雲筆記里,然後定期清理定期清理定期清理。收集只是一種方式——沒有啥用的方式,因此建議先讀完一遍,再去收藏這樣的文章。多數時候,我們會發現自己收藏了很多的內容、買了很多的書,但是卻沒有時間去讀。

晚上

經歷了漫長的加班,回到住的地方,可能就會想休息了。如果白天沒時間練習,晚上也不能抽出時間練習,長期以往,一年的工作經驗就要變成五年來用了。

晚上練習的同時,我們應該注意:在睡覺前 30~60 分鐘停止編碼,否則上床的時候,腦子裡可能還是這些代碼,就容易失眠。萬一靈感一來,那就還要爬起來繼續寫。這個時候,可以閱讀一些相關或者無關的書籍、資料。在閱讀的過程中,儘管我們已經不在思考內容。但是潛意識裡還在思考中,這時就能很容易就會遇到一些靈感

最後,休息的時候,盡情睡覺吧~。

怎樣才能持之以恆下去

在上文里,我們只談論一些方法和技巧,可是它們並沒有什麼用。每個人都知道所謂的『一萬小時理論』,但是真正要堅持下來,並沒有我們想像中的那麼容易。

我們需要從娛樂時間裡抽到一部分,原本舒適的玩遊戲、睡覺、刷微博時間,現在要成為另外一種『痛苦』?可是,既然這些「無聊的事情」我們都能上癮,那麼我們是不是沒有找到合適的路?

設定目標與 SMART 原則

按上文中的分法,練習可以分為:日常固定時間的練習,及針對某一特定主題的練習等多種類型。當我們開始練習某一個具體的技術、框架、模式時,最好能制定一個簡單的練習計劃,如每幾天練習某一內容、多少天內用某一個框架實現什麼功能。

先設計一個小的目標,並且能在短期實現。當發現自己可以輕鬆地堅持下來時,再慢慢的擴大目標,直至我們能做得更好。可是,設定一個練習目標也不是一件簡單的事,它也有很多考量的地方。

畢業的時候,在公司接受了針對於畢業生的培訓,期間學習到了一個用於制定任務、目標的 SMART 原則:

具體的(Specific)。即我們要有一個明確的目標,如在一周內用 Django 寫一個博客系統,而不是用 Django 寫個東西。

可度量的(Measurable)。即衡量是否達成目標,我們只需要能創建、查看、刪除博客,那麼我們就算完成了這樣的任務。它可以用來不斷地突破自己。

可實現性(Attainable)。即這個目標一定是可以實現的,不能實現的目標沒有啥意義。與些同時,練習初期定下的目標不能困難。

相關性(Relevant)。即目標與其他目標的關聯情況,如我們練習 Django 是為了提高 Django 或者後台的技能。如果我們的大目標是提高前端技能,那麼這個目標對於當前的意義並不是太大。

時限(Time-based)。即時間限制,如上面提到的一周內用 Django 寫一個博客系統的期限。

經常能在微信朋友圈看到,朋友的 100 天英語閱讀計劃,這樣的目標就是合理的——可實現的、具體的、有時間限制、可度量的。

如果我們想每天固定時間進行練習,那麼我們應該做一個短暫的嘗試,如七天,再慢慢的不斷擴大時間目標,二十一天、兩個月,隨後再擴大到一個更大的目標。

堅持與激勵自己

我們可以使用 GitHub 上的 Contributions 來激勵自己,每一天的痕迹都很明顯,甚至於可以拉攏一些小夥伴,與我們一起參加類似的活動。GitHub 本身具有社交屬性,可以讓我們看到別人做了什麼,做了多久。

由於 GitHub 的伺服器在國外,訪問的時候可能會受限於網路。國內的開源中國的碼雲和 Coding 也有類似的活躍度,建議訪問 GitHub 有問題的讀者,可以使用這些服務。

上文中提到的朋友圈 100 天英語閱讀計劃,也是相似的,它可以讓別人監督你是否完成——前提是,有人一起和你做相同的事,因此可以找個人和你一起練習,相互監督

剛開始練習的時候,練習的內容基本上很充實。時間一長,可能就會陷入一些瓶頸:要麼找不到合適的練習內容,要麼覺得練習過於乏味。因此這個時候,可以切換不同類型的練習項目——如,做一些自己覺得有意思的小項目練習。又或者,當我們完成一個目標時,給自己一些獎勵,以此來鼓舞自己。

總結

練習完之後,還有一種很好的提高方式,就是輸出、總結。整理自己練習過程中學到的知識,將之與我們需要的技能做對比,我們就會發現:在哪些地方還需要提高。我們就能製作出下一次練習的目標,不斷地反覆,以些來提高自己。

經常做總結,除了看到自己提高的地方,還能讓閱讀文章的人,鼓勵你更好的前進。

那麼,現在讓我們創建一個項目,更新一次 README,開始練習吧!

喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 推酷 的精彩文章:

TAG:推酷 |

您可能感興趣

盤點中國休假制度演進史,上一次中國人想放長假,等了整整45年
畢玄:阿里十年,從分散式到雲時代的架構演進之路
史睿:唐代前期銓選制度的演進
三大運營商加速向5G演進 5G手機也已在路上
儒家:從一種職業到一個學派的升華和演進!
平成30年演進史,再追問何謂日本人已失去意義
整部篆刻史,是工、寫交替演進的過程
今日頭條架構演進之路,高壓下的架構演進專題
張榮強:「小」「大」之間——戰國至西晉課役身分的演進
西漢前中後期政治的演進
視頻技術向超高清演進 4K真的來了嗎
七牛雲許式偉:二十年的演進,互聯網的下個時代是什麼?
浮世繪的演進:從漢代中國到現代日本
娛樂圈一個將「金領」演進股子的男明星,氣場強大到爆
第24屆LG杯預選最新小組四強演進圖
直播+信息流:從形態到生態的快速演進
IU為滿足粉絲期待決定驚喜發布新曲 出道十周年巡演進行時
世界盃三四名決賽前瞻:青春風暴再演進球大戰?
百年演進史:不同年代流行卷度大不同捲髮風格
乖乖頭四月上演進史