Hey guys,這里是程序員cxuan。歡迎收看我最新一期的文章。今天這篇文章來自我忠實的讀者一個人的體驗。這篇文章寫了他從大一開始進入騰訊的一系列感悟和總結(jié)。希望能幫助你。(大衛(wèi)亞設(shè))。
菜雞歷險記
從二月底開始投簡歷,到四月拿到offer,我的春招結(jié)束了!
選擇直接工作,而不是想大多數(shù)人一樣選擇讀研,真的是一個很艱難的決定,參加校招所經(jīng)歷的迷茫擔(dān)憂焦慮也不亞于參加一場研究生招生考試。
大學(xué)伊始,幾乎和大多數(shù)人一樣,我也想當(dāng)一名好學(xué)生,像助班一樣閃耀,拿到高績點,參加各路競賽,獲取保研資格,把簡歷塞的滿滿當(dāng)當(dāng),懵懂的認知甚至讓我在當(dāng)時一度陷入唯績點論的思維,專心埋頭苦干。
非常遺憾的是,在大一要結(jié)束的那一段時間里,低到讓人抬不起頭來的gpa才讓我意識到并逐漸接受,自己也許真的不擅長考試(說到底還是菜 找借口),即便大一也聽努力,gpa依然很低,這讓我開始逐漸懷疑起自己的能力。
現(xiàn)在看來績點固然重要,但其能夠證明的東西其實比較有限(起碼在計算機領(lǐng)域),除非確實很拔尖,其實大學(xué)里很多課程都懂的。。在這里我并不想去批判大學(xué)的教育,只希望gpa不要成為量化學(xué)生能力的唯一指標和對他人產(chǎn)生傲慢與偏見的理由。
在大一結(jié)束的那個暑假,搬到了新校區(qū),開始新的生活,從那一段時間開始,我偶然間發(fā)現(xiàn)自己對各種amazing的技術(shù)有著十足的興趣,從爬蟲到web,從數(shù)據(jù)分析到機器學(xué)習(xí),基本都有過一段時間的接觸,那段時間幾乎成為了我技術(shù)的啟蒙階段。
時間兜兜轉(zhuǎn)轉(zhuǎn)來到了大二,憑借著自己對技術(shù)能力的熱愛,我滿懷自信的提交了轉(zhuǎn)去計院的轉(zhuǎn)專業(yè)申請,第一志愿,上機考掛,第二志愿,上機考過了缺掛在了面試上,一問原因才得知竟是績點低 + 大一掛了一門通識課。毫不夸張的說,在當(dāng)時對我的打擊真的很大,質(zhì)疑自己的聲音在我腦子里不斷回響,"你一個非科班比得過別人計算機系的同學(xué)嗎?" "你學(xué)技術(shù)不是在不務(wù)正業(yè)嗎????" 那個時候幾乎因此喪到極點,而如果想再下一個學(xué)期轉(zhuǎn)專業(yè)將面臨著降級。
但是在那一學(xué)期,也有一些好事發(fā)生。在大二上憑借我對技術(shù)的興趣,引起了Python課老師的注意,并邀請我加入其課題組,后面老師也變成了我的導(dǎo)師。我也很順理成章的結(jié)識了幾位研究生學(xué)長,在那段日子里,幾乎有讀不完的論文,看不完的算法,一切都很新奇,似乎很快就把我轉(zhuǎn)專業(yè)失敗的負能量拋之腦后。
晃晃悠悠大二就快結(jié)束了。雖然感覺算法領(lǐng)域真的很酷,我也曾幻想著自己能一頭扎入人工智能的領(lǐng)域,并且在導(dǎo)師的帶領(lǐng)下學(xué)習(xí)了一段時間,期間也參加了個比賽拿了個獎和水了一篇專例,其實在內(nèi)心真的很感激,能在大學(xué)生涯遇到這樣一位愿意為本科生付出如此心血的導(dǎo)師真的是我莫大的榮幸。但是反過來說,雖然算法真的挺有意思也非常熱門,但其門檻真的很高而且競爭也越來越激烈。
如何看待2019年秋招算法崗灰飛煙滅?
如何看待算法崗一片紅海諸神黃昏?
。。。
各路985碩士海歸,頂會論文,top競賽balabala,著實勸退。本身對論文數(shù)學(xué)不感興趣的我最后還是放棄了,還是開發(fā)更適合我。
就目前而言,個人認為市面上需要的是具有扎實的計算機基礎(chǔ)且具有一定工程能力的算法工程師,而不是各路導(dǎo)包調(diào)參俠,不管是哪個技術(shù)崗,都需要擁有扎實的編程語言、數(shù)據(jù)結(jié)構(gòu)、計網(wǎng)、操作系統(tǒng)作為基礎(chǔ)。應(yīng)當(dāng)先成為一名合格的軟件工程師,再努力成長為一名合格的算法/機器學(xué)習(xí)工程師。
在20年初,我也最終下定決心,決定未來在Java后端領(lǐng)域深入學(xué)習(xí),現(xiàn)在看來,這個選擇不一定是最好的,但起碼不算差,同時我也退出了導(dǎo)師的課題組,雖然沒有繼續(xù)做下去,但還是打心底的非常感謝導(dǎo)師,因為在做競賽期間導(dǎo)師對我們的幫助可以說是至關(guān)重要,遇到一個愿意為本科生付出如此心血的導(dǎo)師真的是我大學(xué)時光里莫大的榮幸。
晃晃悠悠,從《Java核心技術(shù)卷 I》開始啃,一步一步開始深入,到逐漸開始完成些小項目,前路也慢慢變的明朗起來。
期間也遇到了幾個志同道合的小伙伴一起做項目,雖然有時真的蠻辛苦,但相信幾年后的我回想起來,這肯定是一段非??鞓非抑档昧魬俚臅r光。
進入2021年,俗話說金三銀四,春招也逐漸逼近,從2月底開始,來來回回復(fù)習(xí)了半個多月,最終非常幸運的拿到了騰訊的暑期實習(xí)offer,也許和很多大佬比這不算什么,但能進大廠也算是圓了大學(xué)一直以來的夢想了吧。
作為一個剛剛結(jié)束2021春招的人,談一談自己一開始的烏托邦與最后的現(xiàn)實,騰訊和阿里是我最早選定的目標(因為學(xué)校就在杭州,家在深圳),阿里提前批面了三個部門也都通過了,但最后內(nèi)推流程只能選擇一個部門,一面很順利評價也很好,但在把我晾了近一個月后奇妙的把我掛了,然后被某部門撈,一面通過,二面評價也不錯,然后又等了半個多月,掛(面試體驗和鵝廠比相差甚遠,流程混亂,部門搶人現(xiàn)象也很嚴重),字節(jié)一面掛(發(fā)揮最差的一輪面試),騰訊四輪技術(shù)面+一輪HR面過,??狄惠喖夹g(shù)面通過。在拿到鵝廠offer后也長嘆一口氣,順便把后續(xù)的面試都推掉了。
很早之前就搭建起了公眾號和個人博客,博客也只是偶爾寫一下技術(shù)方面的文章,也許是忙碌(其實就是懶)的原因,一直都沒有付諸行動,希望能憑借自己一點微不足道的經(jīng)驗,分享一下自己的心路歷程,看心情更新:)
數(shù)據(jù)結(jié)構(gòu)與算法
一個可以肯定的點是,無論是哪種技術(shù)崗位,對于校招而言,技術(shù)棧的要求可能不會特別高,但對于思維的靈活性,編碼能力的考量,則是十分看中的,對于算法的準備個人認為應(yīng)該盡早開始,最好養(yǎng)成每天刷每日一題的習(xí)慣,從2020年初開始,我就在LeetCode開始了我的算法學(xué)習(xí)之路,來來回回也刷了500題了,雖然水平遠不及acmer那樣,但扎實程度也足夠應(yīng)付大廠的算法考驗了。
養(yǎng)成一個刷題的好習(xí)慣,從長遠來看對編碼能力的提升很有幫助!
附上一些個人總結(jié)的不完全要點:
- 排序(快排、堆排、歸并、冒泡、希爾、選擇 等)基本思想 時間復(fù)雜度 穩(wěn)定性 最好都能手寫
- DFS、BFS、回溯算法
- 單調(diào)棧
- 貪心算法
- DP(例如背包問題等)
- LRU(雙向鏈表+HashMap)
- topN問題(海量數(shù)據(jù)找出第N大的數(shù)據(jù))
- 大文件統(tǒng)計詞頻(字典樹)
- 位運算
- 雙指針
- 鏈表
- 二叉樹
- 記憶化遞歸
- 二分查找
- 堆(例如 大/小根堆)
- 圖(有向無向圖、dijkstra、floyd算法之類的)
- 并查集
- 滑動窗口(Sliding Window)
- 紅黑樹
- AVL
- BTree、B+Tree
再附上一點比較熱門的算法學(xué)習(xí)書籍和github地址吧:
- 劍指offer(非常經(jīng)典,幾乎涵蓋了常見的算法面試題)
- 算法導(dǎo)論(可能會比較難,但是這本書也算算法界的圣經(jīng)了吧)
- labuladong 的算法小抄:HTTPS://github.com/labuladong/fucking-algorithm
計算機網(wǎng)絡(luò)
計網(wǎng)的重要性同樣不言而喻,個人總結(jié)的一些不完全的要點如下:
- HTTP 1.1、2.0 和 3.0 的新特性
- HTTP常見狀態(tài)碼及含義
- HTTPS(握手、CA、解決的問題、對稱加密與非對稱加密等)
- 常見HTTP請求方式的含義
- 如何優(yōu)化HTTP/HTTPS
- OSI七層與TCP/IP四層區(qū)別及其含義
- TCP三次握手(是什么、為什么)
- TCP四次揮手(是什么、為什么)
- TCP TIME_WAIT CLOSE_WAIT狀態(tài)
- TCP長短連接
- TCP的特點及報文結(jié)構(gòu)
- TCP是如何保證可靠傳輸?shù)?/li>
- TCP的重傳機制
- TCP的流量控制與擁塞控制
- TCP滑動窗口
- UDP特點、使用場景、報文結(jié)構(gòu)
- DNS解析及其過程
- IPv4、IPv6區(qū)別
- IP地址的分類
- 子網(wǎng)掩碼的含義
- DHCP協(xié)議
- ICMP協(xié)議(ping命令)
- MAC地址的含義
- 交換機和路由器的區(qū)別
- ARP協(xié)議
- 瀏覽器輸入url發(fā)生了啥
計網(wǎng)就沒啥好說的,基礎(chǔ)中的基礎(chǔ),面試中的???,各路謝希仁自頂向下黑皮書啃起來就完事了~
操作系統(tǒng)
個人總結(jié)的一些不完全要點:
- 操作系統(tǒng)的四個特性
- 用戶態(tài)和內(nèi)核態(tài)(是什么、為什么)
- 上下文切換
- IPC通信
- 線程同步的方式
- 進程、線程、協(xié)程的區(qū)別
- 進程的三態(tài)模型
- 進程調(diào)度算法
- 死鎖產(chǎn)生的四大條件
- 死鎖的預(yù)防
- 如何解決死鎖
- Linux IO模型(阻塞式IO 非阻塞IO IO多路復(fù)用 信號驅(qū)動IO 異步IO)
- Reactor模型
- 零拷貝
- 虛擬內(nèi)存
- 分頁 分段 段頁式區(qū)別及含義
- 頁面置換算法
- 磁盤調(diào)度算法
- Linux文件系統(tǒng)組成
- 硬鏈接與軟鏈接
Java基礎(chǔ)
個人總結(jié)的一些不完全要點:
- 問到爛的HashMap、HashTable、ConcurrentHashMap
- 一些常見的集合類(TreeMap ArrayList LinkedList ArrayDeque之類的)
- equals和hashCode
- ==與equals
- 如何理解面向?qū)ο螅ǔ橄?繼承 多態(tài) 封裝)
- Java異常分類
- 深拷貝與淺拷貝
- 七大基本類型(語法糖 包裝類)
- Object類有什么方法
- StringBuilder與StringBuffer
- String的intern()方法
- 為什么String不可變
- jdk的新特性(8 lambda Optional 9 String改成byte[]存儲之類的)
- Java BIO NIO AIO
- 泛型和類型擦除
推薦書籍:《Java核心技術(shù)卷 I / II》,進階點看《Effective Java》《Thinking in Java》
這里我個人并不是很推薦去看視頻,論知識的獲取而言,我更偏向自己探索吸收,而不是以"喂"的方式學(xué)習(xí)。
JVM
個人總結(jié)的一些不完全要點:
- Java 內(nèi)存模型、運行時數(shù)據(jù)區(qū)
- Java 對象創(chuàng)建過程
- Java 對象的構(gòu)成
- 類加載過程
- 類加載器及雙親委派模型(是什么、為什么、如何主動破壞、優(yōu)缺點、如何實現(xiàn))
- 堆內(nèi)存分配分配策略
- 四種引用類型區(qū)別及含義
- 如何判斷對象已死亡
- 內(nèi)存泄露分析
- 常見GC算法
- 常見垃圾回收器(CMS、G1等)
- Java到底是值傳遞還是引用傳遞
- Full GC原因及排查
- JVM常用監(jiān)控工具(例如 jmap jstack等)
- JVM常見參數(shù)(例如Xms Xms SurvivoRatio等)
周志明老師的《深入理解Java虛擬機》啃起來就完事,涉及到的知識也和操作系統(tǒng)有些關(guān)聯(lián),對于Java的學(xué)習(xí),切勿停留表明語法,都動手實踐,切勿眼高手低。
多線程
個人總結(jié)的一些不完全要點:
- 線程池(Executor框架,為什么阿里巴巴Java開發(fā)手冊不允許使用 Executors 去創(chuàng)建線程池,優(yōu)點,如何使用,如何配參數(shù)「可以看看這篇:Java線程池實現(xiàn)原理及其在美團業(yè)務(wù)中的實踐」)
- AQS 原理
- 常見JUC工具類(CountDownLatch、CyclicBarrier、Semaphore、Atmoic原子類)
- synchronized關(guān)鍵字
- ReentrantLock可重入鎖
- 自旋鎖 / 互斥鎖
- 樂觀鎖 / 悲觀鎖
- 公平鎖 / 非公平鎖
- 讀寫鎖
- Java鎖升級流程(無鎖 偏向鎖 輕量級鎖 重量級鎖)
- ThreadLocal(使用場景 原理)
- volatile關(guān)鍵字(是啥、做了啥、禁止指令重排序、緩存一致性原理、happens-before原則)
- Java線程的狀態(tài)(NEW RUNNABLE BLOCKED WAITING TIMED_WAITING TERMINATED)
- Object.wait T T T方法作用
推薦書籍:《Java并發(fā)編程實戰(zhàn)》《Java并發(fā)編程的藝術(shù)》都很經(jīng)典
Spring框架
個人總結(jié)的一些不完全要點:
- Spring IoC思想、特點、原理
- Spring事物
- Spring循環(huán)依賴
- Spring AOP原理(動態(tài)代理 JDK Proxy CGLib AspectJ java反射機制等)
- Spring MVC原理
- SpringBoot自動裝配原理
- Spring常見模塊(ioc aop aspects jdbc jms orm web test)
- Spring事物傳播機制
- Spring用到的的設(shè)計模式
- Spring Bean的生命周期
針對Spring框架的學(xué)習(xí)一定要多實踐,多翻看官方文檔,切勿只停留于片面的技術(shù)博客,看看開源項目,從一個小demo開始做起,慢慢就會逐漸領(lǐng)會到框架的精髓。
Mysql
個人總結(jié)的一些不完全要點:
- 數(shù)據(jù)庫設(shè)計的三大范式
- MySQL常見存儲引擎(InnoDB MyISAM Archive等)
- 死鎖 innoDB行鎖(gap X S鎖)
- MVCC機制(原理及實現(xiàn) undo log 一致性視圖)
- 事物的ACID特性
- 事物的隔離級別
- 臟讀 幻讀 可重復(fù)讀
- 一條SQL語句執(zhí)行的過程(binlog redolog)
- 索引(聚簇索引、輔助索引、聯(lián)合索引、原理)
- SQL語句分析
- 慢查詢分析
- SQL語句優(yōu)化
- 讀寫分離 分庫分表(水平垂直拆分)
推薦書籍:《MySQL必知必會》《SQL基礎(chǔ)教程》
極客時間丁奇老師的《MySQL實戰(zhàn)45講》也有口皆碑,很推薦!
多聯(lián)系SQL語句,在面試中有可能會讓你手撕SQL題,多在項目中對sql進行優(yōu)化、分析。
Redis
個人總結(jié)的一些不完全要點:
- 五種數(shù)據(jù)類型(string、list、hash、set、zset)
- 其他數(shù)據(jù)類型(BitMap Geospatial hyperloglog等)
- Redis 單線程模型(為什么高效?為什么不用多線程?Redi多線程的目的?)
- Redis IO 多路復(fù)用機制(select、poll、epoll、Reactor模型)
- 持久化機制(快照、AOF)
- Redis內(nèi)存淘汰機制
- 如何判斷數(shù)據(jù)過期?
- Redis事物
- Redis漸進式rehash
- Redis集群(主從復(fù)制、哨兵、cluster集群)
- 如何保證數(shù)據(jù)庫緩存一致性?
分布式相關(guān)
分布式領(lǐng)域的知識真的太多太多了,幾乎是一個無底洞,如果對其中一兩個框架比較熟悉其實在面試中也是很加分的。
不完全要點:
- CAP原則與BASE理論
- 分布式一致性相關(guān)(ZooKeeper、Paxos協(xié)議、ZAB協(xié)議之類)
- NoSQL(Redis、MongoDB、memocached等)
- SpringCloud(服務(wù)發(fā)現(xiàn)與注冊、負載均衡、網(wǎng)關(guān))
- RPC框架(例如Dubbo這類,序列化協(xié)議protobuf這類)
- 消息隊列(業(yè)內(nèi)使用最多的Kafka、阿里的RocketMQ、RabbitMQ)
- 分布式事物、分布式鎖
編程工具
- Git
- Docker
- Linux命令
投遞與選擇
金三銀四、金九銀十分別對應(yīng)春招和秋招的時間節(jié)點,春招大部分面向的是實習(xí)生的招聘,而最后在秋招環(huán)節(jié),一大批的hc要被成功轉(zhuǎn)正的實習(xí)生所占有。
可能對于想進大廠的雙非本科生而言,大三的春招就是你進大廠幾率最大的時候,往往越到后面,面試的要求會越來越高,"機會是留給有準備的人"這句老話一點都沒有錯。
盡量選擇提前批,很多公司的提前批可以免去筆試,而且這時候hc多,面試流程快,只要通過面試基本就有位置。
在投遞上,盡可能進大公司,有大公司給你做的背書會讓你的職業(yè)生涯越走越順。
一點軟實力
拋開技術(shù),其實無論是性格也好,還是情商也罷,雖然表面上看對技術(shù)崗似乎影響不大,但這玩意切切實實會潛移默化的影響別人對你的印象。
就比如在對一個問題的闡述上,一些人的發(fā)言聽起來就很有層次感,很舒服,包括與面試官的溝通(亦或是聊天瞎扯),一個性格隨和開朗,不卑不亢,說話有調(diào)理的人,誰不喜歡呢?
一位前輩也告訴我,拋開技術(shù)層面,面試官也會很在意你的價值觀與為人,如果價值觀或者人品出現(xiàn)問題則會一票否決。一個高傲,說話有棱有角,目中無人的候選人,即便技術(shù)再好可能也不太會博得面試官的認可。
其實軟實力這一塊要在生活中慢慢鍛煉,與不同的人接觸溝通,適應(yīng)不同人的性格。謙卑(不是自卑)的態(tài)度,坦誠的交流,冷靜的思考,往往是一場面試成功的潛在因素。
心態(tài)問題
「少抱怨,行動才是緩解焦慮的最佳途徑」
幾乎沒有人能夠做到安逸的度過一生,產(chǎn)生焦慮的情緒也十分正常,所有的焦慮都來自某種持續(xù)的心理矛盾。
- 警惕身邊販賣焦慮的消息,冷暖自知
- 盡自己最大的努力,只為讓未來的自己不后悔
真的很推薦大家能養(yǎng)成堅持鍛煉的習(xí)慣
每周三次、每次三十分鐘的體育鍛煉,與最強勁的精神藥物,有同樣的效果。
堅持鍛煉給人帶來的好處,其實是潛移默化的,身體素質(zhì)、心態(tài)、外表、性格都會慢慢變好,而且,晚上的時候,會睡得更好。
仿佛亂七八糟的想法和擔(dān)憂,全部隨著汗水流走了,夢中無事,睡眠質(zhì)量的提高,這本身也能緩解焦慮情緒。運動可以讓身體產(chǎn)生內(nèi)啡肽,極大地緩解焦慮水平,一般來說,跑步之后,雖然身體是累的,但精神明顯清爽很多。
給予自己積極的心理暗示,切勿盲目自信,盡力去做,不要讓自己后悔,不管結(jié)果如何。
說在最后
腳踏實地,保持謙卑。
技術(shù)這條路遠遠沒有盡頭,且不過是圍城罷了,外面的人想拼命往大廠鉆,中年程序員想拼命擺脫危機,但無論如何,做技術(shù)的一定要保持一個謙卑的心態(tài)。
一點拙見,還望包涵!
1.《網(wǎng)絡(luò)通識課掛了怎么吧?終于找到答案了我是如何進入騰訊的?》援引自互聯(lián)網(wǎng),旨在傳遞更多網(wǎng)絡(luò)信息知識,僅代表作者本人觀點,與本網(wǎng)站無關(guān),侵刪請聯(lián)系頁腳下方聯(lián)系方式。
2.《網(wǎng)絡(luò)通識課掛了怎么吧?終于找到答案了我是如何進入騰訊的?》僅供讀者參考,本網(wǎng)站未對該內(nèi)容進行證實,對其原創(chuàng)性、真實性、完整性、及時性不作任何保證。
3.文章轉(zhuǎn)載時請保留本站內(nèi)容來源地址,http://f99ss.com/gl/3052575.html