www.久久久久|狼友网站av天堂|精品国产无码a片|一级av色欲av|91在线播放视频|亚洲无码主播在线|国产精品草久在线|明星AV网站在线|污污内射久久一区|婷婷综合视频网站

當(dāng)前位置:首頁 > 公眾號精選 > 小林coding
[導(dǎo)讀]大家好,我是小林。相信不少CS學(xué)生都有關(guān)于項目到底要怎么準(zhǔn)備的問題,可能大家認(rèn)為要做個非常強的項目才有機會面試。在前幾個星期,有位大三非科班的讀者的項目經(jīng)歷寫的是國外CS課程的lab,也就是課程的實驗,并不是什么高大上的項目,他依然拿到了騰訊的實習(xí)。他跟說,對于校招面試,項目其實...

大家好,我是小林。

相信不少 CS 學(xué)生都有關(guān)于項目到底要怎么準(zhǔn)備的問題,可能大家認(rèn)為要做個非常強的項目才有機會面試。在前幾個星期,有位大三非科班的讀者的項目經(jīng)歷寫的是國外 CS 課程的 lab,也就是課程的實驗,并不是什么高大上的項目,他依然拿到了騰訊的實習(xí)。他跟說,對于校招面試,項目其實并不要求做的很牛逼,但是要保證是你自己親手做的,因為面試時,問項目主要是問你在項目中用什么技術(shù)解決了什么問題,然后達(dá)到了什么效果,你能回答出這些才是主要的。然后面試過程中,計算機基礎(chǔ)和算法才是大頭,考的最多的還是這些。他由于在學(xué)校里參加過 ACM 比賽,所以面試時的算法對他不是難度,他甚至都沒刷過 leetcode,但是每次面試的算法他都是秒殺的。他的弱點主要是在計算機基礎(chǔ)知識,因為他不是非科班的,很多計算機專業(yè)課都沒上過,或者有的沒怎么認(rèn)真學(xué)過。他最開始因為沒有準(zhǔn)備計算機基礎(chǔ),面試屢屢挫敗,后面他開始突擊一兩月這些八股文,我的圖解網(wǎng)絡(luò)和系統(tǒng)也對他起到來一定的幫助,最終成功拿到騰訊的實習(xí)。我也邀請這位讀者分享他的學(xué)習(xí)經(jīng)驗和做 lab 的經(jīng)驗。開車!

我跨專業(yè)是如何學(xué)CS的

簡單概括我的情況。我是名非科班的?ACM?選手,在準(zhǔn)備面試之前這一段時間都沒有系統(tǒng)的學(xué)習(xí)過專業(yè)課的知識我是一名大三的機械系的學(xué)生,大概在大二上學(xué)期過完的假期,我刷知乎偶然看到了同學(xué)校學(xué)長描述自己的競賽經(jīng)歷,覺得很好奇,就入坑了算法競賽也就是俗稱的 ACM,興趣使然一直打到了大三下學(xué)期。在這段時間里,我和隊友或者其他計算機院的學(xué)生聊天的時候,偶爾會聽到一些關(guān)于專業(yè)課的知識或者名詞,然后會去搜這些相應(yīng)的知識稍微進(jìn)行了解,但是完全沒有系統(tǒng)的學(xué)習(xí)過 CS 的專業(yè)課知識,基本上就是看到了什么知識點感覺好玩就去搜一搜。可以說,在面試之前我對CS的體系和知識是完全陌生的。到了大三下學(xué)期,偶然看到學(xué)校群里有學(xué)姐發(fā)的實習(xí)招聘信息,我才意識到:我都大三了,是時候著手準(zhǔn)備一下找工作的事了。通過學(xué)姐發(fā)的招聘信息,我被內(nèi)推去參加了 tx 的實習(xí)面試。這一次面試的內(nèi)容都十分簡單,什么是多態(tài),多態(tài)怎么實現(xiàn)的,進(jìn)程和線程的內(nèi)容是什么,計算機網(wǎng)絡(luò)的幾層結(jié)構(gòu)是怎么樣的…如果你有準(zhǔn)備面試的話,你會發(fā)現(xiàn)這些問題簡直就是送分題!但由于我從來沒有學(xué)習(xí)過相關(guān)的知識,被虐的慘不忍睹(面試官還和我說會進(jìn)行評估,然后五分鐘之后就把我掛了)才發(fā)現(xiàn)自己這一塊有如此大的欠缺,開始著手一點點的從頭開始補 CS 的知識。

如何學(xué)習(xí)專業(yè)課知識

不要上來就啃所謂的經(jīng)典書。先去找一些經(jīng)典的網(wǎng)課看看。對于新手來說,網(wǎng)課的老師可能講的更像人話一點。我個人主要推薦:CSAPP。從計算機的組成比如浮點數(shù)的存儲方式,存儲金字塔結(jié)構(gòu)到操作系統(tǒng)的進(jìn)程線程,計算機網(wǎng)絡(luò)的 socket 等都有介紹,一個性價比很高的課程能夠讓你了解整個計算機體系結(jié)構(gòu)。其次我個人認(rèn)為面試中??疾斓狞c就是?OS、計網(wǎng)、數(shù)據(jù)庫和一些語言知識。語言大家自己去找對應(yīng)的課程學(xué)習(xí)。計網(wǎng)的話我是看小林的圖解網(wǎng)絡(luò) b站的湖科大的老師做的視頻,都附帶了很多圖和動畫,簡單易懂。參考的文字材料就是自頂向下 TCP/IP 詳解卷1。OS 沒有找過網(wǎng)課看,覺得看完 CSAPP 之后挺好理解的了。用的文字材料主要是小林的圖解系統(tǒng) 操作系統(tǒng)概論。數(shù)據(jù)庫網(wǎng)課看的是 15445,這是一個面向磁盤的數(shù)據(jù)庫,后面發(fā)現(xiàn)大量的講解的其實是 Mysql 的原理。然后文字材料參考的是 Mysql 技術(shù)內(nèi)幕,Innodb存儲引擎和 Redis 設(shè)計與實現(xiàn)。進(jìn)階的內(nèi)容大家可以參照自己想要發(fā)展的方向?qū)W習(xí)啦,我認(rèn)為學(xué)到這里的人對計算機體系結(jié)構(gòu)有了了解之后,應(yīng)該很容易找自己的方向。像我對分布式和數(shù)據(jù)庫感興趣,就選了 6.824 和 15445 作為擴展學(xué)習(xí)內(nèi)容。雖然我推薦了一些網(wǎng)課和書籍作為學(xué)習(xí)內(nèi)容,但是我學(xué)習(xí)過程中絕對不止參考了這些東西。對于一個知識點,我如果看不懂的話先考慮找公開課/博客,然后在書中找較為書面化的表達(dá)方式,最后我還會在自己博客中寫筆記,用自己的話表達(dá)也是一種學(xué)習(xí)方式

關(guān)于 6.824 和 15445

6.824 和 15445 這兩個一個是關(guān)于分布式系統(tǒng)的。他會講一些關(guān)于 mapreduce 和 raft 的分布式算法,以及 15445,它一個基于磁盤的數(shù)據(jù)庫(后來我看 innodb 引擎的時候發(fā)現(xiàn)其實就是對著 mysql 講的)選擇這兩個課程學(xué)習(xí)的好處在于他們的 lab 真的很好,其實 CSAPP 出名的地方同樣如此。差不多的內(nèi)容,講師的水平肯定不會有決定性差距,差距主要體現(xiàn)在這些公開課由很好的 lab,帶你手把手對一個知識進(jìn)行實現(xiàn)算法/數(shù)據(jù)結(jié)構(gòu),讓你對知識的理解更加深刻。同時,由于這些是比較常見的算法,一般面試官都會懂,因此就喜歡和你聊一聊相關(guān)的問題,是一個面試的時候很好的談資。你可以聊一聊你項目里面是怎么實現(xiàn)的,遇到了什么問題,如何解決的。鋪墊了這么多,如何學(xué)習(xí)這種公開課?6.824 和 15445在b站上都是有相應(yīng)的視頻的,但據(jù)我了解免費放出來的貌似都是機翻的,可能有一些地方語義不是很通暢,這里我推薦一個組織叫simviso,人工翻譯公開課的視頻,會比機翻的看起來舒服一些。然后關(guān)于怎么做公開課的lab,其實你要實現(xiàn)的東西老師上課從答題思路到實現(xiàn)細(xì)節(jié)都會講的很清楚,認(rèn)真聽了公開課之后你就知道里面的東西怎么運作的了,只需要自己再理一理怎么實現(xiàn)之類的問題就可以了。同時,官網(wǎng)上也會有很詳細(xì)的教程,告訴你要實現(xiàn)什么東西,然后每個模塊你要實現(xiàn)什么樣的函數(shù),擁有什么樣的功能,是保姆級教學(xué)!不用擔(dān)心不會寫的問題。知識點在課上會說的很清楚,lab 做的東西絕對不會超綱,不僅課上會教你,官網(wǎng)的文檔也寫得很清楚,可能對于英語不是很好的小伙伴會造成一些困惑,但是我感覺當(dāng)程序員面對英語文檔應(yīng)該會是很常見的事情。
6.824 lab
6.824 的官網(wǎng)地址:http://nil.csail.mit.edu/6.824/2018/schedule.html6.824 的官網(wǎng)的 schedule,如下圖:下圖是 lab1 的 mapreduce介紹,這一部分是教你怎么用 git 配置環(huán)境的。下圖是 lab1 的part1,告訴你你需要在 common_map.go 里實 現(xiàn)domap()函數(shù)等等…會寫的很清楚讓你去實現(xiàn)哪一部分的模塊。而且,還提供了一些 test 來測試你實現(xiàn)的對不對,如下圖:
15445 lab
15445 的官網(wǎng)地址:https://15445.courses.cs.cmu.edu/fall2020/schedule.html15445 的官網(wǎng) schedule 如下圖,可以找到里面的 project released 點進(jìn)去。下圖是 lab1 的LRU模塊,告訴你要去實現(xiàn) src/…/lru_replacer.h 的 victim 函數(shù)啊,pin函數(shù)啊等等,寫的十分清楚。所以,大家有時間的話,一定要做lab。我個人認(rèn)為國外的公開課的最大優(yōu)勢就是量身定制的lab,真的能將你課上所學(xué)知識完美的再復(fù)現(xiàn)一遍,讓你的理解更加深刻。

參加競賽對面試的幫助

這個問題可以轉(zhuǎn)換為:學(xué)算法有什么好處?其實面試中考察的算法,甚至是算法競賽中考察的算法,都是很久以前計算機科學(xué)家們玩爛了的。在現(xiàn)實工程中有許多算法都是被淘汰了/用不上的。那為什么還要學(xué)?他們原本設(shè)計出來是為了解決某些特定問題的。比如最小生成樹,原本就是為了解決計算機網(wǎng)絡(luò)中的一些特定問題的,或者說二叉樹,將二分這一個思想轉(zhuǎn)換成了一個持久化的數(shù)據(jù)結(jié)構(gòu)。我個人的理解就是,學(xué)習(xí)算法你可以學(xué)習(xí)原本解決這些計算機問題的思維,培養(yǎng)了計算機思維,在后續(xù)的專業(yè)課學(xué)習(xí)中就打了一個很好的基礎(chǔ)。回到原問題,參加算法競賽的好處在于獎項多了之后,簡歷更突出(幫助我一個雙非的學(xué)生過了一些簡歷關(guān)),和具備扎實的編程功底,良好的計算機思維。同時,參加了算法競賽,基本上就是對面試的算法題進(jìn)行了一個降維打擊吧。我雖然沒有刷過leetcode,但面試的算法題基本都沒什么壓力寫出來了*(中間也掛了不少面試,但不是掛在算法上,是當(dāng)時八股背的不好)。雖然面試不僅僅是由算法題組成的,但對于很多同學(xué)來說,專業(yè)知識都掌握好了,但是死在了算法上,這就有點氣人。還是得多多刷題~現(xiàn)在太卷啦,盡量都做到最好吧。

總結(jié)

在我面試的過程中,算法環(huán)節(jié)遇到的題目都是十分簡單或者十分常見的問題,因此只要多刷刷題,提高自己的實現(xiàn)能力就 ok 了。最主要的還是基礎(chǔ)知識的準(zhǔn)備。首先對照著一些簡單易懂的公開課/小林的圖解系列等了解知識雛形,然后再自己從專業(yè)書里更詳細(xì)的學(xué)習(xí)。同時自己寫博客,多刷刷面經(jīng),看看面試喜歡考什么,大概就ok了?也許吧,大家都要加油哦!

本站聲明: 本文章由作者或相關(guān)機構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內(nèi)容真實性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時聯(lián)系本站刪除。
關(guān)閉
關(guān)閉