這麼一個“五髒俱全”的繫統需要維護在所難免,總有一些情況會導致數據分析模塊宕機,所以,代碼一定要寫得盡量規範,注釋要盡量清晰,否則在維護時會有一種再造繫統的感覺。關於規範請參看Google's R Style Guide。
我不是學數學的,也不是學計算機的,研究生的專業是植物學,而且方向是植物分類,可以說很難和數據挖掘、市場研究等領域扯上關繫。能扯上關繫的也就是我的舍友是做生物信息學研究的。
說
一句丟人的話,在讀本科時上的SPSS課我都不知道在講什麼。那時沒考過計算機等級考試,原因是我每分鐘打漢字的速度都不過關,講這麼多,隻是為了告訴讀者,我的基礎並不扎實。
需要說明的是,我的英語還不錯,在大一和大二分別通過了英語四、六級考試(而其他科目則學得比較一般,因為我每學期隻有一兩個主要學習目標),在大四我讀了很多英文文獻。因為在讀研究生期間需要查閱大量文獻,我需要給這些文章建立一個數據庫,於是年少無知的我就選擇了Access。選擇Access的原因並不是我比較熟悉它,而是我的老師用它,我至今也不會太多的操作。這應該算是我開始接觸數據分析了。
使用高級語言時,記不住函數不要緊,但是你要有很強的搜索能力。
之所以講這一段經歷,不是為了說明我起步晚,而是為了說明建立Access文獻數據庫鍛煉了我的英文搜索能力。我一踫到問題,就在Google裡搜索,很快就能找到答案。於是Google幾乎成了我的眼睛,真正做到了用Google搜索、發郵件、社交、閱讀和寫作。在公司裡曾經傳說,如果是連我都搜不到的內容,那麼別人更不可能搜到。有些年輕人就怕英文,我並不是崇洋媚外,客觀地想一想,現在的很多知識都是從歐美起源的,如果你連這門世界語言都不掌握,那麼你獲得的資料永遠都是二手資料。另外,無論你是找函數還是找包、模塊,抑或是為問題尋找答案,使用Google進行英文搜索會為你很多時間。掌握這門語言並不需要你聽、說、讀、寫樣樣精通,而是將其作為一種工具,應用起來比較方便就可以了。
在搜索文獻的過程中,我喜歡上了《經濟學人》的Graphic Details欄目,發現其繪制的圖表非常漂亮、專業,於是我就開始學習Excel,盡自己所能將Excel圖表做得更漂亮、更專業,這些經歷為我日後做數據可視化打下了堅實的基礎:我知道了商務色彩搭配及圖表要簡潔、易讀等原則,我知道怎麼使自己的圖表特色鮮明。後來看了大前研一先生的著作,了解了專業精神,我曾經寫下這樣一句話,以勉勵自己:
所謂專業,即每一個細節都經得起推敲。
這個時候已經到研二下半學期了,我需要為自己未來的工作做打算了:是步入園林行業還是就此轉行?必須做一個決斷。我發現自己真的對植物分類不感興趣,而我做家教的學生的媽媽是星空傳媒的一個經理,平時待我很好,她說畢業可以介紹我去做市場研究。我了解了一下市場研究,發現其中涉及一些數據分析的內容(現在看起來很簡單),於是,我從此決定踏上數據分析這條“不歸路”。
為了快速上手、熟悉統計學知識,我並沒有馬上深入地學習R語言,而是像以往一樣懶懶散散地學習(後悔當時沒有實戰學習)。我通過搜索發現,市場研究的崗位大多將熟練使用SPSS作為硬性要求,偶爾也會要求熟悉R語言,但SPSS對我來說更容易上手,於是就開始學習SPSS。SPSS幫助我鞏固了統計學知識,當學習完簡單的統計學知識後,我發現SPSS不夠靈活,很多功能不夠用,做出的圖表很難看(這對於我來說是無法忍受的),因此,網絡上有一些人鄙視SPSS,但很推崇R語言。於是我決定要深入地學習R語言。我先將SPSS的功能在R中做了一遍,有了一些自己的理解後,我開始在自己的論文裡做一些數據分析的內容。
現在想來,如果我直接在實戰中學習可能會更多的時間。
實戰更能鍛煉技能水平。
研二快結束了,開始找工作了。我找工作的目的很明確,如果工作不是做數據分析、數據研究的,那麼我寧願放棄這個工作的機會。非數據研究的崗位我也不去面試,這樣又省下了大量的時間學習。
在工作中學習
2013年畢業後,我去了一家醫藥市場研究公司,當時的工作並不太忙,我有大量的時間學習。但這時也暴露了我的弱點,公司的數據並不是很規整(raw data)的,往往需要標準化等,而且數據規模也不再是之前練習時那麼小,在面對這些髒數據、大一點的數據時,我的數據清洗水平顯得捉襟見肘。周圍的人都是Excel高手,如果跟著他們學,估計也能成為高手,但是我一定要在R中做數據清洗整理,反正公司的工作不是很多,我就一點點地學習和積累,這樣我的數據處理能力就逐漸扎實起來了。其間我用兩天讀完了《異類》這本書,感觸很深,閱讀經歷已經寫成一篇文章在我們的公眾號裡分享了。
任何一個工具在剛開始學習時都會覺得它很糟糕,其實這並不是工具的問題,而是自己的知識體繫跟不上節奏,或者是它的很多方法與自己原有的認知相反,這時不要急於否定它,而是要深入地學習它。知識體繫是一個積累過程,為自己準備一萬個小時計劃吧。
我們公司當時在做BI(商業智能),於是我接觸了市面上常見的BI工具,包括Tableau、QV等,我熟悉它們的優、劣勢,也熟悉它們的數據可視化效果。因為需要將R語言的頁面融入BI中,所以我熟悉了shiny包,做了一些頁面,但我漸漸看到R語言在做這些通用語言的工作時所暴露的缺點,於是開始接觸Python。
後來,我們的合作公司的總經理聽說我比較熟悉R語言,就向我請教,我們一起討論了R語言和數據挖掘。得知他們在做文本挖掘,於是在我閑暇時間開始學習中文文本挖掘的內容。沒有成型的數據和書,我就看帖子,去一個個地實現,然後積累經驗,這時我對R的操作算得上非常熟練了,從實現到速度優化(並行計算等)等也已經非常熟練,積累的代碼也非常多了。
後來,那個經理找我做醫院處方數據挖掘工作,之後,他請我去負責法院文本數據挖掘,我沒去,但成了他們的外援,仍然沒收過錢,他們搭建的一臺服務器也幫助我了解了不少Linux的知識。
剛開始,鍛煉自己的機會遠遠比錢重要,反正自己閑著也是閑著,但是這種情況隻適用於剛開始。
後來,我們公司推出了微信公眾號平臺,我開始給公司的公眾號寫文章。其間我為公司的公眾號寫了多篇關於綜合排名的文章,閱讀量達到4萬多人次,當時公眾號的粉絲纔2 000人左右。後來我又制作了評價醫院市場趨勢的綜合指標體繫,現在公司也一直在沿用這套指標,這些工作中的小點子都是我在公交車上想出來的。
除要把工作當成一種謀生手段外,還必須有極大的興趣,要麼不做,要麼做好。
另外,我在公交車上讀完了Data Mining with R learning by case studies、Machine Learning for Hackers、R Graphics Cookbook等書籍,之所以提這三本書,是因為我不止讀過一遍,這三本書很有特色,本幫助我學習了各種算法,第二本幫助我接觸了實際應用中的知識,第三本幫我熟練了ggplot的函數素結構。我開始學會利用零散的時間,堅持積累,也開始學習高度自律。
古之成大事者,不唯有超世之纔,亦必有堅韌不撥之志。
——蘇軾
其實,我一直幻想著有一個自己想寫什麼就寫什麼的平臺,於是,我和小伙伴們開通了微信公眾號,直到現在,我們更注重文章的可讀性、趣味性,而不僅僅是技術,但是每一篇文章都可以作為一個小項目讓希望學習數據分析的讀者能鍛煉一下自己的技能。
經常有讀者問學數據分析就一定要學編程嗎?以及為什麼要看英文資料?針對這兩個問題,我寫下了這樣一段對話,希望你能在對話中找到答案。
為什麼學習數據分析?
賺錢!
什麼樣的人容易賺錢?
技能比別人高的!
英語是不是一般人的難關?是不是大家都想學習傻瓜式操作軟件?
是!
那麼如果大家都這麼想,你應該怎麼做?
很明顯,你要做其他人不願意做的事情,纔能賺到別人不能賺的錢!
作為數據分析師,一定要將自己和技術區分開,分析數據、挖掘數據本質上是探尋數據背後的人心,挖掘人們的欲望、需求、態度等,所以數據分析師還要盡量拓寬自己的視野和知識結構,盡自己所能博覽群書。
我的經歷大體如此,中間會有各種迷茫、各種蒼白無力,但是如果你缺少什麼,就去搜集資料,做出判斷,努力去爭取,這一點總不會錯,千萬不要一味地否定你不了解的東西,這也是我對待未知領域的態度。
作為一名技術人員,要讓自己的知識時刻在進步!這是一種宿命。