Aimy'ssmile
編程沒有捷徑可言,或許天賦有點(diǎn)作用,但是不堅(jiān)持長(zhǎng)期練習(xí),開發(fā)大腦,是不可能成為高手的。其次,程序語(yǔ)言基本上五花八門,多達(dá)上百種,到圖書館看看便知,而且很多軟件自帶就有一種開發(fā)語(yǔ)言,所以一定不可貪多。然后,主流的當(dāng)然是C系語(yǔ)言,從C到C++到C#或者Java,這是一條基本路線,至于匯編語(yǔ)言除了計(jì)算機(jī)專業(yè)的人,一般不會(huì)去接觸的。接下來(lái)講講應(yīng)用范圍:C語(yǔ)言適用于系統(tǒng)開發(fā),比如操作系統(tǒng),嵌入式編程,單片機(jī)編程等,比較底層;C++適用于大型桌面軟件開發(fā),幾乎所有的大型桌面軟件都是用C++開發(fā)出來(lái)的,由此可見,C++是一個(gè)非常強(qiáng)大的語(yǔ)言。C#適用于非計(jì)算機(jī)專業(yè),以行業(yè)應(yīng)用為主的人,因?yàn)椴恍枰莆仗嗟募记桑鲜挚?,很受廣大非計(jì)算機(jī)專業(yè)的人的歡迎,可以這么說,C#的出現(xiàn)改變了人們對(duì)于程序的恐懼,老少皆宜。Java就不用說了,如今風(fēng)靡全球,適用于網(wǎng)絡(luò)開發(fā),手機(jī)開發(fā),Java是應(yīng)網(wǎng)絡(luò)時(shí)代而生,所以學(xué)Java就是學(xué)Web開發(fā),桌面軟件還是C++的江上。,建議學(xué)習(xí)C++或者Java。
夭爻溔訞濘綸
1.大數(shù)據(jù)工程師工作中會(huì)做什么?集群運(yùn)維:安裝、測(cè)試、運(yùn)維各種大數(shù)據(jù)組件數(shù)據(jù)開發(fā):細(xì)分一點(diǎn)的話會(huì)有ETL工程師、數(shù)據(jù)倉(cāng)庫(kù)工程師等數(shù)據(jù)系統(tǒng)開發(fā):偏重Web系統(tǒng)開發(fā),比如報(bào)表系統(tǒng)、推薦系統(tǒng)等這里面有很多內(nèi)容其實(shí)是十分重合的,下面大致聊一下每一塊內(nèi)容大致需要學(xué)什么,以及側(cè)重點(diǎn)。2.集群運(yùn)維數(shù)據(jù)工程師,基本上是離不開集群搭建,比如hadoop、Spark、Kafka,不要指望有專門的運(yùn)維幫你搞定,新組件的引入一般都要自己來(lái)動(dòng)手的。因此這就要求數(shù)據(jù)工程師了解各種大數(shù)據(jù)的組件。由于要自己的安裝各種開源的組件,就要求數(shù)據(jù)工程師要具備的能力: Linux 。要對(duì)Linux比較熟悉,能各種自己折騰著玩。由于現(xiàn)在的大數(shù)據(jù)生態(tài)系統(tǒng)基本上是 JVM系的,因此在語(yǔ)言上,就不要猶豫了,JVM系的Java和Scala基本上跑不掉,Java基本上要學(xué)的很深,Scala就看情況了。3. ETLETL在大數(shù)據(jù)領(lǐng)域主要體現(xiàn)在各種數(shù)據(jù)流的處理。這一塊一方面體現(xiàn)在對(duì)一些組件的了解上,比如Sqoop、Flume、Kafka、Spark、MapReduce;另一方面就是編程語(yǔ)言的需要,Java、Shell和Sql是基本功。4.系統(tǒng)開發(fā)我們大部分的價(jià)值最后都會(huì)由系統(tǒng)來(lái)體現(xiàn),比如報(bào)表系統(tǒng)和推薦系統(tǒng)。因此就要求有一定的系統(tǒng)開發(fā)能力,最常用的就是 Java Web這一套了,當(dāng)然Python也是挺方便的。需要注意的是,一般數(shù)據(jù)開發(fā)跑不掉的就是各種提數(shù)據(jù)的需求,很多是臨時(shí)和定制的需求,這種情況下, Sql就跑不掉了,老老實(shí)實(shí)學(xué)一下Sql很必要。如何入門?前面提到了一些數(shù)據(jù)工程師會(huì)用到的技能樹,下面給一個(gè)入門的建議,完全個(gè)人意見。1.了解行業(yè)情況剛開始一定要了解清楚自己和行業(yè)的情況,很多人根本就分不清招聘信息中的大數(shù)據(jù)和數(shù)據(jù)挖掘的區(qū)別就說自己要轉(zhuǎn)行,其實(shí)是很不負(fù)責(zé)的。不要總是趕熱點(diǎn),反正我就是經(jīng)常被鄙視做什么大數(shù)據(jù)開發(fā)太Low,做數(shù)據(jù)就要做數(shù)據(jù)挖掘,不然永遠(yuǎn)都是水貨。2.選擇學(xué)習(xí)途徑如果真是清楚自己明確地想轉(zhuǎn)數(shù)據(jù)開發(fā)了,要考慮一下自己的時(shí)間和精力,能拿出來(lái)多少時(shí)間,而且在學(xué)習(xí)的時(shí)候最好有人能多指點(diǎn)下,不然太容易走彎路了。在選擇具體的學(xué)習(xí)途徑時(shí),要慎重一點(diǎn),有幾個(gè)選擇:自學(xué)報(bào)班找人指點(diǎn)別的不說了,報(bào)班是可以考慮的,不要全指望報(bào)個(gè)輔導(dǎo)班就能帶你上天,但是可以靠他幫你梳理思路。如果有專業(yè)從事這一行的人多幫幫的話,是最好的。不一定是技術(shù)好,主要是可溝通性強(qiáng)。3.學(xué)習(xí)路線學(xué)習(xí)路線,下面是一個(gè)大致的建議:第一階段先具備一定的Linux和Java的基礎(chǔ),不一定要特別深,先能玩起來(lái),Linux的話能自己執(zhí)行各種操作,Java能寫點(diǎn)小程序。這些事為搭建Hadoop環(huán)境做準(zhǔn)備。學(xué)習(xí)Hadoop,學(xué)會(huì)搭建單機(jī)版的Hadoop,然后是分布式的Hadoop,寫一些MR的程序。接著學(xué)學(xué)Hadoop生態(tài)系統(tǒng)的其它大數(shù)據(jù)組件,比如Spark、Hive、Hbase,嘗試去搭建然后跑一些官網(wǎng)的Demo。Linux、Java、各種組件都有一些基礎(chǔ)后,要有一些項(xiàng)目方面的實(shí)踐,這時(shí)候找一些成功案例,比如搜搜各種視頻教程中如何搞一個(gè)推薦系統(tǒng),把自己學(xué)到的用起來(lái)。第二階段到這里是一個(gè)基本的階段了,大致對(duì)數(shù)據(jù)開發(fā)有一些了解了。接著要有一些有意思內(nèi)容可以選學(xué)。數(shù)據(jù)倉(cāng)庫(kù)體系:如何搞數(shù)據(jù)分層,數(shù)據(jù)倉(cāng)庫(kù)體系該如何建設(shè),可以有一些大致的了解。用戶畫像和特征工程:這一部分越早了解越好。一些系統(tǒng)的實(shí)現(xiàn)思路:比如調(diào)度系統(tǒng)、元數(shù)據(jù)系統(tǒng)、推薦系統(tǒng)這些系統(tǒng)如何實(shí)現(xiàn)。第三階段下面要有一些細(xì)分的領(lǐng)域需要深入進(jìn)行,看工作和興趣來(lái)選擇一些來(lái)深入進(jìn)行分布式理論:比如Gossip、DHT、Paxo這些構(gòu)成了各種分布式系統(tǒng)的底層協(xié)議和算法,還是要學(xué)一下的。數(shù)據(jù)挖掘算法:算法是要學(xué)的,但是不一定純理論,在分布式環(huán)境中實(shí)現(xiàn)算法,本身就是一個(gè)大的挑戰(zhàn)。各種系統(tǒng)的源碼學(xué)習(xí):比如Hadoop、Spark、Kafka的源碼,想深入搞大數(shù)據(jù),源碼跑不掉。
快樂的森蝶
大數(shù)據(jù)工程師要學(xué)什么課程?沒接觸過大數(shù)據(jù)的人也許不知道大數(shù)據(jù)工程師是什么,更別說知道大數(shù)據(jù)工程師要學(xué)什么課程了。我們先來(lái)說下大數(shù)據(jù)工程師是做什么的吧。是負(fù)責(zé)公司互聯(lián)網(wǎng)數(shù)據(jù)分析的一個(gè)職位,對(duì)數(shù)據(jù)庫(kù)進(jìn)行開發(fā)和(或)維護(hù),需要具備超強(qiáng)的邏輯思維,精通各種語(yǔ)言,需要有相當(dāng)好的毅力和耐心。光環(huán)大數(shù)據(jù)的大數(shù)據(jù)培訓(xùn)課程分為如下幾個(gè)階段:第一階段:java核心學(xué)習(xí)學(xué)習(xí)內(nèi)容:Java核心內(nèi)容學(xué)習(xí)目標(biāo):掌握數(shù)據(jù)類型與運(yùn)算符,數(shù)組、類與對(duì)象;掌握IO流與反射、多線程、JDBC。完成目標(biāo):Java多線程模擬多窗口售票,Java集合框架管理。第二階段: JavaEE課程大綱學(xué)習(xí)內(nèi)容:JavaEE核心內(nèi)容學(xué)習(xí)目標(biāo):Mysql數(shù)據(jù)基礎(chǔ)知識(shí),Jdbc 基礎(chǔ)概念和操作掌握HTML和CSS語(yǔ)法、Java核心語(yǔ)法完成目標(biāo):京東電商網(wǎng)站項(xiàng)目、2048小游戲。第三階段:Linux精講學(xué)習(xí)內(nèi)容:Linux命令、文件、配置,Shell、Awk、Sed學(xué)習(xí)目標(biāo):搭建負(fù)載均衡、高可靠的服務(wù)器集群,可大網(wǎng)站并發(fā)訪問量,保證服務(wù)不間斷完成目標(biāo):Linux環(huán)境搭建、shell腳本小游戲 貪吃蛇。第四階段:Hadoop生態(tài)體系學(xué)習(xí)內(nèi)容:HDFS、MapReduce、Hive、Sqoop、Oozie學(xué)習(xí)目標(biāo):掌握HDFS原理、操作和應(yīng)用開發(fā),掌握分布式運(yùn)算、Hive數(shù)據(jù)倉(cāng)庫(kù)原理及應(yīng)用。完成目標(biāo):微博數(shù)據(jù)大數(shù)據(jù)分析、汽車銷售大數(shù)據(jù)分析第五階段:Storm實(shí)時(shí)開發(fā)學(xué)習(xí)內(nèi)容:Zookeeper、HBase、Storm實(shí)時(shí)數(shù)據(jù)學(xué)習(xí)目標(biāo):掌握Storm程序的開發(fā)及底層原理,具備開發(fā)基于Storm的實(shí)時(shí)計(jì)算程序的能力。完成目標(biāo):實(shí)時(shí)處理新數(shù)據(jù)和更新數(shù)據(jù)庫(kù),處理密集查詢并行搜索處理大集合的數(shù)據(jù)。
小蝎子七七
大數(shù)據(jù)開發(fā)工程師的工作,主要就是負(fù)責(zé)大數(shù)據(jù)處理各個(gè)環(huán)節(jié)提供相應(yīng)的支持,包括大數(shù)據(jù)采集、清洗、存儲(chǔ)及管理、分析及挖掘、展現(xiàn)及應(yīng)用等,各個(gè)環(huán)節(jié)需要的技術(shù),都是需要系統(tǒng)化地進(jìn)行學(xué)習(xí)的。大數(shù)據(jù)開發(fā)工程師學(xué)習(xí)的課程,包括但不限于以下這些:大數(shù)據(jù)技術(shù)棧:Hadoop、Spark、Storm、Flink等;數(shù)據(jù)收集:關(guān)系型數(shù)據(jù)收集工具Sqoop與Canel、非關(guān)系型數(shù)據(jù)收集系統(tǒng)Flume、分布式消息隊(duì)列Kafka;數(shù)據(jù)存儲(chǔ):數(shù)據(jù)存儲(chǔ)格式、分布式文件系統(tǒng)及分布式數(shù)據(jù)庫(kù);資源管理和服務(wù)協(xié)調(diào):YARN、ZooKeeper;計(jì)算引擎:包括批處理、交互式處理,以及流式實(shí)時(shí)處理三類引擎,內(nèi)容涉及MapReduce、Spark 、Impala/Presto、 Storm 等。
優(yōu)質(zhì)工程師考試問答知識(shí)庫(kù)