99999久久久久久亚洲,欧美人与禽猛交狂配,高清日韩av在线影院,一个人在线高清免费观看,啦啦啦在线视频免费观看www

熱線(xiàn)電話(huà):13121318867

登錄
首頁(yè)精彩閱讀谷歌求職記:我花了八個(gè)月準(zhǔn)備谷歌面試
谷歌求職記:我花了八個(gè)月準(zhǔn)備谷歌面試
2016-12-23
收藏


的確如標(biāo)題所言,為了準(zhǔn)備 Google 軟件工程師的面試,我花了數(shù)以千計(jì)個(gè)小時(shí)讀書(shū)、寫(xiě)代碼、觀看計(jì)算機(jī)科學(xué)相關(guān)的講座。


如果你對(duì)我的面試計(jì)劃有興趣,可以從我的 github 項(xiàng)目 上查看計(jì)劃。

丨這個(gè)計(jì)劃是怎么產(chǎn)生的呢?

我中學(xué)時(shí)期就開(kāi)始編程,但是大學(xué)卻選了經(jīng)濟(jì)學(xué)。這是因?yàn)槲覔?dān)心畢業(yè)時(shí)會(huì)有太多程序員找工作?,F(xiàn)在想想我錯(cuò)大發(fā)了。

后來(lái)為了稱(chēng)為一個(gè)程序員我加入了軍隊(duì),但是招聘人員卻把我送到了軍事情報(bào)處,于是我花了一年學(xué)習(xí)漢語(yǔ),又在韓國(guó)服役了兩年。

在退役前我試著重新拿起鍵盤(pán),卻發(fā)現(xiàn)物是人非,區(qū)別太大了。我從初中到高中一直使用的是 BASIC。但是回歸后使用的是 C++,這兩者間差別太大了,一時(shí)間我無(wú)法適應(yīng)。

但是我很喜歡做網(wǎng)站,那會(huì)兒使用的還是 WordPress。我不懂怎么從零開(kāi)始搭建一個(gè)網(wǎng)站。

在退役后,我決定在韓國(guó)再留一年,教英語(yǔ)。同時(shí)不忘初心,晚上、周末都用來(lái)學(xué)習(xí) Web 開(kāi)發(fā),用的是 Perl, HTML, CSS (這在那會(huì)兒是個(gè)新生物), JavaScript 和 SQL。

在經(jīng)過(guò)一年高強(qiáng)度的學(xué)習(xí)后,我得到一份在西雅圖編程的工作,從此以后我就待在西雅圖了。



從此以后我做了 15 年 Web 開(kāi)發(fā)者。我創(chuàng)辦了三家公司,其中兩家至今還在盈利。這些年我在大公司、小公司都待過(guò),見(jiàn)證、助力過(guò)創(chuàng)業(yè)公司的啟動(dòng)和成長(zhǎng),也招募、管理過(guò)團(tuán)隊(duì),也當(dāng)過(guò)產(chǎn)品經(jīng)理,設(shè)計(jì)師,市場(chǎng)人員和 CEO。

在這個(gè)過(guò)程中我收獲了很多,也算是比較成功。但是還差得很多。

丨職業(yè)方向的改變

還記得我錯(cuò)選經(jīng)濟(jì)學(xué),沒(méi)拿到計(jì)算機(jī)學(xué)位那部分嗎?最終有所改變。

工作幾年后,我覺(jué)得我已經(jīng)大成了,去哪家公司都妥妥的,畢竟我是一位“全棧工程師”。

然而在 2013 年找工作時(shí),我意識(shí)到自己原來(lái)差的這么多。

過(guò)去那些年我花了太多時(shí)間追尋金錢(qián),甚至空余時(shí)間也在運(yùn)營(yíng)公司,這讓我的技術(shù)止步不前。我的技術(shù)棧有些跟不上時(shí)代了。

過(guò)去那些年我的技術(shù)一直是夠用就行了。雖然技術(shù)面比較廣,卻沒(méi)有任何一個(gè)方向稱(chēng)得上專(zhuān)家。

別會(huì)錯(cuò)意了,我想找到工作還是沒(méi)問(wèn)題的,只不過(guò)不是我想要去的技術(shù)或者領(lǐng)域。我還是可以被一些技術(shù)棧不是很新的公司聘用的,給的待遇也不差,但是我對(duì)那樣的前景無(wú)法感到興奮。

我的這種“差得很多”的自我認(rèn)識(shí)在去年一次找工作時(shí)達(dá)到了極點(diǎn)。我對(duì)一家風(fēng)投投資的本地創(chuàng)業(yè)公司工作很感興趣。但是由于我沒(méi)有計(jì)算機(jī)學(xué)位,不具備這個(gè)學(xué)位掌握的技術(shù)和知識(shí),導(dǎo)致我最終沒(méi)有機(jī)會(huì)。

那時(shí)我一直在我公司中全職工作。

在 2016 年初,我覺(jué)得是時(shí)候做出改變了,從 Web 開(kāi)發(fā)者到軟件工程師。為了在幾個(gè)月內(nèi)掌握計(jì)算機(jī)學(xué)位學(xué)習(xí)的知識(shí),我需要刻苦學(xué)習(xí)和練習(xí),雖然長(zhǎng)路漫漫,但我相信,一旦成功,我就會(huì)進(jìn)入一段新的職業(yè)生涯。

有人可能覺(jué)得 Web 開(kāi)發(fā)者和軟件工程師沒(méi)什么區(qū)別。它們都需要編程和技術(shù),但是軟件工程需要更多知識(shí),比如數(shù)據(jù)結(jié)構(gòu)和算法,編譯型語(yǔ)言,對(duì)內(nèi)存的關(guān)注,理解不同的代碼和架構(gòu)對(duì)運(yùn)行機(jī)器的影響。

大公司招聘軟件工程師時(shí),期望候選人掌握這些知識(shí)。

我向在 Google 工作的一位朋友咨詢(xún)了關(guān)于在 Google 工作的問(wèn)題,也讀過(guò)《How Google Works》,對(duì) Google 有了一定的了解。

偶然一次機(jī)會(huì),還得到一份 Google 面試候選人的指導(dǎo)筆記,這成為我學(xué)習(xí)計(jì)劃的基礎(chǔ)。

Google 是一個(gè)非常棒的公司,在意識(shí)到這一點(diǎn)之前,它就已經(jīng)是我的目標(biāo)。

丨為什么我的目標(biāo)是 Google


目標(biāo)設(shè)到月球,即使失敗,也能落到眾星之間。

Google 的門(mén)檻非常高,他們只想招聘最棒的人才,所以我把目標(biāo)設(shè)定的高一點(diǎn),即使最后沒(méi)去成 Google,去別的公司應(yīng)該也沒(méi)什么問(wèn)題。

而且,隨著對(duì) Google 的了解越深,我對(duì)它的渴望就越發(fā)強(qiáng)烈。

Google 有很好的“招培育留”氛圍。簡(jiǎn)單地說(shuō),Google 選用聰明、有創(chuàng)造力的人,然后把他們照顧得很好。Google 獎(jiǎng)勵(lì)能創(chuàng)造價(jià)值的人,鼓勵(lì)大膽創(chuàng)新,給員工自由,讓他們?yōu)橛脩?hù)做出好的決定。

Google 的招聘流程經(jīng)過(guò)多年調(diào)整,招聘以聰明、激情為準(zhǔn)。腦力測(cè)驗(yàn)早就不用了,候選者的編程能力,技術(shù)知識(shí),是否“夠谷歌”(這個(gè)詞蘊(yùn)含的內(nèi)容太多了…)。

Google 的管理也很不一般。他們的管理非常寬松,相信工程師可以做正確的決定。對(duì)雇員的信任使得 Google 的管理角色不同于平常公司。此外,管理層不能單方面決定雇傭、開(kāi)除或者提拔一個(gè)員工,大多數(shù)重要的決策都需要由委員會(huì)投票決定,這樣可以降低風(fēng)險(xiǎn)。

Google 的人力資源部一直在進(jìn)步,他們根據(jù)數(shù)據(jù)和員工反饋來(lái)提升評(píng)估系統(tǒng),這個(gè)系統(tǒng)包括招聘、提升、獎(jiǎng)勵(lì)等內(nèi)容。

我的天,Google 的優(yōu)點(diǎn)太多了。我曾去過(guò)一次 Google 的辦公室,我本來(lái)的期望就很高,結(jié)果發(fā)現(xiàn)那兒的情景比我想象的還要好!

丨關(guān)于谷歌面試學(xué)院

還記得那份告訴我該學(xué)習(xí)什么的面試指導(dǎo)筆記么?雖然上面的內(nèi)容我很多都不懂,但至少它讓我有了目標(biāo)。

我把筆記上的題目變成提綱,然后通過(guò)觀看麻省理工學(xué)院和加州大學(xué)伯克利分校在 YouTube 上的講座來(lái)一一學(xué)習(xí)。每個(gè)鏈接上可能有多個(gè)學(xué)習(xí)內(nèi)容,很多視頻基本都會(huì)引出下一個(gè)視頻,就這樣我不停地學(xué)習(xí),學(xué)習(xí)提綱逐漸豐富。

由于之前我的寫(xiě)的商業(yè)、工作代碼都是保密的,我的 Github 基本是空空的,看起來(lái)像根本沒(méi)有在敲代碼一樣,于是我把這份學(xué)習(xí)提綱上傳了上去。我需要?jiǎng)?chuàng)建一個(gè)作品,開(kāi)始我叫它“Project 9894”,是因?yàn)?Google 創(chuàng)建于 1998 年 9 月 4 號(hào)。后來(lái)我把它改名為“谷歌面試學(xué)院”。

在學(xué)習(xí)的過(guò)程中,我把自己發(fā)現(xiàn)的話(huà)題都一一添加上去。


過(guò)去我總覺(jué)得“知識(shí)夠用就行了”。這么多年職業(yè)生涯中我根本不清楚 CPU 怎么處理一段程序,內(nèi)存如何工作,或者其他的知識(shí),我很佩服自己這么多年是怎么過(guò)來(lái)的。

我的 Github 小項(xiàng)目漸漸開(kāi)始得到一些關(guān)注,我甚至寫(xiě)了篇文章慶祝項(xiàng)目得到 20 個(gè) star。

有天早晨我發(fā)現(xiàn)我的項(xiàng)目有 120 個(gè) star 了!某個(gè)業(yè)內(nèi)知名人士前一晚上在推特上分享了我的項(xiàng)目,讓我的項(xiàng)目收到很多關(guān)注,甚至進(jìn)入了 Github 當(dāng)日流行榜。好幾天我都是 Github 流行榜的第一名哈哈。

許多善良的人主動(dòng)鼓勵(lì)、感激我,這讓我發(fā)現(xiàn)原來(lái)有數(shù)以千計(jì)的人跟我一樣,不僅想去 Google 工作,也想成為一名軟件工程師,我列出的學(xué)習(xí)內(nèi)容正是他們需要學(xué)習(xí)的方向。

到目前為止它有超過(guò) 21000 個(gè) star 了,難以置信。

丨如果我無(wú)法 Google 工作怎么辦

只要不是天塌下來(lái),都沒(méi)關(guān)系。

為了成為 Google 的軟件工程師,我投入了大量的時(shí)間和精力,即使我不幸失敗了,我學(xué)到的知識(shí)和能力也足以讓我去任何其他公司任職。

不論結(jié)局如何,起碼我會(huì)成為一名入門(mén)級(jí)別的軟件工程師。我不認(rèn)為我有 15 年的軟件工程師經(jīng)驗(yàn),因?yàn)槲疫^(guò)去的確不具備這個(gè)能力,我和剛畢業(yè)的計(jì)算機(jī)學(xué)生一樣還只是新手。

這對(duì)于我來(lái)說(shuō)是一段新的旅程,才剛剛開(kāi)始,即使我會(huì)犯很多錯(cuò),也毫不畏懼,因?yàn)槲矣袑W(xué)習(xí)新內(nèi)容的熱情,我要學(xué)習(xí)所有需要的知識(shí),成為團(tuán)隊(duì)中優(yōu)秀的一部分。

丨叮囑:別像我一樣學(xué)過(guò)多東西

我花了八個(gè)月時(shí)間準(zhǔn)備面試,但事實(shí)上我可以縮短很多時(shí)間。跟做其他復(fù)雜的事情一樣,一開(kāi)始都需要試錯(cuò)、走彎路,總有一些事我想回去重做。

我學(xué)習(xí)了很多我不需要的內(nèi)容,有些是因?yàn)槲矣X(jué)得面試需要,有些是我覺(jué)得工作里會(huì)用到。我不想成為團(tuán)隊(duì)中的負(fù)擔(dān)。但事實(shí)證明我操心太多了,很多內(nèi)容都沒(méi)必要學(xué)習(xí)。

我花了三周閱讀一本 1000 頁(yè)左右的講 C++ 的書(shū),那么多內(nèi)容我沒(méi)記得多少,但是起碼對(duì) C++ 了解多了一點(diǎn)。本來(lái)我以為會(huì)用到 C,C++,或者 Java,結(jié)果我面試中準(zhǔn)備用的是 Python。記住這個(gè)教訓(xùn):別猜,去問(wèn)!去查!

到后來(lái)才發(fā)現(xiàn),我只需要讀三四本書(shū)就夠了,我讀的太多了。

我歸納了一本重復(fù)查看的算法總結(jié),里面記錄了很多我不希望在面試中遇到的問(wèn)題。這其實(shí)是無(wú)用功,你不必這么做。


我花了很多時(shí)間看視頻,然而本應(yīng)該少看一些的,應(yīng)該隨著時(shí)間慢慢增加內(nèi)容。

我應(yīng)該盡早停止看書(shū),換成看視頻,早點(diǎn)開(kāi)始編程驗(yàn)證、解決問(wèn)題。早點(diǎn)開(kāi)始動(dòng)手實(shí)踐我所學(xué)的。

隔一段時(shí)間重顧知識(shí)是記憶的關(guān)鍵方法。不要一次性學(xué)完一項(xiàng)知識(shí)就不管了,這樣你無(wú)法真正的掌握。隔一段時(shí)間回顧一下,每次重復(fù),你都會(huì)加深自己的理解,次數(shù)多了,你就會(huì)理解每個(gè)細(xì)節(jié),成為真正的專(zhuān)家。

為了幫助回顧知識(shí),我做了個(gè)手機(jī)上用的知識(shí)點(diǎn)抽記卡,里面有 1792 份知識(shí),現(xiàn)在想想內(nèi)容有些過(guò)于多了。一有時(shí)間我就回顧上面的知識(shí)點(diǎn),比如圣誕節(jié)購(gòu)物、排隊(duì)等公交時(shí)。當(dāng)抽記卡上的問(wèn)題我能正確地回答時(shí),就標(biāo)記為“理解了”,否則從抽記卡上看明白答案,等待下次回答問(wèn)題正確了再標(biāo)記。

我內(nèi)心的恐懼讓我學(xué)習(xí)了太多不需要的知識(shí),比如“要是他們考我紅黑樹(shù)相關(guān)的知識(shí)怎么辦”。

但是我不想面向面試學(xué)習(xí),我想要為了在 Google 工作、解決重量級(jí)問(wèn)題而學(xué)習(xí)。這就意味學(xué)習(xí)算法還是有用的,它們可以提升計(jì)算機(jī)的時(shí)間和空間效率。

或許我永遠(yuǎn)用不到 Ford-Fulkerson 算法(一類(lèi)計(jì)算網(wǎng)絡(luò)流的最大流的貪心算法),但學(xué)習(xí)后我起碼知道如果有類(lèi)似的問(wèn)題出現(xiàn),該怎么解決。

丨總結(jié)

現(xiàn)在我了解了計(jì)算機(jī)的歷史,編程中最偉大的部分–數(shù)據(jù)結(jié)構(gòu)與算法,還有計(jì)算機(jī)系統(tǒng)底層是如何工作的。

在開(kāi)始準(zhǔn)備谷歌面試之前,我總希望可以跳過(guò)所有準(zhǔn)備階段,直接應(yīng)聘,然后去學(xué)習(xí)工作中用到的語(yǔ)言和工具就好了。

但是在這個(gè)過(guò)程中,我意識(shí)到這些知識(shí)是多么重要,雖然它們可能在日常開(kāi)發(fā)中應(yīng)用不到,但是我相信我的付出會(huì)給自己帶來(lái)內(nèi)在的提升。

我馬上就提交申請(qǐng)了,為了這件事我?guī)缀鯗?zhǔn)備了一年(一月份開(kāi)始,但直到四月,我才能夠保證全職學(xué)習(xí))。

我覺(jué)得我已經(jīng)準(zhǔn)備的差不多了,是時(shí)候提交申請(qǐng),對(duì)我這段時(shí)間的學(xué)習(xí)進(jìn)行一次檢驗(yàn)了。

這將是我人生的一次飛躍。我看到前方有一個(gè)光明的未來(lái)。

謝謝你花時(shí)間讀我的故事。


文 | John Washam
編譯 | shixinzhang


SQL

數(shù)據(jù)分析咨詢(xún)請(qǐng)掃描二維碼

若不方便掃碼,搜微信號(hào):CDAshujufenxi

數(shù)據(jù)分析師資訊
更多

OK
客服在線(xiàn)
立即咨詢(xún)
客服在線(xiàn)
立即咨詢(xún)
') } function initGt() { var handler = function (captchaObj) { captchaObj.appendTo('#captcha'); captchaObj.onReady(function () { $("#wait").hide(); }).onSuccess(function(){ $('.getcheckcode').removeClass('dis'); $('.getcheckcode').trigger('click'); }); window.captchaObj = captchaObj; }; $('#captcha').show(); $.ajax({ url: "/login/gtstart?t=" + (new Date()).getTime(), // 加隨機(jī)數(shù)防止緩存 type: "get", dataType: "json", success: function (data) { $('#text').hide(); $('#wait').show(); // 調(diào)用 initGeetest 進(jìn)行初始化 // 參數(shù)1:配置參數(shù) // 參數(shù)2:回調(diào),回調(diào)的第一個(gè)參數(shù)驗(yàn)證碼對(duì)象,之后可以使用它調(diào)用相應(yīng)的接口 initGeetest({ // 以下 4 個(gè)配置參數(shù)為必須,不能缺少 gt: data.gt, challenge: data.challenge, offline: !data.success, // 表示用戶(hù)后臺(tái)檢測(cè)極驗(yàn)服務(wù)器是否宕機(jī) new_captcha: data.new_captcha, // 用于宕機(jī)時(shí)表示是新驗(yàn)證碼的宕機(jī) product: "float", // 產(chǎn)品形式,包括:float,popup width: "280px", https: true // 更多配置參數(shù)說(shuō)明請(qǐng)參見(jiàn):http://docs.geetest.com/install/client/web-front/ }, handler); } }); } function codeCutdown() { if(_wait == 0){ //倒計(jì)時(shí)完成 $(".getcheckcode").removeClass('dis').html("重新獲取"); }else{ $(".getcheckcode").addClass('dis').html("重新獲取("+_wait+"s)"); _wait--; setTimeout(function () { codeCutdown(); },1000); } } function inputValidate(ele,telInput) { var oInput = ele; var inputVal = oInput.val(); var oType = ele.attr('data-type'); var oEtag = $('#etag').val(); var oErr = oInput.closest('.form_box').next('.err_txt'); var empTxt = '請(qǐng)輸入'+oInput.attr('placeholder')+'!'; var errTxt = '請(qǐng)輸入正確的'+oInput.attr('placeholder')+'!'; var pattern; if(inputVal==""){ if(!telInput){ errFun(oErr,empTxt); } return false; }else { switch (oType){ case 'login_mobile': pattern = /^1[3456789]\d{9}$/; if(inputVal.length==11) { $.ajax({ url: '/login/checkmobile', type: "post", dataType: "json", data: { mobile: inputVal, etag: oEtag, page_ur: window.location.href, page_referer: document.referrer }, success: function (data) { } }); } break; case 'login_yzm': pattern = /^\d{6}$/; break; } if(oType=='login_mobile'){ } if(!!validateFun(pattern,inputVal)){ errFun(oErr,'') if(telInput){ $('.getcheckcode').removeClass('dis'); } }else { if(!telInput) { errFun(oErr, errTxt); }else { $('.getcheckcode').addClass('dis'); } return false; } } return true; } function errFun(obj,msg) { obj.html(msg); if(msg==''){ $('.login_submit').removeClass('dis'); }else { $('.login_submit').addClass('dis'); } } function validateFun(pat,val) { return pat.test(val); }