半路出家的數據分析師的詳細準備工作
來自專欄數據分析師成長之路6 人贊了文章
前言
簡單交代下我自己:本科學習儀器科學,在校階段做過簡單的嵌入式開發(C語言),但是並沒有系統學過數據結構和演算法。畢業後1年半ERP實施+2年傳統行業項目經理,對於數據分析、數據挖掘完全是個零基礎的小白。我是一個深度Dota2玩家,當人工智慧在TI7上橫掃Dendi之後,莫名的感覺到:可能人工智慧真的是未來的趨勢了。(當我寫這篇文章的時候人類玩家最後的遮羞布5V5可能也要不保了,誰知道TI8上會不會上演人工智慧掀翻TI8冠軍隊伍的戲碼https://zhuanlan.zhihu.com/p/40106813)
其實剛開始學習數據分析並不是真的要投身這個領域以此來找工作,剛開始只是因為想要多了解了解這項前沿的技術,不至於太OUT而跟不上時代的腳步。但是隨著學習的深入,我發現我可能是真的喜歡這個領域,我能夠持續看兩三個小時學習視頻而不感覺到累;我能夠學習了兩三個月之後沒有任何枯燥感;甚至在晚上回家之後在學習和DOTA之間選擇了學習...基於以上我決定開始系統的學習數據分析/數據挖掘,並且想要在時機成熟後嘗試在這個領域裡找一份工作。
我不是一個大神,也不是一位「過來人「,無法給各位提供最科學的學習方法,也無法給各位提供最有效的求職經驗,我是一個局中人,可以和大家分享在學習中發現的優質資源和好的文章,可以和大家交流在過程中遇到的問題和困惑。寫這篇文章的目的一是系統的整理一下自己的思路,記錄成文字告訴未來的自己不忘初心;第二也是分享給同在路上的小夥伴,希望自己的思路可以拋磚引玉,可以讓各位對自己的轉行之路有更多的思考。
一、數據分析完整流程
想要轉行去做一件事,當然要先了解自己要做的內容是什麼,從而進一步了解自己需要補充哪些內容。一個完整的數據分析工作基本都會經歷以下五個階段:
1.提出問題:數據分析的目標是來解決工作和生活中的問題,能否把問題提好、提出的問題是否清晰、是否可以量化是整個分析流程的重中之重。
2.獲取並理解數據:根據研究的問題採集數據,從EXCEL或資料庫中導入數據,或者是利用爬蟲技術從網上爬取數據。觀察並理解數據的各個欄位並獲取的數據進行基礎分析。
3.數據清洗:數據清洗一般遵循以下六個步驟:選擇子集、列名重命名、缺失數據處理、數據類型轉換、數據排列、異常值處理,只有將數據清洗完後方可進行數據分析。
4.構建模型:對清洗後數據進行建模分析。根據數據的特點選取合適的演算法構建模型,並用大量數據來訓練模型,最終用訓練好的模型進行預測和分析。
5.數據可視化:利用數據可視化工具將預測和分析的結果進行展示,並撰寫報告。
二、求職企業及崗位要求和應對策略
我是一個目標導向型的人,當知道做一件事情的目標是什麼之後往往會更有效率。由於之前並沒有在人工智慧和數據分析領域做過全職工作,轉行到任何一個人工智慧相關的行業都是一個小白,但是即便是小白也會有一些你更熟悉的領域適合自己去入門。我針對自己以往的學習、工作經歷以及興趣愛好,對我未來轉型數據分析後入門的行業和領域進行了一個簡單的分析。
我本人是一個骨灰級遊戲玩家,同時也是一個深度DOTA粉,雖然沒有在互聯網企業或是遊戲行業工作過,但是對各項遊戲數據的理解和遊戲數據分析的意義還是有自己的看法,而且我從始至終都認為興趣是最好的老師,我把遊戲行業的數據分析作為我的第一個目標行業。
畢業以後我做了一年半的ERP實施顧問的工作,對資料庫和企業信息系統的相關工作比較熟悉;第二份工作在傳統企業中作為項目經理,有一項內容是對公司的專利進行管理,並且也組織申請過項目知識產權。所以結合我的工作經歷,對企業專利資料庫管理及專利數據挖掘的工作也是我的一個目標行業。
我本科學習的是測控技術與儀器,在學生階段獲得過大學生電子設計競賽的獎項,比賽中的項目是基於攝像頭圖像識別的激光筆打靶;而且畢業設計的項目也是圖像識別相關的技術課題。所以在安防攝像頭、智能攝像頭領域有一定的基礎,我也把這個行業的數據分析師作為我的另一個目標行業。
定位好自己的目標行業之後,在網路上把你目標行業相關的崗位需求和任職資格進行搜索,並將這些入門崗位所需的技能進行整理,構建自己的技能圖譜和學習計劃。
三、數據分析師完整技能圖譜及學習計劃
有了學習的想法和目標以後,一個清晰且合理的學習計劃顯得格外重要了,我根據求職崗位的任職資格和今後發展方向的計劃,將自己應當掌握的技能列成清單並分階段的逐步學習。為了記錄自己的學習過程,作為一個遊戲愛好者我把自己要學習的知識點整理歸納做成了技能樹,每完成一個知識點的學習就點亮一項技能,當技能樹全部點滿的時候就可以披荊斬棘、所向無敵了。(對不起,中二病又犯了)
但是我們不能等到所有技能全部點亮之後才開始找工作,學習是永無止境的,當你把你現在列出的技能全部學會之後可能新的技術又會出現,又是一大波從沒有接觸過的知識點,這樣就永遠在工作中使用你學到的知識。我的選擇是把自己列出的知識點分階段進行學習,把任職資格所需的相關技能放在前面學習,在基礎技能學習完畢後開始嘗試找相關工作,讓學到的知識能夠學以致用並在工作中慢慢豐富你的技能樹。
下面是我的數據分析技能樹:
我的學習策略是把主要精力放在編程技能的學習上,包括Linux、Python、資料庫以及數據可視化等;機器學習部分做到熟悉常見的演算法模型並且可以調包使用即可;數學知識部分在學校應該都學習過,但是估計絕大多數應該都留給數學老師了,但是這部分我目前不想系統的進行學校,想要在學習Python數據分析和機器學習演算法過程中遇到原理問題了再去補充學習(如果學習過程中發現系統學習的效果更好會抽出時間來補充這部分知識);行業相關知識是在找工作之前必須補充的內容,因為是半路出家所以一定是通過社會招聘的渠道,即使沒有相關的行業經驗也應當對行業知識有所了解;大數據技術這部分我打算在入職數據分析工作後再去補充。
我的學習計劃分為五個階段:
第一階段:Linux及Python編程基礎學習
內容包括:Linux常用命令,Python的基礎語法,面向對象編程等。
第二階段:資料庫及Python編程進階學習
內容包括:關係型資料庫學習(MySQL),非關係型資料庫學習(MongoDB),Python的多進程與多線程,網路編程,網路爬蟲技術等。
第三階段:Python數據分析及基礎機器學習演算法
內容包括:基於Python的數據分析(Numpy, Pandas, Matplotlib等),常見機器學習演算法等。
第四階段:求職前的準備學習
內容包括:數據可視化工具,數據結構與演算法學習(刷LeetCode),目標行業知識學習
(開始找工作)
第五階段:知識補充學習
內容包括:大數據分散式存儲和計算技術,其他新興技術等
四、項目經驗準備
對於半路出家的我將來在找工作時最為頭疼的估計就是項目經驗了,雖然項目經歷中可以寫的很滿但是沒有一項是和數據分析/數據挖掘相關,所以說在學習的過程中提前準備一些「項目經驗」我認為是非常必要的。這樣既可以利用小項目來鞏固自己學習過程中掌握的知識,又可以在未來找工作的過程中讓簡歷顯得不那麼「外行」。對於我本人來說當然還是更願意做一些遊戲相關的小項目,既不會枯燥乏味也和自己未來的求職方向有一定的相關性。
第一階段學習完成後準備開發一個2048小遊戲,這個網路上相關教程比較多,可以鞏固自己的Python基礎編程知識;第二階段學習完成後準備學習下steam社區dota2的api介面,通過介面來獲取dota2遊戲數據,並通過資料庫技術將這些遊戲數據進行存儲;第三階段學習完成後想對第二階段獲得的遊戲數據進行分析和挖掘,完成自己的一個數據分析小項目(不過目前做什麼樣的分析還沒有考慮好)。
每一個小項目我也希望能夠撰寫成文章,畢竟把內容/數據展示出來也是數據分析師必備的一項技能嘛。
這篇文章的主要內容就是這些,希望能時時刻刻提醒自己不忘初心,也但願自己的一些思考可以給小夥伴們帶來一些新的發現。最後我會列出幾個在我學習準備過程中讀到的比較好的文章,供大家參考。
一個脫產學習的小夥伴分享的文章: https://zhuanlan.zhihu.com/p/32454374
一個知乎答主Pro-am的專欄以及他開設的Live:https://zhuanlan.zhihu.com/dteratech
推薦閱讀:
※人生苦短,我用python(基礎篇)
※雨沐田:Excel數據分析-直方圖是神馬東東?
※根據四萬場比賽結果,我給今年世界盃每場比賽計算了勝率,冠軍竟然是…
※機器學習中的各種相似性、距離度量
※如何利用槓桿思維,撬動這塊產品市場兩不管地帶?| 公開課筆記