大數據的熱門使得很多人都想往這個方向發展,做一些像數據挖掘,數據分析之類的工作。但是該從何開始呢?要怎樣才能快速學到一些有用的知識,技能呢?我覺得有三個切入點,依照個人特點可以自行選擇順序切入。
1機器學習/數據挖掘
數據挖掘主要依賴于大部分機器學習算法,近些年由于深度學習算法的開發以及無人駕駛汽車等應用的實習使得機器學習變得熱門,但是機器學習是個很深的學科,專門講這門課程的學校也不多,對于碩士生,如果學過最優化等,學起來比較容易,但本科生要學好,就要很扎實的概率論與數理統計的基礎。之前我看了很多這發面的書,覺得很痛苦,但我越來越覺得,這個東西有那么重要么?我認為,如果不是博士,沒必要把機器學習/深度學習學的很深。就像算法是很重要,但程序員沒必要都像ACM隊員那樣練習算法。我們學習機器學習是為了使用他,而且基本的那幾個算法已經開發的差不多了,我們最需要掌握的就是怎樣使用它們,而且就那么幾個算法,只有每個都用過幾次就掌握了,所以我非常推薦邊學邊應用到實際,根據自己的興趣,找點數據,看看能不能挖掘出什么有用的信息,這樣也有成就感。這里我推薦一本書:《機器學習:實用案例解析》。同時,建議學習一門新的語言:R語言。如果不想學,那么用C,python也都是可以的。(超大規模數據是不能用R的)最后,我覺得這部分并不一定先開始學,也不用每一個算法都掌握十分熟悉,先熟練掌握一到兩個。
2Hadoop實戰
hadoop基本是大數據的代名詞了,因為他提供了一個平臺,使得我們可以去處理超大的數據,至于怎么處理,處理后能得到什么,它不管。hadoop雖然只是個軟件,但是有很復雜的原理,我們要知道他是怎樣把大數據分不到好幾個電腦上,知道MapReduce的原理。然后,就是怎樣運作了。強烈建議大家自己安裝好hadoop(要配置集群,自己剪虛擬機吧),然后在上面編點小程序練手。 Hadoop還有一個特點就是他有很多的附加服務,每個都有各自的功能,非常復雜,但是例如Hive,HBase等是非常重要的,也需要知道他們的工作原理,及使用方法。由于這部分大多是實戰,學起來也不那么枯燥,所以我覺得這部分可以多用的點時間,把原理和方法都弄熟練,同時還要熟悉Linux環境,語言當然是JAVA。
3數據庫
大數據畢竟也是數據,是離不開數據庫的,很多人沒有有數據庫的基礎,那么這方面也是必不可少的,各種數據庫的特點都要有所了解,SQL的語句也要能熟練使用,即便大數據不熱門了,數據庫技術也會很重要的。
我覺得把上面3點全都做到的話,那么你肯定是一個全面的大數據人才,隨便就能找個好工作了。但是我覺得數據挖掘這個東西,方法技能是一方面,還有一方面是意識層次的,也就是你對行業、商業的嗅覺有多大,你挖掘出來信息后能不能再經過自己的思考,變成對公司甚至人類有直接好處的觀點。所以建議大家平時多關注互聯網及其他行業的發展趨勢,比較全面型的人才才是真的人才,大數據人才也不是一個普通程序員就能隨便當的。