小白?轉型?畢業生?外行學習快速入行大資料開發指南
這篇文章中,本文將針對三種不同的、想要進入資料科學領域的人群,給出自己的經驗,幫助他們迅速有效入行。
雖然沒有適合每個人的萬能解決方案,但這三類建議值得想轉行的你一看。
第1類:新手上路
很多初學者,對大資料的概念都是模糊不清的,大資料是什麼,能做什麼,學的時候,該按照什麼線路去學習,學完往哪方面發展,想深入瞭解,想學習的同學歡迎加入大資料學習qq群:199427210,有大量乾貨(零基礎以及進階的經典實戰)分享給大家,並且有清華大學畢業的資深大資料講師給大家免費授課,給大家分享目前國內最完整的大資料高階實戰實用學習流程體系
如果你剛剛瞭解並且嚮往大資料行業,請記住這一點:這個領域發展很快,我在這裡給出的建議只能讓你從入門開始掌握。能滿足2018年招聘崗位要求的基本需求,在2019可能就不滿足,而今天的大資料開發工程師招聘標準與一兩年後的標準之間的差異可能更大。
如果你打算在大資料開發行業發展事業,就必須保持一顆堅持不斷並且熱愛的心不斷學習,你沒有程式設計經驗,那麼這裡有一些建議:
- 首先要保持開放的心態。如果你是一個新手,那麼你實際上並不知道什麼是大資料,所以它完全有可能不是你想要的工作領域。如果僅因你自認為大資料很酷,然後就一頭扎進去,這並不是冒險的好理由。請確保充分了解這個行業裡於你合適與不合適的地方,比如資料整理,以及構建資料生產流水線,而這些工作佔了大資料開發工程師日常工作的大部分時間。
- 如果你決定要從事大資料領域的工作,那太好了!你首先要做的是學習java或者python。儘快在網路上獲取一些基礎的學習資料。當熟悉java基礎語法與基本用法後,請繼續學習一些資料庫(mysql),並選學一些大資料領域的網路公開課作為了解。
- 如果你是完全從零開始的,一開始就以高階的資料科學職位為目標可能不太好,選擇一些入門級的職位比較好,比如大資料開發初級或資料分析職業的需求量很大,並且市場需求也大。這些崗位的人員通常會接觸到一些簡單的通用專案,一旦你積累了相關經驗,就為今後的勝任更高階的大資料科學家相關職位奠定了基礎。
如何包裝個人品牌:如果你已經準備好申請工作,你可能會驚訝地發現個人品牌在這個行業中非常重要。由於你沒有任何專業經驗,或者沒有電腦科學專業的研究生學位,你也許會擔心個人亮點不足。但實際上這可能是最大的優勢所在:如自學成才的大資料研發/資料科學家,這些將成為公司可以利用的快速學習和努力工作的優點。但問題是,你揹負著去實現那個形象的重擔:這是一座陡峭的山需要你去攀登,但是回報肯定是值得的。
第2類:軟體工程師
在我遇到的專業大資料科學家中約有80%是軟體工程師,一方面,他們有從編寫程式到形成產品的工作經驗,是開發團隊中難得的經驗人才。另一方面,對於全棧開發人員的需求很多,使得公司比較願意朝著全棧工程師方向培養軟體工程師,即使他們的錄用通知上寫的職位是“資料科學”。所以你要避免被當作軟體工程師而不是資料科學家。
其他一些建議:
- 首先可以先往更注重後端/資料庫的方向上靠。把深化對資料生成線流水線的認識作為良好的開端,可以幫助你建立關鍵的資料處理技能;當然也可以幫你重塑自己,把自己塑造成一個經驗豐富的資料管理者。
- 機器學習工程可能是更容易過渡到資料科學領域的,因為它和該領域的研究內容最接近。你可以先著手部署模型或將它們整合到現有應用程式,因為這可以充分利用你的現有技能,這是邁出第一步的好方法,反正以後你總是可以投入更多精力到模型開發中的。
- 為了讓招聘人印象深刻,你很可能需要建立機器學習或資料科學專案。那麼利用你的軟體工程技能,把這些專案整合到可以向招聘人員和技術主管展示的應用程式中。這會特別有效,因為它很直觀,並體現了你作為一個全棧資料科學家的潛力。
- 要記住的是:在過渡期,你的薪資極大可能會變少。即使是高階軟體工程師換到資料科學領域時,通常也是要先過渡到初級職位的,但令人驚訝的是,他們中的很多人在做決定時並沒有考慮這個因素,然而拿到的薪資少了,卻又失望。
如何包裝個人品牌:一個最簡單的方法就是充分利用你的軟體開發經驗。作為初級職員,已經知道如何編寫乾淨、文件齊全的程式碼,以及如何與他人協作,這是大多數職位申請者不具備的。如果要真正做到善於寫“乾淨的產品程式碼”,你還需要儘可能多的去學習資料科學領域中類似的好案例。
第3類:新CS、數學或物理學畢業生
如果你是應屆理科本科,碩士或博士畢業生,那麼你統計學和數學基礎可能很好。但你可能從來沒有申請過真正的工作職位,也不知道如何準備面試。而且就算你在讀期間一直有編碼,但很可能無法編寫乾淨、組織良好的程式碼。
所以要記住以下幾點:
- 你在讀期間所學的R是不夠的。如果你是一名物理學家,並且賭定要用MATLAB或Mathematica的技能找到工作,那這可能不太會如願;所以學習Python吧。
- 你可能需要儘快學習這些你沒接觸過的東西:協作版本控制(學習如何用GitHub與其他人一起工作)、容器化(學習如何使用Docker)和開發(學習如何用AWS或類似的服務在雲上部署模型)。另外,SQL也是必須的。
- 學習Python中的測試驅動開發,如何使用文件字串,如何對程式碼進行模組化,以及如何使用Jupyter筆記本(如果還不會的話)。
- 如果你的領域特別注重數學,那麼深度學習可能是一個很好的探索方向。但你可能會發現,從更傳統的“scikit-learn”型別的資料科學開始起步,再過渡到深度學習可能更容易。最重要的是要入行,並儘快開始程式設計。
如何包裝個人品牌::特別是如果你學的是數學或物理專業,那麼最好的策略是要呈現出自己是具有深厚理論知識的人。要做到這一點,你需要能夠自信地解釋各種模型是如何工作的,最好要熟悉文獻中最新的熱點(特別是如果你的目標是深度學習的話)。
警告:當然我所提供的建議並不能涵蓋所有職業。對於軟體工程師而言,他們確實比其他人走的遠一些,一些有數學基礎的初學者可能是最適合的深度學習的研究者。但是以上這些建議能為你的技能精進提供一個好的起點。
最後,無論您是軟體工程師、應屆畢業生,還是完全初學者,都要問自己一個關鍵問題:在上述建議中,什麼樣的職業軌跡最接近你。如果你是想成功入門資料分析師或資料視覺化專家,那麼這將是協助你走上正確的職業軌