曬曬我的成長計劃——四步曲
這次我決定不耍流氓的寫一篇雞湯,這篇是以過程到結果的文章——以前老是寫結果,總感覺不好~~。
Blabla,群聊的時候,看到一個網站有一個Most active GitHub users的排名,發現我在裡面的位置是20——在我前面還有一個台灣的同學。雖然我現在已經超過他了,但是這個榜單沒有更新。

而實際上成為最活躍的中國大陸用戶,只是有意圖的練習的結果。 。 。
在我找到大四找到工作後,默默製作了一個計劃。這個計劃大概分為三步,而每一步大概會花一年時間去實踐:
- 用更好的方法來實現功能
- Better Code & Architecture
- 運營(Growth Hacker)
所以,其實這也算這篇文章的三個小節。在你跟著這篇文章走之前,你需要具備一個根本的能力:能做到你想做的。
能做到你想做的: Tasking與學習能力
雖然這看上去是一件很難的事,但是也不是一件很難的事。這也不依賴於你是否對某一個技術棧的理解,這只實際上只是學習能力的一種體現。

在扯這些廢話之前,先讓我們來看看我們是如何實現一個功能、應用的。這也是在Growth裡提到的Tasking:
- 有一個明確的實現目標。
- 評估目標並將其拆解成任務(TODO)。
- 規劃任務的步驟(TODO)
- 學習相關技能
- 執行Task,遇到難題就跳到第二步。
以本文的寫作為例,細分上面的過程就是:
- 我有了一個中心思想——在某種意義上來說就是標題。
- 依據中心思考我將這篇文章分成了四小節。
- 然後我開始寫四小節的內容。
- 直到完成。
而如果將其劃分到一個編程任務,那麼也是一樣的:
- 我們想到做一個xxx的idea。
- 為了這個idea我們需要分成幾步,或者幾層設計。
- 對於每一步,我們應該做點什麼
- 我們需要學習怎樣的技能
- 集成每一步的代碼,就有了我們的系統。
所以,實際上這並不是考驗你技術能力的點,而是考驗你如何劃分任務和學習能力的點。在我不斷地實現一個個系統的時候,最後我才意識到了這一點——學習能力和Tasking才是最重要的。換句話說,你現在學會什麼並不重要,重要的是你以後有沒有學習的能力。
有了一直想著過安逸的生活,所以就會安樂的死去。不過反正人生在世,自己開心就行,不要管別人怎麼說。隨後,我發現大部分我想到的都可以實現。
那麼問題來了:
- 用鉛筆寫字也是寫,用鋼筆寫字也是寫,用電腦打字也是寫——到底要用哪個工具來寫。
- 用楷體來顯示也是顯示,用宋體顯示也是顯示——到底要怎樣的實現。
這實際上就是:用更好的方法來實現功能。
用更好的方法來實現功能
對於這一步來說,有太多的東西值得去探索:
- 更好的架構
- 更好的工具
- 更好的語言
- 。 。 。
對於語言這一點上來說,Python和Ruby是兩個不同的極端,不過看上Ruby是繼承Perl的思想的基礎上,就不多說了。 Python,一個問題只有一個方法;Ruby,一個問題有幾個方法。因而在這兩個語言來,想要快感就用Ruby,還有近年來流行的Scala。想要便捷就是Python,不容易出現別的問題。
而這些只是我得到的結論,每個人都會得到不同聽結論的。因而,探索是一件很有意思的事~~,如圖:

所以實際上,這一步是去探索一個更廣闊的天空。我們需要知道不同的語言和技術棧的一些優勢,了解並知道如何去應用即可。
如,以前我用的是Django的RESTful方案Tastypie管理來解決問題。後來,又發現了Django REST Framework,又用它實現了原來的邏輯。大四時,我發現PHP語言中的Laravel在RESTful這件事情上,似乎很有表現力,並且更容易“部署”——LNMP。接著實習時,發現Java在部署上更不錯,它只需要一個Java包。而這個過程,只是出自於部署方面來考慮問題的。
即使現在我是一個使用Node.js的人,我還是覺得Java的打包就是優勢。
在探索的過程中,我們就知道挖掘技術哪家強?
Better Code & Architecture
在實際編程的過程中,我們就會遇到很多代碼問題。在這時,我們儘管有好的架構,然而並不能從根本上解決問題。只能保證從藍圖上看是對的,而不能導致質量問題。

代碼的腐爛都是源自於平時的工作習慣問題,而在很多時候是需求導致的。這些看上去就是噩夢——加班,沒有時間學習,效率低。沒有時間學習,效率低,加班。
而對於代碼質量來說,也是如此的一種循環:
而在這時可以學的東西可多了,如Bad Smell,重構,設計模式,編寫測試等等。
最後,我只得到了一個短句:
> 重構到設計模式
好的代碼是重構出來的。
再往深層次之上就是架構,而架構往往是一種不容易得到的。儘管我看了一系列的書:
- 《領域驅動設計》
- 《企業應用架構模式》
- 《領域特定語言》
- 《恰如其份的軟件架構》
- 《面向模式的軟件架構》
- 。 。 。
最後,我還是依據一本書的書名,才領悟了一本書的書名《浮現式設計》。也是同樣的話:
> 好的架構是演進出來的。
而這些都依賴於我們的實踐,聽信別人說的話,並不能讓我們學會什麼。只有自己做了,才知道什麼是好,什麼是不好。
Growth Hacking
當我們有了一個好的Idea,一個好的架構以及一份良好的代碼,並且我們還能將其執行下去。那麼,我們還需要什麼?

這也是我現在正在嘗試的領域,也是過去我想做的,但是卻找不到一個好的方向。後來,想了想就有了Growth這個APP。畢竟從一個領域到一個新的領域,最好是通過現有的領域作為過渡。
自媒體正在最近幾年內崛起,同時由於聚合網站的存在,信息在不斷地爆炸。一個好的作品、文章要傳播起來已經越來越越難了。
在現有的領域裡,知乎、微博、公眾號已經開始在壟斷人們的碎片時間。一個東西可能在火了幾天之後,你就很難得到他的信息了。
所以在適當的時候去推銷,在適當的時候持續下去。
小結
在那之前你需要明白的一點是,你要成為一個怎樣的人?是行業的專家?還是領域的專家?等等!

我想的是一直可以做一些有趣的事,單純深入一個垂直領域對我來說太枯燥了。對於我來說,我只會在造輪子的時候去研究一個輪子。而不是深入研究某個輪子,我會得到造某種輪子的方法。我只會在創造一些有意思的東西的時候,才會深入某個領域去學習。而不是為了深入某個領域,再去學習這個領域的知識。 。
每個人都可以用不同的方式成長,知道自己的喜歡的然後去計劃!
你的計劃呢?
歡迎關注我的微信公眾號:Phodal