自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

入職優(yōu)秀科技公司,競爭性編程是必須的嗎?

新聞
我一直對身邊科技所能做到的事情充滿敬畏,直到后來遇到基礎(chǔ)編程,我才開始得以管中窺豹。讀大學(xué)之后,我逐漸意識到,在亞馬遜、微軟、谷歌和臉書這種每天都能在科技領(lǐng)域取得突破性進展的公司里,想成為一名軟件開發(fā)人員必須付出艱苦努力。

 本文轉(zhuǎn)載自公眾號“讀芯術(shù)”(ID:AI_Discovery)

我一直對身邊科技所能做到的事情充滿敬畏,直到后來遇到基礎(chǔ)編程,我才開始得以管中窺豹。讀大學(xué)之后,我逐漸意識到,在亞馬遜、微軟、谷歌和臉書這種每天都能在科技領(lǐng)域取得突破性進展的公司里,想成為一名軟件開發(fā)人員必須付出艱苦努力。

[[334610]]

大學(xué)生涯中,我印象最深的事情就是人們對競爭性編程的狂熱。第一年參加代碼俱樂部培訓(xùn)時,有人告訴我,如果想進入像谷歌這樣的公司,就必須在競爭性編程領(lǐng)域表現(xiàn)出色。于是后來我做了競爭性編程,主要是線上編程平臺Codechef的每月定期挑戰(zhàn),持續(xù)了大約6個月。

現(xiàn)在我的大學(xué)生活快結(jié)束了,也成功入職谷歌成為一名軟件工程師。我想談?wù)勎覍Ω偁幮跃幊痰目捶?,?zhǔn)備面試時應(yīng)該關(guān)注什么,以及競爭性編程是否真的是入職FAANG頂級科技公司的關(guān)鍵。

本文并非阻攔大家做競爭性編程,相反,我鼓勵那些不喜歡競爭性編程但希望提高自己解決問題能力的人申請大公司軟件開發(fā)人員職位。

什么是競爭性編程?

維基百科是這樣解釋的:競爭性編程是一種常通過互聯(lián)網(wǎng)或本地網(wǎng)絡(luò)進行的智力運動,參與者按照既定的規(guī)范編寫程序。

有很多求職心切的程序員為了面試而參加競爭性編程。作為大一學(xué)生,最初我和大多數(shù)朋友所聽說的競爭性編程都是這樣的:“進入谷歌或臉書這樣的公司的秘訣”。這聽起來太有吸引力了。

然而,直到我親身準(zhǔn)備過這些公司的面試之后,才認(rèn)識到這些想法中的謬誤。我會告訴你它為什么不是實際的解決方案。但首先,讓我們深入研究一下競爭性編程對大家有什么好處。

為什么競爭性編程這么有魅力!

在我短暫的競爭性編程旅程中,有一點是無法否認(rèn)的,沒有什么能取代那種你的解決方案被采納的感覺。無論是曠日持久的Codechef比賽,還是Codeforces的回合賽,這種感覺都是不可替代的。

我剛上大學(xué)便開始做競爭性編程,幾乎立刻就上癮了。各種各樣的問題,棘手的優(yōu)化以及隨之而來的腎上腺素激增,足以讓我六個月完全對它全情投入。

競爭性編程真正幫助到我的,是理解不同的數(shù)據(jù)結(jié)構(gòu)和算法的細(xì)微差別,以及基于不同語言的優(yōu)化如何讓自己走得遠(yuǎn)。還有最重要的,明白耐心對解決問題的關(guān)鍵意義。如果有人一起做競爭性編程你會收獲更多,因為你們可以互相學(xué)習(xí),讓這個過程更快速、更有趣。

此外,對于像臉書黑客杯(Facebook Hackercup )和谷歌全球編程挑戰(zhàn)賽(Google’s Code Jam)這樣的競賽,熟悉競爭性編程是一大優(yōu)勢。然而,除此之外也無太多實際作用了。畢竟,競爭性編程歸根結(jié)底是一項旨在更快解決更棘手問題的運動。

到底有什么問題?

在Codechef推出了自己的分工體系后幾個月,我暫別了競爭性編程。雖然分工體系本身并不是我退出的根本原因,但它確實是一個導(dǎo)火索。

對于一個剛開始編程的人來說,競爭性編程能帶來的學(xué)習(xí)經(jīng)驗絕對是驚人的。然而,初學(xué)者所能學(xué)到的特質(zhì)并不是競爭性編程所獨有的,而是在這個過程中廣泛地練習(xí)數(shù)據(jù)結(jié)構(gòu)和算法所帶來的。

我最終意識到了這點,也意識到整項運動會轉(zhuǎn)向以數(shù)學(xué)為重。到了一定難度后,這項運動終會轉(zhuǎn)向數(shù)學(xué)密集型領(lǐng)域,需要我們深入鉆研數(shù)論和幾何學(xué),門檻很高。

此時,這些題目不僅對我的面試準(zhǔn)備或軟件開發(fā)經(jīng)驗沒有幫助,而且作為一個競爭性編程程序員,僅僅為了保持我的等級和表現(xiàn)分?jǐn)?shù)而去付出額外的努力,會給我?guī)頁p失。雖然競爭性編程本身很有趣,但它非常耗時,并且收益嚴(yán)重遞減。

那我如何備戰(zhàn)谷歌面試的呢?

“你必須通過Codechef來搞定谷歌和臉書的面試”,這樣的想法已經(jīng)影響了很多人。我認(rèn)識的一些人,盡管他們解決問題的能力很優(yōu)秀,但因為不是競爭性編程的忠實擁躉,所以他們甚至都不會試著申請這些公司。

作為一個很早以前就放棄競爭性編程但成功通過了面試的人,相信我,即便你不深入競爭性編程的牢籠也能通過面試,很多真實成功的例子都能證明這一點。

如上文所述,競爭性編程真正幫助到我的,是我對數(shù)據(jù)結(jié)構(gòu)和算法的基礎(chǔ)理解與親身實踐。然而,競爭性編程的目的并不集中于此。

像HackerRank和Leetcode這樣的資源擁有大量有價值的練習(xí)題,題目根據(jù)難度適當(dāng)排序,也根據(jù)概念進行了標(biāo)記,方便大家了解并練習(xí)所需的主題。我就是主要用這些資源來準(zhǔn)備谷歌編碼面試的。

Hackerrank為代碼零基礎(chǔ)的人提供了一個特殊的30天編碼軌道,使其可以獲得適當(dāng)?shù)氖煜ざ?。此外,由于這些網(wǎng)站的數(shù)據(jù)結(jié)構(gòu)和算法更多是為了幫你在面試中表現(xiàn)更好,因此你不需要特地花更多時間去搜尋以往面試中的例題就能達到熟悉題目的需求。

Leetcode和Hackerrank這樣的平臺雖然與競爭性編程網(wǎng)站有共同之處,比如在用戶界面、提高解決問題能力方面,以及需要使用數(shù)據(jù)結(jié)構(gòu)和算法優(yōu)化時間復(fù)雜度和空間復(fù)雜性的問題等,但相似點也就僅止于此了。

我記得我讀過Quora網(wǎng)站上的一個答案,它的比喻非常妙:

“你的想法好比通過騎自行車來訓(xùn)練跑步。誠然,這比躺在床上看電視要好得多,而且很多跑步也需要用到的器官系統(tǒng)也參與其中。如果你在沒有運動背景的情況下開始訓(xùn)練,你或許會看到跑步有很大進步。但同時,其實這不是‘正確’的訓(xùn)練方式,職業(yè)運動員不會這么做的。”

同樣,雖然競爭性編程囊括了一些面試準(zhǔn)備基礎(chǔ),并且LeetCode在某些方面與Codechef和Codeforces等競爭性編程網(wǎng)站相似,但它們本質(zhì)上是兩個完全不同的東西,關(guān)注的是兩個完全不同的用戶體驗?zāi)繕?biāo)。

但是LeetCode是不是足夠?

雖然Leetcode并不能實際解決面試問題,但它能幫你積累面試經(jīng)驗。同樣地,把時間投入到Y(jié)ouTube上的可用資源中,用Back toBack SWE和Nick White這樣的頻道也可以更好領(lǐng)悟如何解決問題,提高解決問題的能力。

不必為了競爭性編程而沉浸在復(fù)雜的數(shù)論和幾何概念里,你可以在實際的軟件開發(fā)項目上更好地利用時間。如果想進入網(wǎng)絡(luò)和/或應(yīng)用程序開發(fā)領(lǐng)域,就更得親力親為——這些技能不僅能幫你獲得更好的實習(xí)機會,也可以獲得實踐經(jīng)驗,二者都將有助于打造出一份有吸引力的簡歷以申請FAANG和其他大公司。

申請簡歷上不需要競爭性編程經(jīng)驗!

關(guān)于競爭性編程的另一大誤區(qū)是:若在Codechef和Codeforces上加上你的評級,你就會成為公司招聘的首選。

雖然良好的評分證明了你在解決問題方面有豐富的經(jīng)驗,但它并不能掩蓋住你在進行編碼面試筆試時互動的不足。真實面試中的問題更主流,相對來說也比競爭性編程更簡單。但面試中的主要挑戰(zhàn)在于與面試官互動,并在面試中解釋你的思維過程。

另外,面試中的問題通常是開放式的,可供被面試者提出恰當(dāng)?shù)膯栴}以獲取更多信息,這也是一項你需要自己學(xué)習(xí)的技能。

單就申請而言,雖然競爭性編程等級有其優(yōu)勢,但實習(xí)經(jīng)歷、自己的項目,以及在像Hackathon大賽中獲得的榮譽,同樣也能豐富簡歷,也一樣會受到面試公司的高度重視。

你可以通過領(lǐng)英(LinkedIn)與招聘人員和內(nèi)部員工聯(lián)系,尋求推薦,你的領(lǐng)英檔案情況通常反應(yīng)出你的技能。很多人也傾向于通過公司的人才招聘網(wǎng)站直接申請。就我而言,我認(rèn)為我在三星的實習(xí)經(jīng)歷是谷歌首先考慮面試我的原因。

還應(yīng)該做什么準(zhǔn)備?

準(zhǔn)備面試的一個主要部分就是要多多進行模擬面試。谷歌只有一次面試機會,在Pramp等服務(wù)器上進行模擬面試,或在YouTube上觀看比如interviewing.io頻道的面試直播,可以讓你做好充分準(zhǔn)備,在實際面試中不緊張。

谷歌在YouTube上有一個完整的播放列表,專門讓求職者熟悉他們的招聘流程(https://www.youtube.com/playlist?list=PLllx_3tLoo4c_aR8RKOOnizL5LiUH02YF),其他大型科技公司通常也會借助博客、YouTube和領(lǐng)英使求職者更輕松方便。盡量利用互聯(lián)網(wǎng)上所有可用的資源,這些公司的現(xiàn)任和前任員工也會在GeeksForGeeks和LeetCode Discuss等論壇上發(fā)布面試經(jīng)驗。

所以,是時候糾正這個思想誤區(qū)了。想在科技公司當(dāng)軟件工程師,競爭性編程并不是必經(jīng)之路。曾經(jīng)因此繞道而行的求職者,該給彼此一個機會了!

 

責(zé)任編輯:華軒 來源: 讀芯術(shù)
相關(guān)推薦

2020-12-10 11:21:00

編程C ++程序員

2017-10-23 10:01:31

軟件交付大數(shù)據(jù)分析人工智能

2013-07-31 10:32:45

新人職場

2012-09-10 09:40:53

編程科技老板

2020-12-17 10:17:12

編程開發(fā)計算機

2021-07-14 06:57:54

人工智能AI劉慈欣

2020-11-01 09:05:16

函數(shù)式編程編程數(shù)據(jù)分析

2020-12-17 18:13:55

5G網(wǎng)絡(luò)華為

2019-08-09 17:53:41

戴爾

2021-03-29 08:20:51

入職后端官場

2013-08-29 14:28:42

谷歌Android小米

2014-12-02 10:09:05

硅谷比例

2014-12-02 10:11:21

硅谷程序員比例

2016-09-09 16:58:41

戴爾

2015-08-17 11:46:50

2015-04-07 13:23:09

2020-02-12 09:15:08

人工智能機器學(xué)習(xí)技術(shù)

2020-09-03 15:30:19

代碼開發(fā)程序員

2018-07-27 14:17:32

點贊
收藏

51CTO技術(shù)棧公眾號