刷完演算法導論和leetcode,能找到什麼水平的工作?

我大學非計算機專業,只學過C語言,畢業後在銀行從事大型機編程,期間斷斷續續看完了CSAPP,現已離職,然後靠自學刷完了《演算法導論》和leetcode,請問我現在能找到什麼水平的工作?

《演算法導論》習題代碼:GitHub - Firkraag/algorithm: implementation of algorithms in CLRS

leetcode代碼地址:GitHub - Firkraag/leetcode

因為趕進度,所以代碼寫得比較亂,請見諒

—————9月20日更新—————————————————

認真看了大家的意見,本來準備接下來看編譯原理,現在決定先消化看過的書。

目前在重看CPL, 看完之後會做一個項目。

CPL代碼:GitHub - Firkraag/cpl


我只刷了一半算導,leetcode hard以下不要錢的全清,今年正好找工作

目前結果還不錯

說實話,國內工作最起碼就我面試經歷看來,不太看重演算法,而是實踐。

當然,演算法也是必須跨過的門檻。

但是還有,網路編程,系統編程,操作系統,網路協議,並發編程,海量數據處理。這些體位你也需要解鎖。

很多時候面試題是告訴你現在我要在系統上做一個什麼東西,你給我一個解決方案,上面說的那些你不懂,很多時候就會毫無想法。

據說國外只考演算法,沒面過,不知道。

其實面試的時候你所精通的語言是什麼也是另一個不那麼重要的問題。。。


遇到了知音, 我在大學時為了考高級程序員, 也是刷數據結構的習題, 後來工作後發現這個東西對邏輯思維的訓練非常的好, 工作中只要不是設計複雜演算法,基本不會難住你。

我經常把數據結構和演算法比作內功, 語言比作招式和武器

很多人都是先練招式,再練內功(常常練不好,或者沒時間練)

很明顯你走了不同尋常路, 我覺得你就像一個高手,內力無比強大但是卻無處可以發泄 :-)

我看你已經從銀行辭職,拋棄了大機這個非常狹窄的領域, 是不是想走向更加通用的應用層編程? 如果是, 建議接下來應該是練練招式, 挑一門計算機語言作為主修的武器,學習類庫,框架, 然後多做項目歷練, 能夠在應用層面用起來, 畢竟工作中更重要使用這些招式把需求轉化為代碼。

另外想在軟體行業有更大的發展, 計算機的基礎還需要不斷補強, 光看CSAPP不夠,推薦看《操作系統概念(恐龍書)》《計算機網路:自頂向下的方法》,《資料庫系統概念》等基礎書。


感覺就缺個學位了,題主要不要考慮去混個master學位,否則找工作還是有點麻煩的,大家都是俗人。


如果在北美,再拿個碩士學位,十萬起年薪還是有希望的。

如果在國內,能不能拿到面試是個問題,拿到以後花樣體位的面試也是個坎兒。


這個關係真不大……

只能說面試的時候,如果問你演算法題,基本都是那些,然後因為你刷過,輕輕鬆鬆答了題 加上點顏藝 裝作自己沒見過這種題 現場寫出來的ˊ_&>ˋ

從簡單到難一點的,都考你一道,然後你都做過,當然都能答出來。再聊點別的,offer不就有了。

這跟你的代碼水平關係不大,不過既然你都刷了,說明你還是不錯的。起碼超越了沒刷過題寫不出來的,就是層篩選作用。起碼還可以證明你還是可用之才,懂點啥對不對。

結論就是,面試官問的演算法題基本都是那上面的,如果你刷了一些也懂得融會貫通,那麼演算法題基本上都可以寫出來,再有一點相關知識貯備,offer妥妥的。

ps 題主問的是自己能找到什麼水平的工作。 那麼再補充一點。找工作這個事情,首先是面試,不同的公司對你學歷或者工作經歷都是有一定程度的要求的,這是一層篩選。其次,如果你硬實力,也就是演算法和崗位相關的知識貯備都過了,那麼還有軟實力,還有你個人的運氣,和團隊招人的要求,招人是看人家缺什麼樣的坑位,或者就缺個漂亮妹子來調節氣氛也不一定(′?_?`)

所以無法斷論題主能找到啥樣的工作。要不然貼一下簡歷看看?


只刷過90道leetcode,演算法導論看了一點點。

已經拿到BAT中的兩家以及若干公司offer,不過這是校招生,社招的話可能還要諮詢hr


佩服樓主的耐心和毅力,我刷過一段事件的leetcode,覺得對思維的訓練真的很大的幫助。

現在看自己以前寫的代碼,都覺得怎麼會用這麼蠢的演算法。。而且,對於刷演算法對數據結構的理解也會更深刻。

刷完這些,我覺得BAT的演算法崗應該沒問題了。我現在也在找工作,各種心酸。


題主的自學能力值得敬佩,能夠堅持自學刷題很難得。

下面從儘可能找到高一點水平的工作的角度切入談談。人往高處走,水往低處流,我想題主肯定是希望找到水平高一點的工作。那麼下面主要從兩個方面談談如何找到高水平的工作。

自身:

看了題主的情況,深度絕對是夠的,在國內互聯網行業這種有點浮躁的氛圍內,這種態度和學習深度都很夠了,但是還是缺乏一點知識廣度。畢竟是人去找工作,把自己塞進工作所要求的條條框框,而不是讓工作來適應個人的能力水平(除非是尖端人才,這種人想怎樣就怎樣),這就意味著有些能力可能用不上,有些地方可能需要一定的能力,所以會的更多選擇才會更多,在更多選擇中才能找到更高水平的工作。

另一方面來說,有的互聯網行業的工作是需要一個人扮演很多角色的,你多掌握幾種語言就比別人更有優勢,多懂一點數據結構、演算法等東西,思維也更加開闊。而且,在你找工作的時候,不一定就能夠找到一個剛剛好符合你的要求的工作,當你廣撒網投簡歷的時候,更多的知識能力可以很好地幫助你選擇到更加高水平的工作。況且,這至少能夠證明你能夠學很多東西,這就比很多人都要優秀了。

除此之外,很重要的就是實踐經驗,從實踐中復盤得到對自己一個較為全面的總體能力考察結果,輸出倒逼輸入,藉此補充知識點。

外界:

其實找工作不僅僅是自身優秀自身、業務能力強就夠了,面試技巧同樣重要,能夠將自己的能力水平完完全全展示出來,也是需要一定的技巧的。所以在這方面,一定要在在面試前多刷一刷《北美IT企業面試真題題庫》,看看《北美IT企業高頻面試題套路詳解》,學會舉一反三。

其次,就是多看面經,或者做一些《IT公司在線模擬測試題庫》 ,熟悉面試流程、面試內容,準備常規面試問題的回答,以及做好對面試公司的了解和工作計劃和分析,這些都是除了自身能力之外,短時間之內找工作中能夠大大提升命中率的重點。思考面試官想要的是什麼,如何告訴面試官為什麼選擇你,將自己匹配進工作職位的要求,等等,可以直接套用《程序員面試指導大全》上的一些應答方式。

最後,你已經有過一段工作經歷,面試中也很有可能會被問到系統設計相關的問題,這方面的內容說起來不難,但是真的在面試中碰到了卻是送命題,所以一定要過一遍《系統設計面試大總結》,增加自己面試的底氣。

總結:

上面說了這麼多,其實總結起來無非就是,在自己某些領域已經造詣較深的基礎上將自身的技能領域拓寬以更好地匹配職位需求,同時針對面試的環節鍛煉自己的解題技巧和面試技巧。


據說:看《演算法導論》,不做習題和思考題,不證明複雜度,都是在耍流氓

另外,樓主說學過c,非計算機專業

但我猜樓主應該是相關專業畢業

而且樓主沒有說明刷演算法導論之前,花在數學,數據結構,演算法和計算機基礎上的時間是幾年,學校里是不是搞過acm之類的,其他相關演算法書是不是都刷過

信息不全,給廣大的初看《算導》的人以很大的誤導


現在題主應該讀的書是 編寫可讀代碼的藝術了!


刷完了。。那你至少可以出本算導習題解答了

不對看了你的代碼就只有一些基本演算法沒有看到習題呢。。這還差得遠啦。。


我想說的是,工作有時候不是刷多少題或者做了多少準備工作就可以找到的,除了硬實力之外,學歷、運氣等也是影響求職的因素。

題主提到自己不是計算機專業出身,但是也學過C語言,從事過大型機編程,也看完了CSAPP,能證明題主有一點相關經驗。但是刷完演算法導論和LeetCode也不代表什麼,刷題多不代表你的代碼寫得就有多好,不能多加評論。之前還有聽我的主管說過幾個演算法大牛進來了,但是最後都搞到一塌糊塗,就因為他們只著重演算法的加強。

開頭找工作說開了也就是刷題和做項目,我畢業的時候靠著這兩個也拿到了不少大企業的offer。雖然情況和題主不太像,但也說出我自己的想法供大家參考一下。

  • 有意識的做一些項目,項目經驗很重要。當初面試的時候都有小小的提到自己做過的項目(雖然很多是自己做著玩),但是如果項目有趣或者足夠有技術含量,面試官也會對你更感興趣一點。準備的時候多去GitHub搗鼓幾個有趣的小項目也是很好的。比如,可以做一做安卓app項目、大數據、機器學習項目,這些都是非常棒的項目備選。
  • 雖然我說不是刷題就能找到工作,但是不得不說的是刷題不能少。無論是BAT等大公司,還是蘑菇街等小公司,面試中大部分考察的還是演算法知識。這個多刷刷 lintcode/leetcode/hackerank 就好啦,而且有很大概率在面試中遇到原題哦。我刷到了困難的70%bug free,我建議刷題的話要找那些可以輕易找到答案,最好是可以檢查程序錯誤的。但是lintcode/leetcode/hackerank 的題庫量是在太大了,大部分人是沒有那麼多時間全刷完的,因此要綜合條件挑適合自己的。比如,我自己的求職目標是百度、阿里、騰訊這樣的,我就專門刷《BAT高頻面試題題庫》,如果你想去美國的大公司,那就可以刷《北美IT企業面試真題題庫》。

其實想刷題這種也只是敲門磚而已,畢竟學生的項目經驗少,能問的不多也只有問問演算法啊數據結構這些,社招又要避免有人吹大牛夸夸其談,也只能考考演算法。所以刷題刷多了面試肯定好過很多,但是也只是面試,最終工作的是做項目。所以要記住不管你演算法多好都不能代表你就是一個好的程序員了。祝君好。


經驗了


佩服,演算法導論好難,翻不動


其實看崗位吧,bat 普通研發演算法崗位應該沒問題吧。要是多一點可以聊的項目經驗就非常穩了。


如果你在北美的話,我知道有人刷了一年題進Google的(全職刷題的樣子,作業全都丟給同學做就好了)


寫代碼過程中最忌諱的是什麼?總感覺最近太過於急於求成? - 編程

剛看完……貼過來。


如果你是一個有追求的人,下一步該補數學了。

看了題主的代碼,對於非計算機專業,挺不錯的。可以看出題主是有毅力和執行力的,也愛學習。BAT情況不清楚,但對國企,事業單位來說,一看專業,二看職稱。有沒有興趣考個計算機專業高級職稱,方便進入體制內?

找工作,要不然有錢,要不然有閑。體制內的工作,特別是IT方面的工作,真的很輕鬆。


推薦閱讀:

如何零基礎入門 Python?
計算機系,對比北京郵電大學和電子科技大學如何?
GitHub怎麼讀?
哪些APP非常適合程序員?
為什麼gitbook上的中文項目比例很高?

TAG:程序員 | 演算法 | 編程 | 演算法導論書籍 | Leetcode |