日韩黑丝制服一区视频播放|日韩欧美人妻丝袜视频在线观看|九九影院一级蜜桃|亚洲中文在线导航|青草草视频在线观看|婷婷五月色伊人网站|日本一区二区在线|国产AV一二三四区毛片|正在播放久草视频|亚洲色图精品一区

分享

三年學(xué)習(xí)之路—算法工程師指南

 昵稱42427018 2018-05-30


今年是我工作的第四年,一路走來磕磕絆絆,想把自己的學(xué)習(xí)和工作路徑做一份總結(jié),也希望這份總結(jié)能夠幫助那些想成為算法工程師的同學(xué)。


這一次不是21天,也不是3個月速成班,而是需要三年! 我是以一個一線互聯(lián)網(wǎng)公司對算法工程師的要求寫的這份總結(jié)和指南,如果你只是想渾水摸魚,急功近利,那么我寫的東西肯定是不適合你的。 在這三年里,我面試了大大小小互聯(lián)網(wǎng)公司15家左右,收割了包括bat在內(nèi)的大部分offer。當(dāng)然,有幾份offer是面試多次才獲取的,比如百度,阿里等。 剛畢業(yè)的時候去面試死的很慘,到后期能力提升上來了,面試也就容易了,也形成了一套自己的面試套路:刷題!


因此這篇文章皆在表達(dá)以下幾個目的:

  1. 自我總結(jié)。對過去三年求學(xué)和求工作經(jīng)歷的總結(jié),不斷反思,共同探討

  2. 學(xué)習(xí)路徑規(guī)劃。我會根據(jù)自己的理解推薦三年左右的學(xué)習(xí)規(guī)劃

  3. 面試指南。結(jié)合自身的面試經(jīng)歷,總結(jié)出一些可用實(shí)踐方案


需要說明的是:文章表達(dá)的只是我個人的理解,如果你的理解與我的有出入,那么純屬不巧合,以我為準(zhǔn)(捂臉???♀?)! 同時,我是假設(shè)你與我一樣的基礎(chǔ):沒有數(shù)學(xué)和計(jì)算機(jī)基礎(chǔ),但是至少有本科學(xué)歷 這樣的前提條件下來寫的。 此處我不想針對學(xué)歷做任何討論,現(xiàn)實(shí)的世界就是沒有學(xué)歷你將寸步難行,找工作尤為明顯。


我規(guī)劃的學(xué)習(xí)路線并不是嚴(yán)格按照我當(dāng)初自學(xué)的方法來進(jìn)行的,因?yàn)槲耶?dāng)初走了很多彎路,踩了很多坑。在閱讀這份總結(jié)前需要一點(diǎn)備注信息:

  1. 我假設(shè)每周能學(xué)習(xí)10個小時左右,具體怎么分配可習(xí)性安排。但是學(xué)習(xí)要有連貫性,有保證有大塊整段時間來學(xué)習(xí)!每次學(xué)20分鐘這種所謂的零碎時間學(xué)習(xí)就拉倒吧,你將一事無成

  2. 堅(jiān)持堅(jiān)持堅(jiān)持!最難人可貴的不是知識本身而是你的毅力和堅(jiān)持!智商上的差距真的不是很大,大的是每個人的毅力與野心

  3. 不存在所謂的速成班,算法更是如此!也不存在所謂的業(yè)務(wù)愛好,走馬觀花搞一搞,算法不是你想搞,想搞就能搞!既然要學(xué),就做好拼盡全力的準(zhǔn)備。否則就是在浪費(fèi)時間,真的??!


我們把整個學(xué)習(xí)路徑分為三部分:

  1. 夯實(shí)基礎(chǔ)

  2. 機(jī)器學(xué)習(xí)

  3. 算法工程師


一、夯實(shí)基礎(chǔ)

算法工程師兩把斧,一把是數(shù)學(xué),一把是計(jì)算機(jī)知識。所謂的算法無非就是應(yīng)用計(jì)算機(jī)工具將數(shù)學(xué)知識應(yīng)用到業(yè)務(wù)中。 但數(shù)學(xué)和計(jì)算機(jī)的知識包羅萬象,普通人即使終其一生也不可能學(xué)完或者學(xué)精整個學(xué)科。 對于算法工程師來說,我們只挑選最核心的知識來學(xué)習(xí)即可!下面直擊要害


數(shù)學(xué)

  1. 統(tǒng)計(jì)概率

  2. 微積分

  3. 線性代數(shù)

  4. 機(jī)器學(xué)習(xí)入門


計(jì)算機(jī)

  1. C/C 語言

  2. 數(shù)據(jù)結(jié)構(gòu)和算法

  3. PYTHON編程語言

  4. JAVA編程語言


英文


至少要是大學(xué)六級的水平,雅思6.5分,閱讀小分6.5才算合格

我先來說英文,據(jù)我所觀察,英文是區(qū)分一個程序員是否優(yōu)秀的重要標(biāo)志。你英文好不一定就能成為優(yōu)秀的程序員,但是英文不好很大概率上你不可能成為優(yōu)秀的程序員。 算法這個行業(yè)發(fā)展太快速了,日新月異,大部分資料都是英文的,發(fā)表的paper也肯定都是英文的。中文的翻譯書籍往往還沒出版,英文的版本就已經(jīng)迭代好幾次了。英文不好,你上不了Google,上不了github,上不了stackoverflow,上不了這個星球上任何優(yōu)秀的程序員網(wǎng)站。 很大程度上,英文能力會對你的學(xué)習(xí)工作視野產(chǎn)生決定性影響。說到這,很多同學(xué)都寒心了,我就是英文不好,咋辦 其實(shí)大部分城學(xué)員英文都不好,包括那些你看到的優(yōu)秀程序員! 但是有一點(diǎn)他們肯定很厲害,就是英文閱讀的能力。沒錯,對于大部分程序員來說,只要閱讀過關(guān),英文就夠用了,如果聽力還過關(guān),那基本上足夠用了,如果寫作業(yè)過關(guān),那就很厲害了,如果口語也過關(guān),那就忽略我寫的這一段,你將會體驗(yàn)英文給你帶來的巨大優(yōu)勢! 


數(shù)學(xué)

數(shù)學(xué)是算法的靈魂! 數(shù)學(xué)學(xué)不好會比英文還糟糕,英文是錦上添花,數(shù)學(xué)是你能力的上限!其實(shí)發(fā)展到今天,機(jī)器學(xué)習(xí)等知識涉及到是數(shù)學(xué)知識實(shí)在是太多了,我自身也沒有完全搞清楚或者說將全部的知識弄明白,只能結(jié)合自己學(xué)習(xí)過的以及身邊一些案例來給大家做一個推薦


統(tǒng)計(jì)概率

統(tǒng)計(jì)學(xué)和概率論經(jīng)常被放在一起使用,直到現(xiàn)在還有很多人在區(qū)分機(jī)器學(xué)習(xí)和統(tǒng)計(jì)學(xué),有所謂的統(tǒng)計(jì)派計(jì)算機(jī)派(參考吳恩達(dá)以及他的恩師喬丹,不是打籃球的那個)。 統(tǒng)計(jì)學(xué)涉及的回歸分析是機(jī)器學(xué)習(xí)里最簡單的線性模型,概率論里面的概率分布和概率計(jì)算是機(jī)器學(xué)習(xí)演算的一個核心。機(jī)器學(xué)習(xí)模型對樣本進(jìn)行預(yù)測的都是給出一個概率值,表達(dá)不確定性!


如果你是文科生,數(shù)學(xué)又很弱的話,我推薦你學(xué)習(xí)《商務(wù)與經(jīng)濟(jì)統(tǒng)計(jì)》。這本書淺顯易懂,不會像國內(nèi)教材那樣枯燥乏味,每一章節(jié)都會含有一個具體的商業(yè)案例,大量的習(xí)題(雖然習(xí)題很弱)。每天學(xué)習(xí)1-1.5個小時,差不多30天能學(xué)完。最難的章節(jié)屬于假設(shè)檢驗(yàn)以及線性回歸那里,單也僅僅是相對的難而已,比起機(jī)器學(xué)習(xí),它毛都不算!

如果你是理科生或者數(shù)學(xué)功底不錯的話,我推薦你學(xué)習(xí)陳希孺的《概率論與數(shù)理統(tǒng)計(jì)》。很傳統(tǒng)很經(jīng)典的中國式教材,但是寫的內(nèi)容實(shí)在是好,前后銜接的恰到好處,由淺入深,概念解釋的直白明了,涵蓋了以后機(jī)器學(xué)習(xí)所需要的幾乎全部概率知識。缺點(diǎn)就是純教科書班的書籍,讀起來略微枯燥。


推薦星級

《商務(wù)與經(jīng)濟(jì)統(tǒng)計(jì)》 五星

《概率論與數(shù)理統(tǒng)計(jì)》 四星

建議學(xué)習(xí)周期:40



微積分

我只推薦一本書《普林斯頓微積分讀本》和一門簡單的課程《微積分的本質(zhì)》。我看過很多微積分的教材,包括同濟(jì)的《微積分》以及《托馬斯微積分》,但是都沒有《普林斯頓微積分讀本》更能吸引我的注意力。這本書淺顯易懂,書籍看起來很厚,但是學(xué)習(xí)起來并不費(fèi)力,作者的寫作觀點(diǎn)很友好,風(fēng)格較為輕松卻又不失嚴(yán)謹(jǐn)。建議如果基礎(chǔ)較差的同學(xué)可以重頭來過,好好的跟學(xué)一遍!我對泰勒展開式那一章節(jié)尤為記憶深刻,作者先是引入了一個及簡單的案列,接著就此案列進(jìn)行了深入的講解,一目了然。

《微積分的本質(zhì)》是三藍(lán)一棕出品的簡短視頻,通過酷炫的動態(tài)PPT演示了微積分的過程。但是真的僅僅是入門級別的視頻,就當(dāng)做課外讀物學(xué)一學(xué)吧


推薦星級

《普林斯頓微積分讀本》 四星

《微積分的本質(zhì)》 四星

建議學(xué)習(xí)周期:60


線性代數(shù)


線性代數(shù)到底怎么學(xué),我真的一直沒有找到很好的方法。我看過很多的書籍和視頻,包括同濟(jì)的那一本很薄的書,我一度以為那是本很好的教材,直到我在網(wǎng)易云課堂上學(xué)習(xí)了MIT的線性代數(shù)課程,像是打開了新世界的大門,原來線性代數(shù)背后的理論并不是憑空記憶而來的。后來又學(xué)習(xí)了《線性代數(shù)的本質(zhì)》這套課程,那令人震驚的動畫演示線性變換至今令我記憶猶新!


推薦星級

MIT線性代數(shù)》 五星

《線性代數(shù)的本質(zhì)》 五星

建議學(xué)習(xí)周期:20



計(jì)算機(jī)技能


PYTHON

如果你想入門計(jì)算機(jī),首先應(yīng)該先學(xué)一門語言,它會是你使用最多的一個工具。而PYTHON幾乎是最簡單的最適合新手學(xué)習(xí)的一門語言。我個人認(rèn)為學(xué)習(xí)PYTHON需要包含以下幾個方面:

  1. PYTHON的基礎(chǔ)語法

  2. 使用PYTHON掌握基礎(chǔ)的計(jì)算機(jī)編程思路

  3. PYTHON用于數(shù)據(jù)處理和數(shù)據(jù)分析


任何一門語言的學(xué)習(xí)都離不開語法本身,Python也不列外,但相對于其他語言,Python語法就簡潔明了。我看過很多PYTHON入門的書籍,要說好的我就只推薦兩個,一本是《LEARN PYTHON THE HERD WAY》,另一本是《PYTHON編程:從入門到實(shí)踐》。如果你每天抽出兩個小時來學(xué)習(xí),一般兩個星期就能搞定PYTHON語法。


接下來我推薦學(xué)習(xí)的可能與你在其他地方看到的不一樣,我希望你能學(xué)習(xí)一些計(jì)算編程思維,再直白一點(diǎn)就是學(xué)習(xí)一點(diǎn)數(shù)據(jù)結(jié)構(gòu)和算法。 隨著我自己工作經(jīng)歷的增長,越來越發(fā)現(xiàn)編程思維(數(shù)據(jù)結(jié)構(gòu)和算法)對于工作以及思考問題的重要性,所以直到現(xiàn)在我仍然在不斷的惡補(bǔ)之前落下的數(shù)據(jù)結(jié)構(gòu)和算法。因此你不妨在一開始學(xué)習(xí)階段就來彌補(bǔ)一些!

我給你推薦的是一本書以及這本書配套的課程,這是我看過的最好的教程: PYTHON編程導(dǎo)論》以及EDX上開設(shè)的專門的對應(yīng)視頻課程。這套教程除了講解PYTHON基礎(chǔ)知識外,還會講解常用的編程算法,包括查找,排序,搜索等等,可以說是相當(dāng)好的入門計(jì)算機(jī)課程。


PYTHON是一門非常綜合的語言,被發(fā)明出來也不是為數(shù)據(jù)挖掘或者數(shù)據(jù)分析專用的。PYTHON能夠成為“AI第一語言”得益于它眾多的第三方庫,因此我們還需要學(xué)習(xí)一下專門用來進(jìn)行數(shù)據(jù)處理的第三方庫:pandas、numpy、matplotlib。唯一推薦的書籍就是pandas作者寫的《利用PYTHON進(jìn)行數(shù)據(jù)分析》,這本書介紹了幾乎三個庫主流的用法,相當(dāng)實(shí)用。唯一的缺點(diǎn)就是編排比較亂,學(xué)的很零散,所以需要你自己好好的總結(jié)一番!


推薦星級

《PYTHON編程:從入門到實(shí)踐》 四

PYTHON編程導(dǎo)論》 五星

《利用PYTHON進(jìn)行數(shù)據(jù)分析》4星

建議學(xué)習(xí)周期:30


機(jī)器學(xué)習(xí)


我們宗旨是成為一名算法工程師,現(xiàn)代意義上算法工程師一般就是指機(jī)器學(xué)習(xí)工程師。在第一年的夯實(shí)基礎(chǔ)階段,我們并不能完全深入的學(xué)習(xí)完機(jī)器學(xué)習(xí)的知識,但是入門還是一定要具備的。機(jī)器學(xué)習(xí)數(shù)學(xué)基礎(chǔ)三板斧:微積分、線性代數(shù)、統(tǒng)計(jì)概率! 所以你可以看出來,為什么我花了很大篇幅和你講要認(rèn)真學(xué)習(xí)這三門課!


那么入門階段該怎么做呢? 很簡單,一門課一本書。


一門課

吳恩達(dá)《MACHINE LEARNING》公開課


這真的是地球上最好的機(jī)器學(xué)習(xí)入門課程了!我無法用文字來推薦它,總之你就記得學(xué)習(xí)機(jī)器學(xué)習(xí)看著門課程就絕對錯不了。網(wǎng)上一大堆關(guān)于這門課的資料、評價、筆記等等,數(shù)不勝數(shù)!


一本書

Introduction to Data Mining(數(shù)據(jù)挖掘?qū)д?/span>)


很遺憾,我并沒有推薦周老師的書,也沒有推薦韓老師的書(如果你不認(rèn)識兩位老師,那就忽略這句話)。 數(shù)據(jù)挖掘?qū)д撌俏覍W(xué)習(xí)過的最好的入門級別的教材,與其它一上來就開始講解模型的書籍相比,這本書會從最開始的數(shù)據(jù)準(zhǔn)備,數(shù)據(jù)處理講解,給與新手最好的入門方式。其內(nèi)容板塊安排的又是相當(dāng)?shù)暮侠?,尤其是決策樹和異常檢測這兩章,我覺得是相當(dāng)?shù)木?,手把手教你推?dǎo)一個決策樹!有一個章節(jié)我覺得可以不學(xué),就是關(guān)聯(lián)分析,似乎可能好像仿佛大約已經(jīng)沒人使用這種技術(shù)了,雖然我當(dāng)初仔細(xì)的學(xué)習(xí)過,而且這本書寫的也相當(dāng)?shù)暮?,但是真的沒應(yīng)用過,都快忘記的差不多了。請君自行判斷~




文:小明

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點(diǎn)擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多