還記得面試時被演算法支配的恐懼嗎?
<center> 面試造火箭,上班擰螺絲 </center>
大多數程式設計師心裡會想"總結的真精闢",當面試到演算法時,各種“跪”、“再跪”、“還是跪”......,多少人因為演算法而拿不到心儀的offer,演算法毀一生啊。
智力面試時代
現在演算法已經成為大廠面試的重中之重,甚至一些國外的大廠只面試演算法,為什麼會這樣呢?其實在早期,也就是微軟當老大的時候,大廠面試最愛考“智力題”,比如:
井蓋為什麼是圓的?
如何用3升和5升桶量取4升水?
有一對夫婦,先後生了兩個孩子,其中一個孩子是女孩,問另一個孩子是男孩的機率是多少
等等等等等等等等等等等等。
實在想象不出面試程式設計師還需要會“腦筋急轉彎”,不過按照當時微軟的半官方說法是:
計算機行業是一個新興的行業,前面沒有燈塔可以對齊,每天都有大量新鮮的問題需要解決,擁有
創新性
的員工是公司急需的,公司需要這些人去打破常規,創造奇蹟。不得不說擁有“創新性”的人才不僅是公司,甚至是全社會都急需的,但真理畢竟只掌握在少數人的手中,大神也屈指可數,公司需要這些高屋建瓴的人來掌舵,也需要普通的水手來划槳,做為普通人中的一員,我僅僅是來應聘“水手”的,我能踏踏實實、認認真真的完成領導交給我的任務,就像一個團隊需要“孫悟空”一樣的大神,也需要“沙僧”一樣踏踏實實幹活的人。
這樣選拔人才是否合理有待商榷,畢竟當時的網際網路是新興的行業,大家都在摸著石頭過河,從歷史的結果看,目前的微軟已經被Google、Apple等企業反超了。
演算法面試時代
隨著網際網路行業的高速發展,從業人員的專業能力越來越高,公司對像“沙僧”一樣能踏踏實實幹活同時具備一定解決專業問題能力的人越來越重視,解決專業問題能力是一個很寬泛的概念,反應力、敏銳力、溝通能力等等,說白了就是有動手解決問題的能力,為什麼現在很多公司面試有筆試甚至是直接上機寫程式碼,當下大部分面試人員面試前都刷題,準備的很充足,紙上談兵能力比得上“趙括”。
Linux 的創始人 Linus Torvalds 在 2000-08-25 給linux-kernel 郵件列表的一封郵件提到的:
Talk is cheap, show me the code
文明的解釋是:
能說算不上什麼,有本事就把你的程式碼給我看看。
通俗的解釋是:
屁話少說,放碼過來。
因此如何在短時間內找到專業能力和動手解決問題的能力的人?解決實際演算法問題是一個很好的學以致用的過程,不僅考察了專業能力,也考察了動手解決問題的能力,經典演算法和資料結構就那麼多,設計思想也就那麼多,如何用這些知識解決實際問題並不是想的那麼簡單,需要很強的邏輯能力。
這就是為什麼大廠都愛考演算法問題的原因,他們需要在短時間內判斷面試者是否是他們需要的人才,那演算法不好的人就一定不是人才嗎?不,這是一個機率問題,從機率學上來說,懂演算法的人要比不懂演算法的人更適合他們。那放棄那些演算法不過關的人他們不後悔嗎?說句扎心的話:他們不在乎,大廠的簡歷源源不斷,這個不行,馬上下一個。
除非你做出了非一般的成就,他們會因為沒有錄取你而感到惋惜。不知道大家記不記得 Max Howell,這位就是發明
Homebrew
的大神,這位牛人曾經就因為一個演算法問題而被Google拒絕,讓我們來看一看是多麼複雜的演算法題:給出一棵二叉樹,求這棵二叉樹的映象
其實就是翻轉二叉樹,這道題怎麼說呢?在Leetcode上級別被定義為‘easy’,沒錯,你沒有看錯,就是‘easy’,只要你答對這道題,就可以超越世界級大牛,問鼎碼林之巔。
這位IOS界的大牛就這樣折戟在沙灘上:
所以大家不要因為演算法面試不好而自我否定,面試本身就處於一個資訊不對稱的位置,面試官都已經知道答案了。 還有下面這位:
如何跨越演算法面試
在我看來,要想跨越演算法面試有2個方法:成為領域專家和理解演算法
先來說說第一種成為領域專家,讓公司不再把你當成是普通的求職者,當然想成為領域專家難度還是非常大的,不僅需要再某一領域深耕多年,還需要能拿出亮眼的成績,比如下面這位:
Java之父——詹姆斯·高斯林,用Java的童鞋一定都很熟悉這位天才,他出生於加拿大,是一位公認的計算機程式設計天才。在卡內基·梅隆大學攻讀計算機博士學位時,他編寫了多處理器版本的Unix作業系統,是JAVA程式語言的創始人。
再比如這位:
Python之父——Guido van Rossum,1982年獲得阿姆斯特丹大學的數學和電腦科學的碩士學位的他在7年後創立了Python語言。1991年初,Python釋出了第一個公開發行版。到今天,Python語言已經從眾多程式語言中脫穎而出成為最受歡迎的語言。
這樣的牛人,如果想去某一公司,面試流程肯定不一樣,做為普通大眾的我,未來10年或者20年,不知道能不能讓別人也稱我為“大牛”,至少目前我還不能讓公司為我單獨設計面試流程,演算法面試還是要經歷的,既然不可避免,就讓我們擁抱吧。
刷題刷題,刷出來的不僅是題,還有我們的思維,既要知其然,也要知其所以然,而不僅僅是完成題目+1。
最近2天Github上有一個非常火熱的開源庫,短短几天star已經3.4K了,這個開源庫整理了60多篇乾貨,目錄如下:
今天的文章對大家是否有幫助?如果有,請在文章底部留言和點贊,以表示對我的支援,你們的留言、點贊和轉發關注是我持續更新的動力!
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69964963/viewspace-2678154/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 那一天,我被Redis主從架構支配的恐懼Redis架構
- 那一天,手遊市場終於回想起了,被騰訊徹底支配的恐懼
- 還記得同桌的那個你嗎?
- 還記得程式設計師的我們面試時,背的Java葵花寶典麼?程式設計師面試Java
- 克服命令列恐懼症命令列
- 測試人員對程式設計天生“恐懼”麼?程式設計
- 金山遊俠、MUD、塞班,你還記得那些年的“過時玩意”嗎?
- @程式設計師,你還記得當年高考時的樣子嗎?程式設計師
- 還記得第一個看到的Flutter元件嗎?Flutter元件
- HI,還記得兩年前的微樂活嗎?
- 《密特羅德 生存恐懼》Fami 通評測:完美駕馭恐懼與安心間的微妙平衡
- 你還記得曾經風靡一時的中長尾市場嗎?
- 如何克服解決Git衝突的恐懼症?(Git移交提交記錄)Git
- 一行程式碼引發的恐懼行程
- 《密特羅德 生存恐懼》的千層套路
- 你還記得大明湖畔的oop原則嗎?OOP
- Hashtable 漸漸被人們遺忘了,只有面試官還記得,感動面試
- CSS面試要點!看完你還覺得你已經學好CSS了嗎?CSS面試
- 如何克服解決Git衝突的恐懼症?(序)Git
- 《暗夜長夢》CJ試玩報告:開啟心結 直面恐懼
- 《新石器時代》引發玩家情感記憶,你還記得“石器”精美的點卡嗎?
- 面試的時候被問“擅長前端還是後臺”應該怎麼回答?面試前端
- 「讀懂原始碼系列1」還在恐懼讀原始碼?看完這篇就不怕了原始碼
- 元宇宙的“吸金”時刻:大廠狂買、VC重金入場,恐懼又貪婪元宇宙
- 在玩恐怖遊戲時,到底是什麼讓你感到如此恐懼?遊戲
- Java面試被問到Dubbo,怎麼回答可以得高分?Java面試
- 恐懼華語歌壇入伏天費用胡椒
- 你還記得資料庫三正規化嗎?資料庫
- 位元組演算法小組彙總240道演算法LeetCode筆記,沒有比這更全的了-想要面試位元組!還是得刷演算法啊!演算法LeetCode筆記面試
- 倉儲機器人浪潮,催生出的是物流自動化革新,還是下崗恐懼?機器人
- [面試]記一次被問到煩起來的面試經歷。面試
- 面試演算法題記錄面試演算法
- 如何克服解決Git衝突的恐懼症?(Git分支策略)Git
- 面試官:你瞭解 vue 的diff演算法嗎?面試Vue演算法
- 睡眠加強記憶,但不包括不好的那些!科學研究發現,較短時間午睡並不會增加恐懼相關記憶
- 如何克服解決Git衝突的恐懼症?(Git高階篇)Git
- 讓我們看破恐懼!解析恐怖類遊戲的慣用套路遊戲
- 伺服器OCP網路卡|或許你也被大資料支配過嗎?伺服器大資料