文章目錄
- 一、求職準備篇
- 1.1提升技術水平
- 1.1.1學什么?
- 1.1.2怎么學?
- 1.2做項目
- 1.3做簡歷
- 1.4找實習
- 二、求職難度篇
- 找實習難不難?
- 筆試
- 面試
- 三、實習內容篇
- 新人入職 -- 學會看代碼
- 參與小需求
- 實習日常
- 實習到底難不難?
- 四、總結
一、求職準備篇
1.1提升技術水平
重點鞏固所學語言的語法基礎:內存管理、智能指針、多線程/鎖機制、STL底層實現等。
熟悉計算機四大件:TCP/IP協議棧、HTTP/HTTPS、堆、二叉樹、進程管理、文件系統。
了解常用中間件:Redis緩存、MySQL索引與事務
1.1.1學什么?
技術主要分三點,我按照我認為的重要程度依次分為:算法,技能,項目。
- 為什么算法排第一?
如果大學三年什么技能比如mysql,redis等等啥都沒學,但有ACM金牌,那進大廠“穩”了,這不是夸大其詞,有事實根據。但是又不是每一個人都能在算法這條路上取得成就,因為算法不是“是個人”就能整明白的,算法這東西花了大量時間都不一定有好的效果,需要時間,需要智商,需要悟性。所以要有業務技術和實習來補充。 - 算法很重要,他是進面的門檻,筆試過不去沒有面試機會,如今it廠對于算法的要求越來越高,問題來了,算法真的這么重要?算法對于以后工作有用嗎?我大一大二年少無知,認為這東西沒用,工作都不一定用得到,等我實習了,我發現這東西確實用不到,如果你只是做應用開發,那你也許一輩子都不在工作上用到如動態規劃,單調棧等等的算法,問題來了,大廠為什么考?這玩意兒真的沒用?我在實習的某一個瞬間突然意識到,這玩意兒有用,而且意義很大。原因:一個新需求/新bug給到你手上,怎么解決?首先干什么,其次干什么?以什么樣的方式解決?能不能解出來?花多少時間解出來?是否似曾相識?算法題是不是這么個思路?有沒有了解過這種算法?遇到新問題是否可以根據復雜問題抽象出算法模型?是否可以建立解決問題的思路?是否可以根據思路編碼?考察算法,是面試官一個相比之下可以檢驗你分析問題、解決問題、編程能力的最佳辦法。我們需要認識到學習算法這件事的重要性,只有從心底里認可了這件事,才會去做它。
1.1.2怎么學?
我的學習路線完全是跟著課程來的。
- 技能:C/C++ Linux MySQL QT Redis Docker
如今網上資源很多 學習能力強的人 會學習的人完全可以自學,覺得自己不可以的可以報個班。
課程這個需要完全根據老師的要求來,課聽了沒有,聽懂了沒有,聽完有沒有記筆記?記筆記的一大目的是產出,不管干什么也好,都得有產出,什么都不寫,一個勁的聽,電腦一關,知識就全沒了,換句話說,對一個新知識的get完全不是在課堂上學會的,上課的一大目的是通過懂這個東西的老師把這個新東西講給你,你把它記下來,然后在之后反復的看筆記,再結合各方知識綜合起來,這個時候才學會。知識真的很多,如果有過目不忘的能力,每個人都是天才,聽了,把它記下來,隔一段時間復習一下,會有新的收獲,有在某個瞬間遇到了或是偶然想到了,再去看看之前的筆記,又是一番風味,這種學習習慣是跟隨初高中就應該有的,不管學什么這種學習習慣都是基礎。我在備戰的時候,之前的博客看了好幾遍,每一次看都好像是第一次看,每次看完了都有新的體會。 - 算法:雙指針 二分查找 滑動窗口 動態規劃等等
這個就是刷題,通過刷題提高,剛開始基本就是答案搬運工,看題–不會–看題解–會了–睡覺–第二天再看–握草我寫過這題?不斷的刷題,總結算法模型,養成分析問題的思路,先暴力,在暴力的基礎上使用數據結構優化,當然這塊我自己水平就很低,好的建議網上多的是,有選擇的看,重要的是練。 - 項目:直接copy的也好,基于別人的二次開發也好,面試官問到,我們得會,換句話說,把別人的項目整明白了,就是自己的,項目中關鍵技術是什么?怎么實現的?為什么選擇這個技術?有沒有優化空間?怎么優化?性能瓶頸在哪?把這些問題整明白,再寫到簡歷上。
1.2做項目
求精不求多,如果是基于別人的項目或是基于老師的項目,一定要二次開發,或者使用某種技術提高性能,最重要的,用專業的測試工具對項目進行一定的測試,壓力測試,安全測試等等。
對自己的項目要像對自己的內褲一樣知根知底,可以繪制思維導圖記憶,也許你做了這個項目但是過了很久才面試,那么大概率你會忘記,面試前在看一下。
有時間可以多做幾個項目,不管是對于自己技術能力的提升,還是日后參加工作,都有大大的幫助。
讓你的碼云像大佬的碼云,先不說技術水平咋樣,你得弄得像個樣子。多的不說,寫個readme。
1.3做簡歷
不要用模板,網上的模板層出不窮,但是都有一個通病,一眼模板,規規矩矩,就是看著不舒服,自己搓一個,用ppt,word上的圖形,手搓一個不是難事。我花了整整一天的時間做了一份簡歷,自認為很好看,對你沒有聽錯,技術也許不牛,但是很好看。如果你的審美真的很差,那還是看著別人的模板做吧。
簡歷上的內容要精簡,不要啥玩意兒都往上寫,什么社團獎學金運動會,我認為就只用寫技術水平就行了,技術面沒人關心你多帥!hr面的問題才是看你是不是一個優秀的合格的會溝通的三觀正的人。技術相關內容也要突出,不要啰啰嗦嗦。
最后是排版要合理,要簡潔。
1.4找實習
- 如果是大一大二,并且把該學的都學了,可以先從boss投小廠,面個幾家,看看流程是什么,鍛煉一下,找個日常實習,前提是該學的學完了,學會了。
- 如果是大三,多偏向官網投大廠,在有了實習經歷的基礎上,簡歷通過幾率提高,無論是日常實習還是暑期實習都要偏向大廠投。
- 這里要給大家一個建議,超級小廠盡量不要去,如果整個公司規模不超過30人,那么大概率這個公司的機制是這樣的:人少名氣低,不知道從哪接了個項目,招大量的實習生當作正式員工用,不行的走人繼續招實習。你的上游也很可能沒有產品、設計、技術導師,你接到的需求很有可能是老板的一句話:我需要你做這么一個東西。至于是什么,應該怎么做,做出來是什么樣子,不知道,別說你不知道,很有可能老板都不知道該做出什么樣子,這樣的小廠只有在以下情況才可以去:大一大二把該學的學完了,由于學歷原因沒有中大廠機會,回家也是打游戲,才可以考慮去這種廠,看看他們的源碼,熟悉熟悉也可以。
- 收到面試邀請,記得去招聘要求看看都需要什么,可以考前突擊一下,從牛某ke,小某書提供的面經,可以提前看看。
- 包裝自己:之前的博客和gitee可以拿出來給面試官看了。
- 給大家一下我的投遞,不算多,大家一定要多投海投投到不能再投。
二、求職難度篇
找實習難不難?
如今就業環境差,實際上不是就業環境差,是人太多了。找實習只要你按部就班的跟著老師的建議和路線走,不會存在找不到的情況,即便你是大專。
學歷不好,可以通過提升技術水平和找實習提高的,如果學歷不怎么樣但是實習經歷很豐富,簡歷通過率跟名校是可以相媲美的。
總之一句話,按部就班的干,就一定能找到,而且找到的還不錯。平常做好博客和碼云的積累。
筆試
在經過了算法訓練后,如果自己的算法能力很差,一些大廠的筆試是過不去的,如米哈游,美團,網易,他們的題目難度不是刷幾遍leetcode就能整出來的,不信的可以試試,這個沒辦法,只能把功夫放在平常。
那么算法能力不行就沒出路了嗎?不是的,有些廠沒筆試,以及一些日常實習,提前批都是沒筆試的,到那時面試仍然會有考察算法題的場景,這時候的題目難度就是leetcode中等偏上的難度了。
總結:算法訓練功夫放在平常,臨門一腳了,就只能靠運氣或者走沒有筆試的場景。
面試
面試主要有幾大塊:八股 手撕 算法題 實習 項目
八股重在積累,我主要是自己的博客,小林,面經。重點是把別人的話理解成自己的話,并能用自己的話有條理的描述。光看是沒有用的,看了不用很快就忘記了。對于一些語法八股最好自己敲敲代碼,可理解的更透徹,記憶的更清楚。
手撕,如果你動手能力不強,那就背吧,像背作文一樣,分成幾點背下來,如果能力強,敲出來也不是難事。常見的:string vector lru 布隆過濾器 堆 智能指針
實習經歷:這個平常實習要寫好日報,最后實習完畢總結干了什么,用什么技術解決了什么問題,達到了什么效果。要有突出,做過的最困難的,含金量最高的,時間跨度最久的,如何跟上下游協商等。【可以看一下高質量源碼,然后說自己做的,前提是一定要整明白,不然面試就翻車了
項目:面試前再看看項目,項目過程怎樣的,用到了哪些關鍵技術,為什么用這項技術,了解其他技術嘛?怎么測試的?性能瓶頸在哪?有沒有改進的地方?
面試一定要會復盤,把每次投遞簡歷的記錄保存下來,記好每一次面試的問題,面試完后通過各種方式重新思考怎么回答更好。并整理下來,以便之后復習。
三、實習內容篇
新人入職 – 學會看代碼
給時間配環境,熟悉源碼。看代碼的經驗:不要隨便打開一個文件就看,你會發現你看了一天啥也沒看明白,而且看的很累。可以針對一個特定的功能,從數據的最上游或者最下游看,數據是怎么流動的。可以單獨看一個組件/模塊,該組件模塊完成了什么功能?用到了什么技術?為什么要用這項技術?然后畫個思維導圖或流程圖,回歸之前的話,干什么都要有產出。
參與小需求
mentor不會把很復雜很關鍵的任務給你的,一般都是些小需求,在完成小任務的時候不斷熟悉項目架構,然后主動給mentor要任務,現參與到大需求,然后看能力獨立開發新需求,不要一有不懂的就問,先自己想,搜,真整不出來再問,問的時候要有邏輯,你在做什么,你做了哪些工作,目前遇到的問題是什么,想讓mentor幫你干啥。
實習日常
我的實習日常:剛入職配環境,熟悉代碼,然后改bug,改bug是一個讓你快速熟悉源碼的方法,搞明白數據流向,搞明白功能,看看問題出在了哪里。然后是先開發小需求,增加一個小功能,在此基礎上開發大需求,建議大家去大廠就是大廠開發流程很完善,從產品提需求,到開發,到聯調提測,可以幫助大家很好的了解流程,有時候你的功能開發完了,要等別人一起測,測試時,測試不懂的你要給他講,再不濟就的拉著產品battle,最后一個需求才是真的上線了,當然由于某些其他功能的改動或者腳本改變可能會影響你的功能,要做好后期維護,這大概就是流程。
如果導師不給你高價值任務,你可以主動申請,前提是你有這個能力,不然就是耽誤項目進度,可以先看源碼,把高質量代碼看明白了,就是自己的。
實習到底難不難?
只要你課程學明白了,算法題刷的差不多,基本問題不大。老師教我們的是專屬課程的知識,但更多的是學習新知識的能力,實習不可能所有技術你都會,遇到一門新技術,你會怎樣去學?可以先去問AI,我要學會這樣一項技能,我需要什么前置知識?然后按照官網–有效的博客–實際動手測試來學。
四、總結
從備戰到實習,我深刻體會到:技術路上沒有捷徑,每一步堅持都算數。
初學算法時,我曾質疑“刷題有何用”,直到實習中面對復雜需求才恍然大悟——算法訓練的不是解題模板,而是拆解問題的思維本能。當產品丟來一個模糊需求時,我會下意識地開始分層抽象、評估邊界條件,這背后正是刷題帶來的感覺。
做簡歷拒絕通用模板,手搓簡歷并保持更新迭代。hr看簡歷平均停留時間就幾秒,必須讓亮點“跳”出來:大廠實習?獨立開發?參與過github開源項目?
只要按部就班,找實習并不難,實習過程并不難,當任務比較多時,做好優先級處理,在能力達標基礎上多參與大需求。
別因學歷自卑,要用實力破局。學歷一般進大廠的人比比皆是,這樣的人只要存在,你就能成為這樣的人,不要不敢想,當然你得下功夫。
如今就業環境嚴峻,機會永遠青睞行動派。