A. 程序員以後不從事IT行業,可以轉行做什麼
需要不斷地學習新知識。當然,任何行業都需要學習新知識。但IT行業需要的是技術知識,而且,一旦跟不上,以前的就知識也就沒什麼用了。比如,的界面開發,現在卻幾乎沒人用了。年輕化。技術方面,只需要年輕人。尤其是計算機軟體開發,越年輕越好還是個程序員,基本上沒希望了。當然,可以走管理層。但那需要要麼有超強的技術基礎,要麼有超強的市場眼光。可惜,我都沒有,直到現在,仍然是個初學者。
B. 如果程序員想要轉行,可以去做什麼呢
程序員轉行能夠 做的領域挺多的,如果你搞清楚程序員的優點在哪兒,改行的情況下充分運用這一優點,那麼改行的成本費便會很低,通過率就高。程序員的優點取決於懂技術性,這在一些非技術性領域便是優點沒有錯這就是程序猿的優點,如果是在技術性有關領域,程序猿的技術性優點很有可能就表明不出來,終究大夥兒全是搞技術性的。
可是,在別的行業,程序員的技術性優點就顯出出來。假如把這個優點發揮好,那麼就很受歡迎的。就例如,平常這些不明白技術性的人聽聞你是程序猿,第一反應就是你的技術性毫無疑問很牛。
運用好技術性開展內部換崗,低成本風險性也低。內部換崗是程序員轉行最立即合理的方法,例如換崗產品運營,項目風險管理,乃至市場銷售職位都可以。
2、改行做專業技術培訓,無論是做線上培訓,或是線下培訓。這類全是能夠 非常好的運用程序猿的技術性優點的。對於是找一個培訓學校打工賺錢,或是跟她們協作,乃至自身搞技術性自媒體平台,那麼就看自身的狀況來定了。
3、改行到非技術性有關職位,這類不太提議,由於相當於便是舍棄以前的技術性優點了。一切都是從零開始,成本費太高了。
C. 程序員行業也是「青春飯」,以後有哪些轉型的方向
要成為一名程序員,不僅要忍受無休止的加班,還要承擔失業後的各種不確定風險。一般情況下,國內程序員如果不成為公司管理層,40歲之前就會失業。要成為公司的管理層對普通人來說就更難了!所以很多人認為程序員吃青春飯。考慮到程序員目前的生活狀況,作者同意這種說法。
但是,如果真的熱愛程序員這份工作,該怎麼辦?可以選擇轉行!
不用說,過了35歲,你的一線編碼能力肯定會下降,你的速度和效率肯定沒有25歲的程序員快。但是沒關系,因為編程只是你整個武器庫中最不重要的部分。你的經驗,你的視野,你的架構能力,你的管理能力,你的分析問題和解決問題的能力,遠遠不局限於技術領域。
D. 資深程序員想轉行,選擇什麼行業最容易
程序員曾經是一個人人稱羨享受高薪的職業,可是隨著科學技術的日益發展,程序開發漸漸發展成為一個人人都可以涉足的行業,只要經過培訓,就可以成為一個初級的程序設計者,往日的光環逐漸褪去。此外,行業也有程序員最多做到30歲就要重新定位的說法存在。在這樣的背景下,越來越多的程序員開始思考轉型的問題。那麼,程序員轉型的話可以做什麼呢?下面濟南IT培訓優就業給大家列舉幾個常見的例子~
4、做IT培訓
培訓越來越成為應屆畢業生從校園走向社會的跳板之一。掌握一些熱門的技術,參與過一些有實力的項目,同時對教師這一職業嚮往已久的程序員來說,培訓是展示才能,獲得高薪的又一平台。你可以不是那麼牛的技術開發者,但只要你能培養出牛氣的開發者,相信你在培訓這條路上可以越走越順暢。
當然,還有很多其他的行業可以供想要轉行的程序員選擇。濟南IT培訓優就業(itzx007)總結,作為要轉行的人來說,首先要明確自己的興趣,「做自己愛好的事,並從中取得報酬」,物質精神兩不誤,才能體會出生活的韻味。
E. 程序員如何轉行
現在程序員越來越多,這個職業,說難也難,說容易也容易。有年齡大的程序員,也有年輕的程序員,相比較來說,年輕的程序員轉行相對選擇機會大一點。畢竟還年輕可以學跟多知識,鍛煉自己,選擇的行業也比較廣泛。
大多數程序員每個階段肯定都有或大或小的迷茫期。總而言之,不過轉行到那種行業,最主要還是自己開心,在開心的前提下去學習,努力工作。讓自己的生活過得更豐富一點,開心一點,減少對未來的恐懼。
還在做程序員的朋友們,希望
F. 程序員未來前景如何大齡程序員出路在哪裡
年齡大的普通程序員,將來的出路無非就是以下三個:
1、穩定地待在一家公司,有一定產出效率,成為一顆螺絲釘,不出彩也不出醜,就像之前棉紡廠的工人那樣,直到這家公司不行了,找另一家,繼續做個普通一兵。其實這事兒和幾十年前的工人一樣,只是時代不一樣,職業的名字變了。
2、尋找相對優勢,到稀缺你技術、能力、經驗的地方,找到存在感。比如一線城市回退到二線、三線;比如互聯網頂級公司的普通程序員進入小公司;比如互聯網行業的普通程序員進入傳統行業有軟體部門的公司。
3、轉行,想干什麼干什麼去,很多人認為,一個 35 歲以上的程序員相比較一個 20來歲的畢業生,精神狀況、身體狀況必定是不如剛剛大學畢業的年輕人,所以要盡早轉行。那麼問題來了,程序員是吃青春飯的嗎?程序員的職業發展到底如何呢?
首先,我覺得時至今日,相比其他職業,程序員仍然是一個投入產出比比較高的職業。程序員不是一個「吃青春飯」的職業,而是一個常青的職業。程序員其實也並沒有我們想像中那麼累,很多互聯網公司的工作環境、工作氛圍、員工福利都是非常不錯的:彈性工作,定期團建,免費健身;一日三餐、零食飲料應有盡有。對於頭腦靈活、思維敏捷,但還沒有明確職業目標的理工科畢業生而言,把程序員作為職業生涯的起點,應該會是一個不錯的選擇。以北京為例,應屆畢業起薪在 8000-10000 元,比其他職業高出不少。程序員現在小蜜蜂雲工作了解很多遠程可辦公的,全職兼職都是有的,可供的選擇還是比較多的。
程序員在職業生涯第一個階段,通常是 3-5 年。這個階段要以職業探索為主,腳踏實地寫好每一行代碼。只有快速學習和成長,掌握過硬的專業技能,這樣才能在職場立足,走好未來的路。現在程序員的職業領域已經細分到了令人發指的地步,比如:大數據工程師、雲計算工程師、某某語言工程師、系統架構師、web 前端工程師、嵌入式軟體工程師、資料庫開發工程師等等。
G. 普通程序員如何向人工智慧方向轉型
當下,人工智慧已經成為越來越火的一個方向。普通程序員,如何轉向人工智慧方向,是知乎上的一個問題。
這個學習路線是這樣設計的:首先了解這個領域,建立起全面的視野,培養起充足的興趣,然後開始學習機器學習的基礎,這里選擇一門由淺入深的課程來學習,課程最好有足夠的實驗能夠進行實戰。基礎打下後,對機器學習已經有了充足的了解,可以用機器學習來解決一個實際的問題。
這時還是可以把機器學習方法當作一個黑盒子來處理的。實戰經驗積累以後,可以考慮繼續進行學習。這時候有兩個選擇,深度學習或者繼續機器學習。深度學習是目前最火熱的機器學習方向,其中一些方法已經跟傳統的機器學習不太一樣,因此可以單獨學習。除了深度學習以外,機器學習還包括統計學習,集成學習等實用方法。
如果條件足夠,可以同時學習兩者,一些規律對兩者是共通的。學習完後,你已經具備了較強的知識儲備,可以進入較難的實戰。這時候有兩個選擇,工業界的可以選擇看開源項目,以改代碼為目的來讀代碼;學術界的可以看特定領域的論文,為解決問題而想發論文。
無論哪者,都需要知識過硬,以及較強的編碼能力,因此很能考察和鍛煉水平。經過這個階段以後,可以說是踏入AI領域的門了。「師傅領進門,修行在個人」。之後的路就要自己走了。
下面是關於每個階段的具體介紹:
0.領域了解
在學習任何一門知識之前,首先第一步就是了解這個知識是什麼?它能做什麼事?它的價值在什麼地方?如果不理解這些的話,那麼學習本身就是一個沒有方向的舟,不知道駛向何處,也極易有沉船的風險。了解這些問題後,你才能培養出興趣,興趣是最好的引路人,學習的動力與持久力才能讓你應付接下來的若干個階段。關於機器學習是什麼,能做什麼,它與深度學習以及人工智慧的關系,可以看我寫的博客從機器學習談起。
1.知識准備
如果你離校過久,或者覺得基礎不牢,最好事先做一下准備復習工作。「工欲善其事,必先利其器」。以下的准備工作不多,但足以應付後面階段的學習。
數學:復習以下基本知識。線性代數:矩陣乘法;高數:求導;概率論:條件與後驗概率。其他的一些知識可以在後面的學習的過程中按需再補;
英文:常備一個在線英文詞典,例如愛詞霸,能夠不吃力的看一些英文的資料網頁;
FQ:可以隨時隨地上Google,這是一個很重要的工具。不是說網路查的不能看,而是很多情況下Google搜出來的資料比網路搜的幾十頁的資料還管用,尤其是在查英文關鍵字時。節省時間可是很重要的學習效率提升;
2.機器學習
機器學習的第一門課程首推Andrew Ng的機器學習。這門課程有以下特點:難度適中,同時有足夠的實戰例子,非常適合第一次學習的人。cs229這門課程我這里不推薦,為什麼,原因有以下:
時間:cs229的時間太早,一些知識已經跟不上當今的發展,目前最為火熱的神經網路一筆帶過。而Cousera上神經網路可是用了兩個課時去講的!而且非常詳細;教學:Ng在cs229時候的教學稍顯青澀,可能是面對網路教學的原因。有很多問題其實他都沒有講清楚,而且下面的人的提問其實也很煩躁,你往往不關心那些人的問題。這點在Coursera上就明顯得到了改善,你會發現Ng的教學水平大幅度改善了,他會對你循循善誘,推心置腹,由淺入深的教學,在碰到你不明白的單詞術語時也會叫你不要擔心,更重要的,推導與圖表不要太完善,非常細致清晰,這點真是強力推薦;字幕:cs229的字幕質量比Coursera上的差了一截。Coursera上中文字幕翻譯經過了多人把關,質量很有保證;作業:cs229沒有作業,雖然你可以做一些,但不會有人看。這點遠不如Coursera上每周有deadline的那種作業,而且每期作業提交上去都有打分。更重要的是,每期作業都有實際的例子,讓你手把手練習,而且能看到自己的成果,成就感滿滿!
3.實踐做項目
學習完了基礎課程,你對機器學習就有了初步了解。現在使用它們是沒有問題的,你可以把機器學習演算法當作黑盒子,放進去數據,就會有結果。在實戰中你更需要去關心如何獲取數據,以及怎麼調參等。如果有時間,自己動手做一個簡單的實踐項目是最好的。
這里需要選擇一個應用方向,是圖像(計算機視覺),音頻(語音識別),還是文本(自然語言處理)。這里推薦選擇圖像領域,這裡面的開源項目較多,入門也較簡單,可以使用OpenCV做開發,裡面已經實現好了神經網路,SVM等機器學習演算法。項目做好後,可以開源到到 Github 上面,然後不斷完善它。實戰項目做完後,你可以繼續進一步深入學習,這時候有兩個選擇,深度學習和繼續機器學習;
4.深度學習
深度學習:深度學習是目前最火熱的研究方向。有以下特點:知識更新快,較為零碎,沒有系統講解的書。因此學習的資源也相對零散,下面是一些資源介紹。其中不推薦的部分並不代表不好,而是在這個初學階段不合適:
推薦,UFLDL:非常好的DL基礎教程,也是Andrew Ng寫的。有很詳盡的推導,有翻譯,且翻譯質量很高;推薦,Deep learning (paper):2015年Nature上的論文,由三位深度學習界的大牛所寫,讀完全篇論文,給人高屋建瓴,一覽眾山小的感覺,強烈推薦。如果只能讀一篇論文了解深度學習,我推薦此篇。這篇論文有同名的中文翻譯;推薦,Neural networks and deep learning:這本書的作者非常擅長以淺顯的語言表達深刻的道理,雖然沒有翻譯,但是閱讀並不困難;推薦,Recurrent Neural Networks:結合一個實際案例告訴你RNN是什麼,整篇教程學完以後,會讓你對RNN如何產生作用的有很清晰的認識,而這個效果,甚至是讀幾篇相關論文所沒有的;不推薦,Neural Networks for Machine Learning University of Toronto Coursera:深度學習創始人教的課,最大的問題是太難,而且老先生的吐字有時不是很標准;不推薦,Deep Learning (book):同樣也是由深度學習大牛所寫的書,但感覺就像是第二作者,也就是他的學生所寫的。很多內容都講了,但是感覺也沒講出什麼內容來,只是告訴你來自那篇論文,這樣的話可能直接閱讀論文更合適。不推薦,cs231n:李菲菲的課程,很有名,專門講CNN。但是這門課程有一個最大的問題,就是沒有字幕,雖然有youtube的自動翻譯字幕,但有還不如沒有。
5.繼續機器學習
深度學習未必就是未來的一定主流,至少一些大牛是這么認為的。傳統的機器學習有如下特點,知識系統化,有相對經典的書。其中統計學習(代表SVM)與集成學習(代表adaboost)是在實踐中使用非常多的技術。下面是相關資源:
推薦,機器學習(周志華):如果是在以前,機器學習方面的經典教材首推PRML,但現在周老師的書出來以後,就不再是這樣了。首先推薦讀周老師的書。這本書有一個特點,那就是再難的道理也能用淺顯精煉的語言表達出來。正如周老師的名言:「體現你水平的地方是把難的東西講容易了,而不是把容易的東西講難,想把一個東西講難實在太簡單」;
不推薦,Pattern Recognition And Machine Learning:當前階段不推薦。PRML是以貝葉斯的觀點看待很多機器學習方法,這也是它的一大特色。但對於初學者來說,這種觀點其實並無必要。而且此書沒有中文翻譯,當前階段硬啃很容易放棄;
6.開源項目
當知識儲備較為充足時,學習可以再次轉入實踐階段。這時候的實踐仍然可以分兩步走,學習經典的開源項目或者發表高質量的論文。開源項目的學習應該以盡量以優化為目的,單純為讀代碼而學習效果往往不太好。好的開源項目都可以在Github 里搜索。這里以深度學習為例。深度學習的開源優秀庫有很多,例如torch,theano等等,這里列舉其中的兩個:
推薦,DeepLearnToolbox:較早的一個深度學習庫,用matlab語言撰寫,較為適合從剛學習的課程轉入學習。遺憾的是作者不再維護它了;
推薦,tensorflow:Google的開源庫,時至今日,已經有40000多個star,非常驚人,支持移動設備;
7.會議論文
較好的課程都會推薦你一些論文。一些著名的技術與方法往往誕生於一些重要的會議。因此,看往年的會議論文是深入學習的方法。在這時,一些論文中的內容會驅使你學習數學中你不擅長的部分。有時候你會覺得數學知識儲備不夠,因此往往需要學習一些輔助課程。
當你看完足夠的論文以後,在這個階段,如果是在校學生,可以選擇某個課題,以發論文為目的來學習研究。一般來說,論文是工作的產物。有時候一篇基於實驗的論文往往需要你寫代碼或者基於開源項目。因此開源項目的學習與會議論文的工作兩者之間是有相關的。
兩者可以同時進行學習。關於在哪裡看論文,可以看一下CCF推薦排名,了解一下這個領域里有哪些優秀的會議。
下面介紹兩個圖像與機器學習領域的著名頂級會議:
CVPR:與另兩個會議ICCV和ECCV合稱計算機視覺領域的三大會,注意會議每年的主頁是變動的,因此搜索需要加上年份;Conference on Neural Information Processing Systems:簡稱NIPS,許多重要的工作發表在這上面,例如關於CNN的一篇重要論文就是發表在上面;
8.自由學習
到這里了,可以說是進入這個門了。下面可以依據興趣來自由學習。前階段不推薦的學習資源也可隨意學習,下面是點評:
cs229:Ng寫的講義很不錯,其中關於SVM的推導部分很清晰,想學習SVM推薦;Neural Networks for Machine Learning:大牛的視角跟人就是不一樣,看看Hinton對神經網路是怎麼看的,往往會讓你有種原來如此的感悟。其實看這門課程也等同於讀論文,因為幾乎每節課的參考資料里都有論文要你讀;CS231n: Convolutional Neural Networks for Visual Recognition:最新的知識,還有詳細的作業。國內應該有團隊對字幕進行了翻譯,可以找找;PRML:作為一門經典的機器學習書籍,是很有閱讀必要的,會讓你對機器學習擁有一個其他的觀察視角;
五.總結
本文的目的是幫助對AI領域了解不深,但又想進入的同學踏入這個門。這里只說踏入,是因為這個領域的專精實在非常困難,需要數年的積累與努力。在進行領域學習前,充分認識自己的特點,制定合適的學習方法是十分重要的。
首先得對這個領域進行充分了解,培養興趣。在學習時,保持著循序漸進的學習方針,不要猛進的學習過難資源;結合著學習與實踐相輔的策略,不要只讀只看,實際動手才有成就感。學習某個資源時要有充分的目的,不是為了學開源項目而看代碼,而是為了寫開源項目而看;不是為了發論文而寫論文,而是為了做事情而寫論文。
本文來自公眾號:「大技術技術匯」,guanzhu了解大數據行業學習大數據技術和學習路線,還有免費學習資料放送。
如果一個學習資源對你過難,並不代表一定是你的問題,可能是學習資源的演講或撰寫人的問題。能把難的問題講簡單的人才是真正有水平的人。所以,一定要學習優質資源,而不是不分青紅皂白的學習。最後,牢記以興趣來學習。學習的時間很長,過程也很艱難,而只有興趣才是讓你持之以恆,攻克難關的最佳助力。
H. 程序員如何轉型為大數據工程師
主要是從兩者所要求的能力上來分析。首先,大數據工程師是需要有計算機編碼能力的,因為面對海量的非結構化數據,你要從中挖掘出有價值的東西,需要設計演算法與編寫程序去實現,而程序員最牛的能力就是編寫簡潔高效的代碼,去實現人們許許多多美妙的夢想,編碼能力越強的程序員越有可能成為優秀的大數據工程師。
其次,大數據工程師需要統計學與應用數學相關的能力背景,數據挖掘與分析是需要設計數據模型和演算法的,應該說程序員是有這個基礎的,我見過最牛逼的程序員一般都不是科班出來的,通常是數學專業,因此提高演算法設計能力是程序員轉型大數據工程師的關鍵因素。
第三,大數據工程師需要具備某一行業的業務知識,大數據的挖掘與分析最終都要服務於市場,並對產品的銷售與企業的發展起到重大推動作用,那才是有價值的大數據分析,因此大數據是不能脫離市場的,它必須與某一行業的應用想結合起來才容易產生更大的價值,通常程序員都是在做某一行業的軟體,經過多年的學習與磨練,對某一行業的業務知識是有積累的,因此從來這一點上來看,程序員是很容易過渡到大數據工程師的。
I. 程序員轉行可以做什麼
面對著日新月異的代碼和語言,你是否感到了力不從心?稍有懈怠,就跟不上崗位需要了?身體漸漸的發福,熬夜寫代碼開始扛不住了嗎?
這個時代很殘酷也相對公平,殘酷的地方在於世界的變化之快容不得人有片刻懈怠,公平的地方在於:不論你是年輕還是年老,都要靠實力說話。
那些被時代拋棄的永遠都是跑得比較慢甚至在原地徘徊的人,即所謂的工作十年卻只有一年工作經驗。
年輕程序員的優勢在於年輕和激情,大齡程序員的優勢在於閱歷和經驗。所以,年輕程序員不要有跨越年齡階段的焦慮,大齡程序員也不要覺得年輕人搶了自己的飯碗。
每個年齡段都有自己要解決和面臨的問題,認清自己內心真正的需求和渴望,再去尋找適合自己的棲身之地打怪升級,才是當務之急哦。
J. 普通程序員如何向人工智慧方向轉型
當下,人工智慧已經成為越來越火的一個方向。普通程序員,如何轉向人工智慧方向,是知乎上的一個問題。
這個學習路線是這樣設計的:首先了解這個領域,建立起全面的視野,培養起充足的興趣,然後開始學習機器學習的基礎,這里選擇一門由淺入深的課程來學習,課程最好有足夠的實驗能夠進行實戰。基礎打下後,對機器學習已經有了充足的了解,可以用機器學習來解決一個實際的問題。
這時還是可以把機器學習方法當作一個黑盒子來處理的。實戰經驗積累以後,可以考慮繼續進行學習。這時候有兩個選擇,深度學習或者繼續機器學習。深度學習是目前最火熱的機器學習方向,其中一些方法已經跟傳統的機器學習不太一樣,因此可以單獨學習。除了深度學習以外,機器學習還包括統計學習,集成學習等實用方法。
如果條件足夠,可以同時學習兩者,一些規律對兩者是共通的。學習完後,你已經具備了較強的知識儲備,可以進入較難的實戰。這時候有兩個選擇,工業界的可以選擇看開源項目,以改代碼為目的來讀代碼;學術界的可以看特定領域的論文,為解決問題而想發論文。
無論哪者,都需要知識過硬,以及較強的編碼能力,因此很能考察和鍛煉水平。經過這個階段以後,可以說是踏入AI領域的門了。「師傅領進門,修行在個人」。之後的路就要自己走了。
下面是關於每個階段的具體介紹:
0.領域了解
在學習任何一門知識之前,首先第一步就是了解這個知識是什麼?它能做什麼事?它的價值在什麼地方?如果不理解這些的話,那麼學習本身就是一個沒有方向的舟,不知道駛向何處,也極易有沉船的風險。了解這些問題後,你才能培養出興趣,興趣是最好的引路人,學習的動力與持久力才能讓你應付接下來的若干個階段。關於機器學習是什麼,能做什麼,它與深度學習以及人工智慧的關系,可以看我寫的博客從機器學習談起。
1.知識准備
如果你離校過久,或者覺得基礎不牢,最好事先做一下准備復習工作。「工欲善其事,必先利其器」。以下的准備工作不多,但足以應付後面階段的學習。
數學:復習以下基本知識。線性代數:矩陣乘法;高數:求導;概率論:條件與後驗概率。其他的一些知識可以在後面的學習的過程中按需再補;
英文:常備一個在線英文詞典,例如愛詞霸,能夠不吃力的看一些英文的資料網頁;
FQ:可以隨時隨地上Google,這是一個很重要的工具。不是說網路查的不能看,而是很多情況下Google搜出來的資料比網路搜的幾十頁的資料還管用,尤其是在查英文關鍵字時。節省時間可是很重要的學習效率提升;
2.機器學習
機器學習的第一門課程首推Andrew Ng的機器學習。這門課程有以下特點:難度適中,同時有足夠的實戰例子,非常適合第一次學習的人。cs229這門課程我這里不推薦,為什麼,原因有以下:
時間:cs229的時間太早,一些知識已經跟不上當今的發展,目前最為火熱的神經網路一筆帶過。而Cousera上神經網路可是用了兩個課時去講的!而且非常詳細;教學:Ng在cs229時候的教學稍顯青澀,可能是面對網路教學的原因。有很多問題其實他都沒有講清楚,而且下面的人的提問其實也很煩躁,你往往不關心那些人的問題。這點在Coursera上就明顯得到了改善,你會發現Ng的教學水平大幅度改善了,他會對你循循善誘,推心置腹,由淺入深的教學,在碰到你不明白的單詞術語時也會叫你不要擔心,更重要的,推導與圖表不要太完善,非常細致清晰,這點真是強力推薦;字幕:cs229的字幕質量比Coursera上的差了一截。Coursera上中文字幕翻譯經過了多人把關,質量很有保證;作業:cs229沒有作業,雖然你可以做一些,但不會有人看。這點遠不如Coursera上每周有deadline的那種作業,而且每期作業提交上去都有打分。更重要的是,每期作業都有實際的例子,讓你手把手練習,而且能看到自己的成果,成就感滿滿!
3.實踐做項目
學習完了基礎課程,你對機器學習就有了初步了解。現在使用它們是沒有問題的,你可以把機器學習演算法當作黑盒子,放進去數據,就會有結果。在實戰中你更需要去關心如何獲取數據,以及怎麼調參等。如果有時間,自己動手做一個簡單的實踐項目是最好的。
這里需要選擇一個應用方向,是圖像(計算機視覺),音頻(語音識別),還是文本(自然語言處理)。這里推薦選擇圖像領域,這裡面的開源項目較多,入門也較簡單,可以使用OpenCV做開發,裡面已經實現好了神經網路,SVM等機器學習演算法。項目做好後,可以開源到到 Github 上面,然後不斷完善它。實戰項目做完後,你可以繼續進一步深入學習,這時候有兩個選擇,深度學習和繼續機器學習;
4.深度學習
深度學習:深度學習是目前最火熱的研究方向。有以下特點:知識更新快,較為零碎,沒有系統講解的書。因此學習的資源也相對零散,下面是一些資源介紹。其中不推薦的部分並不代表不好,而是在這個初學階段不合適:
推薦,UFLDL:非常好的DL基礎教程,也是Andrew Ng寫的。有很詳盡的推導,有翻譯,且翻譯質量很高;推薦,Deep learning (paper):2015年Nature上的論文,由三位深度學習界的大牛所寫,讀完全篇論文,給人高屋建瓴,一覽眾山小的感覺,強烈推薦。如果只能讀一篇論文了解深度學習,我推薦此篇。這篇論文有同名的中文翻譯;推薦,Neural networks and deep learning:這本書的作者非常擅長以淺顯的語言表達深刻的道理,雖然沒有翻譯,但是閱讀並不困難;推薦,Recurrent Neural Networks:結合一個實際案例告訴你RNN是什麼,整篇教程學完以後,會讓你對RNN如何產生作用的有很清晰的認識,而這個效果,甚至是讀幾篇相關論文所沒有的;不推薦,Neural Networks for Machine Learning University of Toronto Coursera:深度學習創始人教的課,最大的問題是太難,而且老先生的吐字有時不是很標准;不推薦,Deep Learning (book):同樣也是由深度學習大牛所寫的書,但感覺就像是第二作者,也就是他的學生所寫的。很多內容都講了,但是感覺也沒講出什麼內容來,只是告訴你來自那篇論文,這樣的話可能直接閱讀論文更合適。不推薦,cs231n:李菲菲的課程,很有名,專門講CNN。但是這門課程有一個最大的問題,就是沒有字幕,雖然有youtube的自動翻譯字幕,但有還不如沒有。
5.繼續機器學習
深度學習未必就是未來的一定主流,至少一些大牛是這么認為的。傳統的機器學習有如下特點,知識系統化,有相對經典的書。其中統計學習(代表SVM)與集成學習(代表adaboost)是在實踐中使用非常多的技術。下面是相關資源:
推薦,機器學習(周志華):如果是在以前,機器學習方面的經典教材首推PRML,但現在周老師的書出來以後,就不再是這樣了。首先推薦讀周老師的書。這本書有一個特點,那就是再難的道理也能用淺顯精煉的語言表達出來。正如周老師的名言:「體現你水平的地方是把難的東西講容易了,而不是把容易的東西講難,想把一個東西講難實在太簡單」;
不推薦,Pattern Recognition And Machine Learning:當前階段不推薦。PRML是以貝葉斯的觀點看待很多機器學習方法,這也是它的一大特色。但對於初學者來說,這種觀點其實並無必要。而且此書沒有中文翻譯,當前階段硬啃很容易放棄;
6.開源項目
當知識儲備較為充足時,學習可以再次轉入實踐階段。這時候的實踐仍然可以分兩步走,學習經典的開源項目或者發表高質量的論文。開源項目的學習應該以盡量以優化為目的,單純為讀代碼而學習效果往往不太好。好的開源項目都可以在Github 里搜索。這里以深度學習為例。深度學習的開源優秀庫有很多,例如torch,theano等等,這里列舉其中的兩個:
推薦,DeepLearnToolbox:較早的一個深度學習庫,用matlab語言撰寫,較為適合從剛學習的課程轉入學習。遺憾的是作者不再維護它了;
推薦,tensorflow:Google的開源庫,時至今日,已經有40000多個star,非常驚人,支持移動設備;
7.會議論文
較好的課程都會推薦你一些論文。一些著名的技術與方法往往誕生於一些重要的會議。因此,看往年的會議論文是深入學習的方法。在這時,一些論文中的內容會驅使你學習數學中你不擅長的部分。有時候你會覺得數學知識儲備不夠,因此往往需要學習一些輔助課程。
當你看完足夠的論文以後,在這個階段,如果是在校學生,可以選擇某個課題,以發論文為目的來學習研究。一般來說,論文是工作的產物。有時候一篇基於實驗的論文往往需要你寫代碼或者基於開源項目。因此開源項目的學習與會議論文的工作兩者之間是有相關的。
兩者可以同時進行學習。關於在哪裡看論文,可以看一下CCF推薦排名,了解一下這個領域里有哪些優秀的會議。
下面介紹兩個圖像與機器學習領域的著名頂級會議:
CVPR:與另兩個會議ICCV和ECCV合稱計算機視覺領域的三大會,注意會議每年的主頁是變動的,因此搜索需要加上年份;Conference on Neural Information Processing Systems:簡稱NIPS,許多重要的工作發表在這上面,例如關於CNN的一篇重要論文就是發表在上面;
8.自由學習
到這里了,可以說是進入這個門了。下面可以依據興趣來自由學習。前階段不推薦的學習資源也可隨意學習,下面是點評:
cs229:Ng寫的講義很不錯,其中關於SVM的推導部分很清晰,想學習SVM推薦;Neural Networks for Machine Learning:大牛的視角跟人就是不一樣,看看Hinton對神經網路是怎麼看的,往往會讓你有種原來如此的感悟。其實看這門課程也等同於讀論文,因為幾乎每節課的參考資料里都有論文要你讀;CS231n: Convolutional Neural Networks for Visual Recognition:最新的知識,還有詳細的作業。國內應該有團隊對字幕進行了翻譯,可以找找;PRML:作為一門經典的機器學習書籍,是很有閱讀必要的,會讓你對機器學習擁有一個其他的觀察視角;
五.總結
本文的目的是幫助對AI領域了解不深,但又想進入的同學踏入這個門。這里只說踏入,是因為這個領域的專精實在非常困難,需要數年的積累與努力。在進行領域學習前,充分認識自己的特點,制定合適的學習方法是十分重要的。
首先得對這個領域進行充分了解,培養興趣。在學習時,保持著循序漸進的學習方針,不要猛進的學習過難資源;結合著學習與實踐相輔的策略,不要只讀只看,實際動手才有成就感。學習某個資源時要有充分的目的,不是為了學開源項目而看代碼,而是為了寫開源項目而看;不是為了發論文而寫論文,而是為了做事情而寫論文。
本文來自公眾號:「大技術技術匯」,guanzhu了解大數據行業學習大數據技術和學習路線,還有免費學習資料放送。
如果一個學習資源對你過難,並不代表一定是你的問題,可能是學習資源的演講或撰寫人的問題。能把難的問題講簡單的人才是真正有水平的人。所以,一定要學習優質資源,而不是不分青紅皂白的學習。最後,牢記以興趣來學習。學習的時間很長,過程也很艱難,而只有興趣才是讓你持之以恆,攻克難關的最佳助力。