久久国产成人av_抖音国产毛片_a片网站免费观看_A片无码播放手机在线观看,色五月在线观看,亚洲精品m在线观看,女人自慰的免费网址,悠悠在线观看精品视频,一级日本片免费的,亚洲精品久,国产精品成人久久久久久久

分享

OMG,為什么找工作總愛考算法啊

 小王曾是少年 2022-08-24 發(fā)布于江蘇

?文末附繞過算法考試進(jìn)大廠的方法(沒廣告)

01

????????相信很多同學(xué)最討厭的就是考算法題了,其實(shí)我也很討厭,大廠的算法題也是找工作時被吐槽最多的話題,。畢竟,在實(shí)際工作中,我們根本不可能從底層實(shí)現(xiàn)一遍經(jīng)典算法,。

但是,算法卻是大廠面試考察的重點(diǎn)。甚至有一些大廠只考算法e6ab88752a2d72eb820d3f4eb1b5621b.png,。

????????印象在我小初中的時代,微軟公司的面試題目往往被我當(dāng)做“科幻小說”來閱讀,畫風(fēng)如下:

  • 為什么鏡子中的景象是左右相反的,而不是上下顛倒的?

  • 如何井蓋為什么是圓的?

  • 如何把一座山從一個地方搬運(yùn)到另一個地方?

  • 5個海盜分100個金幣,。他們定了一個規(guī)則:從A開始給出分金幣的提議,然后其余的海盜投贊同或反對票,如果反對票數(shù)大于或等于贊同票數(shù),A就被丟進(jìn)海里,否則就按此提議分金幣;如果A被丟進(jìn)海里了,接著就輪到B提議,然后同樣按上述規(guī)則繼續(xù)下去。假設(shè)每一個海盜都是絕頂聰明的,而且他們的所有行為都是對自己最有利的,。請問這100個金幣是怎么分的?

????????總體而言,這些問題和算法的關(guān)系不大,說他們是“智力題”或許更合適,。因?yàn)楫?dāng)時計(jì)算機(jī)行業(yè)尚屬新興行業(yè),每天都會面對很多全新的問題,處理這些問題的方式也沒有一定之規(guī)??赡苁窃谶@種情況下,微軟希望選拔出最具有創(chuàng)造性的人才,可以靈活,創(chuàng)新地處理工作中遇到的各種問題,。

????????隨著時間的推移,計(jì)算機(jī)行業(yè)逐漸成熟,程序員也在呈指數(shù)級上漲。雖然創(chuàng)造力依然很有意義,但并不再是唯一的選拔人才的指標(biāo)了,。一個邏輯思維強(qiáng),基本功扎實(shí)的人,也能夠非常好地勝任程序員的角色,。


????????至此,互聯(lián)網(wǎng)大廠的面試進(jìn)入了第二階段,以算法問題為主。

????????實(shí)際上這并不是件壞事,因?yàn)檫@樣以后,普通人通過訓(xùn)練學(xué)習(xí)也可以進(jìn)入大廠,意味著計(jì)算機(jī)行業(yè)門檻降低,。一個行業(yè)門檻的降低,意味著這個行業(yè)可以成規(guī)模的擴(kuò)張,呈現(xiàn)出欣欣向榮的景象。

02

一個公認(rèn)的人才選拔模型,由三部分組成:

  1. 通用問題思考能力;

  2. 專業(yè)能力;

  3. 人品,三觀,。

????????拋開第2,、3條不談,通用問題思考能力就是把專業(yè)能力拿去,看一個人遇到一個非專業(yè)的問題,水平如何。

????????這是一個很大的范疇,想象力,創(chuàng)造力,記憶力等等,都能被包括進(jìn)去,。上面的“智力題”很大程度上是在考察通用問題思考能力,。

????????不幸的是,當(dāng)下大部分互聯(lián)網(wǎng)企業(yè)比較認(rèn)可的結(jié)論是:算法面試可以很好地同時顧及“通用問題思考能力”和“專業(yè)能力”的考察。

????????說算法問題可以很好地考察【專業(yè)能力】很好理解,。怎么算法就能很好地考察【通用問題思考能力】了?

????????因?yàn)?#xff0c;解決算法問題是一個典型的“學(xué)以致用”的過程,。對于計(jì)算機(jī)專業(yè)的同學(xué)來說,近乎大學(xué)前兩年,就已經(jīng)將基本的算法和數(shù)據(jù)結(jié)構(gòu)學(xué)習(xí)完了。數(shù)據(jù)結(jié)構(gòu)大體就那么多,經(jīng)典算法大體就那么多,。但是,面試者能否綜合這些知識,解決一個一個算法問題?大家都懂這其實(shí)并沒有那么簡單,。

????????我們在工作里也會經(jīng)常面對類似的情況,各類語言就擺在那里,各種 API 文檔上寫得一清二楚,各種開發(fā)工具都唾手可得,github 上各類開源項(xiàng)目應(yīng)有盡有。我們能否合理組合這一切,完成我們想要的功能?

????????解決算法問題,近乎就是這個解決問題模型的小小縮影,。

03

????????當(dāng)然,還有一類面試問題,可以更好地模擬這種“真實(shí)的問題”,那就是系統(tǒng)設(shè)計(jì)類問題,。比如:

  • 如何設(shè)計(jì)一個淘寶?

  • 如何設(shè)計(jì)一個百度搜索?

  • 如何設(shè)計(jì)一個抖音短視頻?

  • 如何設(shè)計(jì)一個微信?

  • 如何設(shè)計(jì)一個消息投遞服務(wù)?

  • 如何設(shè)計(jì)一個通知系統(tǒng)?

????????但如果僅僅考察系統(tǒng)設(shè)計(jì)問題,最大的缺點(diǎn)是容易流于表象。

????????比如,面對性能問題,我們可以使用緩存機(jī)制。但是,具體在實(shí)現(xiàn)一個緩存機(jī)制的過程中,可能會出現(xiàn)什么問題,僅僅靠說肯定是不夠的,。

????????面試的時間是寶貴的,所以面試官不可能讓每一位同學(xué)都真正實(shí)現(xiàn)一個完整的緩存機(jī)制,。因此,對于系統(tǒng)設(shè)計(jì)問題的考察,通常很難觸及到代碼層面

????????對于程序員來說,正確地實(shí)現(xiàn)代碼,比知道幾個諸如緩存這樣的名詞重要多了,。很多人說起這樣的概念頭頭是道,但真的寫起代碼來,就原形畢露了,。

a397676e447468ea91e50279e51ea54d.png

????????算法面試相較而言,雖然問題規(guī)模會更小,問題本身也更有局限性,但能考察出程序員真刀真槍寫代碼的能力

04

????????就算是算法問題,相信大家也都有體會,。對于一個問題,描述它的解決思路是容易的,但真要落實(shí)到代碼,就不那么容易了,。

????????對于一個具體的工程設(shè)計(jì)問題,沒有受過專業(yè)訓(xùn)練的人很容易忽略復(fù)雜的細(xì)節(jié),將問題想簡單。蓋一個房子不過是建四面墻,上面加個屋頂而已,這里面包含了諸多復(fù)雜的工程問題,。所以外行看來很簡單的問題,實(shí)際上是很復(fù)雜的,。

比如:

????????排行榜不就是排個序嗎?

????????但能否達(dá)到性能標(biāo)準(zhǔn)?

????????搜索引擎不就是把互聯(lián)網(wǎng)上相關(guān)的信息展現(xiàn)出來嗎?

????????但是怎么定義“相關(guān)信息”?

????????微信支付不就是掃碼然后付款嗎?

????????但是怎么避免網(wǎng)絡(luò)波動帶來的支付失敗問題?

????????Kruskal 最小生成樹算法,思想非常簡單:對所有邊排序,之后從小到大選邊,只要和已有的邊沒有形成環(huán),就選擇,否則拋棄。

????????落實(shí)到具體代碼中,怎么判斷“是否和已有的邊形成環(huán)”?

?在歷史上,Kruskal 算法的思想很早就出現(xiàn)了,直到人們意識到可以用并查集進(jìn)行環(huán)檢測之后,它才成為了一個實(shí)用的算法,。

????????所以,程序員的核心價值,是具體用代碼實(shí)現(xiàn)出功能,而不是侃侃而談思想或者概念,。

05

????????當(dāng)然如果遇到真才實(shí)學(xué)的面試官,面試者隨便吹幾個概念,其實(shí)也不可能蒙混過關(guān)。有經(jīng)驗(yàn)的面試官一定能深入問出面試者的水平,。但這對面試官的要求太高了,。

????????高水平的程序員,他的主要時間應(yīng)該用來完成工作,而不是去面試。

????????這樣一來,算法面試的另一個優(yōu)勢自然而然就出來了:面試官好準(zhǔn)備,。

????????對于系統(tǒng)設(shè)計(jì)問題來說,面試官的水平要遠(yuǎn)遠(yuǎn)高于面試者才能真實(shí)地鑒別出面試者的能力,。算法就不一樣了,即使面試官的算法水平低于面試者,也可以進(jìn)行考核。因?yàn)槊嬖嚬倏梢灾苯涌创鸢?#xff0c;理解清楚解題思路和代碼就行,。

正因?yàn)槿绱瞬艜霈F(xiàn):

cf662a46f62ef85ced0cc1e4062323fb.png

????????一個算法面試官問你一個算法問題,你沒做出來問題不大,這并不代表他比你強(qiáng),。因?yàn)槟銈兲幱谛畔⒉粚Φ鹊奈恢谩?/p>

06

當(dāng)然算法面試還有更多優(yōu)點(diǎn)。

  1. 和語言無關(guān):不管是編譯型語言,還是解釋型語言;不管是前端還是后端語言,都能用來解決算法問題;

  2. 對硬件條件要求低:并不需要非常特定的環(huán)境或者配置;在公司的會議室可以完成,走在路上能完成,面對面可以完成,遠(yuǎn)程也可以完成,。拿張紙都可以開始;

  3. 使用算法問題,可以很容易地比較面試者的水平差異,。其他領(lǐng)域的問題,很難像算法問題一樣,在不同難度級別上,產(chǎn)生這么多看似完全不重復(fù)的問題。不管是深度還是廣度,不管是簡單的還是難的,總會有合適的算法問題讓面試官選擇,以測試出你的水平上限;

  4. 正因?yàn)樗惴▎栴}的選擇很多,所以使用算法面試,非常容易成規(guī)模地進(jìn)行招聘,。在一段時間里進(jìn)行幾百場面試,題目不會重樣,。這樣,避免了泄題的問題。


但是算法題最大的缺點(diǎn),就是容易漏過人才,。不擅長算法的人不意味著不勝任計(jì)算機(jī)專業(yè)的工作,。

????????那大廠錯過了人才怎么辦?

????????他們可能并不在乎6a800ee660fd0edf2eea5addbcec3dec.png950266e83f08c99d7a9b42a96e3cd281.png694523427a3ef57e62f4291ec6fdc0a0.png

????????反正有簡歷源源不斷地涌進(jìn)來,他們只要招聘到足夠數(shù)量滿足自己需要的人就可以了。

????????通常來講,擅長算法的人,近乎都能夠很好地勝任軟件工程師的工作,。反之,不擅長算法的人,雖然有可能是人才,但更加可能不是人才,。

07

????????很多小公司面試不考算法的原因,是因?yàn)樗麄儾恍枰疾?span style="color:#4da8ee;">通用問題解決能力。小公司更注重專業(yè)能力的考察,。能干活最重要,。他們并不會接觸到那么多創(chuàng)造性的問題,。

????????招聘領(lǐng)域?qū)<視r雖然也有算法,但難度明顯降檔,最典型的就是 Google 在面試 Homebrew 的作者 Max Howell 的時候,給出的算法面試題“翻轉(zhuǎn)二叉樹”。這個問題在 Leetcode 上就是一個 easy ,然而他并沒有寫出來f6fbebde383b38d9c19ba389cad938fd.png

d7c00694d7f2455ae38775121c843561.png

08

????????所以就要揭曉我們究竟要怎么樣才能不考算法就進(jìn)入大廠,當(dāng)然就是成為領(lǐng)域?qū)<?/span>,。讓企業(yè)不能把你當(dāng)做是一個普通的求職者,。

????????之前有一個清華一個學(xué)霸,在自己寫的CPU上運(yùn)行自己寫的操作系統(tǒng),這樣的人才,大廠這不分分鐘給搶了,誰還在乎你算法題寫得好不好啊。

544598f13f0542fb92feb9f58be7a15b.png

????????不過話又說回來了,成為領(lǐng)域?qū)<疫€是比掌握那些基本的算法面試問題要難的,。但很多時候我們對現(xiàn)實(shí)不滿,苦苦追求其他捷徑,。

????????再但是,其他的路其實(shí)是更艱苦的路。而我們總?cè)菀缀雎?span style="color:#fe2c24;">擺在眼前的,其實(shí)已經(jīng)是捷徑了,。

(不說了,我去練習(xí)算法了)


這里是小王,幾段文字,分享生活,。

    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多