作者awarmroom (Insomniac Doze)
看板Soft_Job
標題Re: [請益] 算是big data的一些相關請益&c++
時間Mon Feb 23 06:58:48 2015
※ 引述《joeywayi (拉拉拉吃屎啦)》之銘言:
: 餓死抬頭
: 先跟大家拜個年
: 祝大家羊眉吐氣 羊羊得意
: 那先介紹一下自己的背景
: 學過一學期的c++自己本身學完後也頗感興趣於是乎自己開始碰python跟java(才剛碰XDD
: 自己的c++只有學到struct跟class還有一點點的I/O
: 那由於最近看了蠻多資料的
: 想說想結合本科系(物理)跟大數據來做
: 因為發現蠻多社會上以及經濟上都是所謂的非線性系統
: 好 問題如下
: 我還是個大學生
: 1)如果我想修有關這方面的課程
: 我應該修什麼課呢?
: 2)想問一下c++最重要的精髓
: 大概就是如果我要說我大致上瞭解c++
: 我需要學到那些東西?
: 以上還請各位先進不吝指教
: 小的先謝謝各位了:)
Big data跟雲端一樣同樣都是buzzwords 大數據在這把大傘下其實包含的層面很廣
先看看下面這篇文章好了
http://venturebeat.com/2014/10/31/linkedin-data-science-team/
LinkedIn在DJ Patil的帶領下成立了矽谷第一支data science team
(DJ Patil前幾天被任命為白宮第一位Data Scientist)
去年LinkedIn把這個team分拆成product data science和decision science兩個team
product data science 角色上比較偏向傳統的engineer 利用data+演算法開發創新的
產品 e.g.People you may know
decision science 則是偏向傳統的analyst 透過分析大數據提出決策建議與商業洞見
LinkedIn透過這樣的改組讓data scientist們專注於他們所擅長的工作
首先 你應該要先想清楚你的興趣在哪裡 以及未來希望扮演怎樣的角色
是專注在product的data scientist? 是偏向analytics的data Scientist?
或是偏系統infrastructure的data engineer?
因為你是物理系畢業的 所以在畢業的時候會有不錯的數學/統計知識 並且應該修過微
積分/線代/機率統計/數值分析 有機會的話 建議你把資料結構/演算法/資料庫這些cs
基礎課程補齊 掌握這些知識對你未來將會很有幫助
對於data scientist,你必須要具備machine learning/data mining/
information retrieval/AI的知識,使用ML相關工具對資料進行基本的
classification或clustering. 如果想要專注在product,建議你修一些需要應用大量ML
的課程,例如natural language processing, computer vision, speech recognition
並且有end-to-end的project實作經驗,最好的狀態當然是在這些領域上做independent
research. 如果對Analytics比較有興趣,建議你熟悉visualization tool,例如d3,
Bokeh,在課堂外大量閱讀,充實人文/經濟/商業以及各個domain的知識,培養自己說故事
的能力. 其他課程例如distributed systems在實務上很有用,你將會學習到電腦如何處
理大量的dataset,從底層的UDP/TCP, asynchronous streaming到高階的Hadoop/Spark.
當你能夠花上時間掌握上述的知識,相信你能夠有個很充實的大學生活. 其他相關的課
程取決於你的興趣以及希望充實的領域,例如probabilistic graphical models,convex
optimization, operation research, game theory等等.
依據你的背景,如果你的興趣在data engineer,建議你直接轉系或雙主修CS.因為data
engineer還是比較偏向傳統的software engineer,但專注的領域在large-scale
distributed system.可以參考Jeff Dean的投影片,思考一下這是不是你所想要的.
http://goo.gl/x2sJJm
http://goo.gl/w78cDJ
http://goo.gl/GDSsRh
回到第二個問題,能夠把c++學好當然很好,但在這領域裡面其實使用的人並不多.
如果你有機會現場參與上週的Strata + Hadoop World,你會發現今年最熱門的關鍵字
是Spark.即便是Spark這樣注重效能的infrastructure,他大部分的codebase還是由
Scala搭起來的(而不是c++). 當你點進去Spark的範例(
http://goo.gl/QiaRNH),會看到
Spark的API目前只有提供Python, Scala和Java.我個人的建議是花時間把這三種語言學
好會比學好c++有更高的投資報酬率.原因如下:
Python: 方便快速的prototype工具, 豐富的package(scikit-learn, numpy, scipy)
Scala: 了解Functional programming的概念, 目前最適合big data production的語言
Java: 了解OO的概念, 相較於python更高效能的code
在實務上,具有決定性因素的往往不在於"硬知識",而是business domain knowledge.
學習硬知識的目的在於利用機器來萃取data裡面的訊息或是使用適當的演算法處理data
,進而自動化商業決策.總之,演算法和程式語言並不是唯一重點,適當地將business
domain knlowedge融入系統才是關鍵,對你而言最重要的反而是好奇心與終身學習的心態.
Good luck!
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 69.106.48.36
※ 文章網址: https://www.ptt.cc/bbs/Soft_Job/M.1424645932.A.703.html
推 joeywayi: 謝謝你!!!這篇我受益無窮啊!! 02/23 08:16
推 chrome: 推 02/23 08:54
※ 編輯: awarmroom (69.106.48.36), 02/23/2015 10:40:46
推 hungys: 推 02/23 10:47
推 kingofage111: QQ 02/23 11:01
推 yotsuba1022: 謝謝分享 02/23 12:01
推 drajan: 鉅細彌遺 02/23 12:54
推 cybelia: 推好奇心與終身學習的心態 02/23 13:23
推 billy0131: 推 02/23 13:24
推 maul: 值得m 詳細點出趨勢 謝謝 02/23 14:01
推 sivid: PUSH 好文 02/23 14:06
推 BigShotBob: 好文 想請問parallel programming這方面需要深入了解 02/23 15:01
→ BigShotBob: 嗎?學校有開CUDA這方面的課程 不知道要不要修 02/23 15:05
推 snaketsai: 樓上,看你想作什麼吧?BTW,有些老師教材用的CUDA SDK 02/23 18:33
→ snaketsai: 版本很老。要會爬文件改API 02/23 18:33
→ recorriendo: 其實machine learning 唸到後來又會回到物理~ 像什麼 02/24 05:45
→ recorriendo: Boltzmann machine, mean-field inference 都是統計 02/24 05:45
→ recorriendo: 物理的變化 還有很重要的simulated annealing也是~ 02/24 05:49
推 zxc1020305: 受益推 02/24 12:40
→ kevingo: 謝謝:) 02/24 15:14
推 allen0326200: 推啊!寫真好 02/25 09:05
推 bowin: 推薦這篇! :-) 02/28 14:53
推 yuhsiC: 這篇太值得一推 04/17 00:08