我从外包辞职了,10000小时后,走进字节跳动拿了offer
前言:
沒有絕對的天才,只有持續不斷的付出。對于我們每一個平凡人來說,改變命運只能依靠努力+幸運,但如果你不夠幸運,那就只能拉高努力的占比。
2020年7月,我有幸成為了字節跳動的一名Java后端開發,正如標題所說,我從外包辭職了,10000小時后,走進字節跳動拿下了offer。相信同行都清楚,從外包進大廠有多難,運氣之余,也離不開我自己的腳踏實地,所幸每踏出的一步都留下了厚厚的腳印。
下文內容涉及到:面試題(含答案)+學習筆記+電子書籍+學習視頻, 喜歡的朋友點贊支持一下。A:字節跳動IES互娛面試經歷還原(抖音后臺)
<1> 字節跳動抖音4面面試題
因為我個人有復盤的習慣,所以在面試字節跳動時,基本是做到了每一輪結束就把面試題給總結出來,當然總結出來的可能跟實際情況有細微出入,但相差不大,基本上是我記憶里的極限。
Java部分:
- synchronized,lock,AtomicInteger底層原理
- HashMap,ConcurrentHashMap底層結構原理
- 講講服務注冊于發現(這部分主要講了springcloud eureka 和部分 zookeeper,zookeeper的選舉機制)
- Spring AOP 的實現方式,siglib 能否代理final修飾的類?
- JVM垃圾回收過程,并詳細講一種垃圾回收器
- 強引用,軟引用,弱引用,虛引用應用場景
計算機網絡:
- 擁塞控制和流量控制
- 快重傳和超時重傳
- 為什么四次揮手后客戶端等2MSL
- DNS解析全過程
- http2.0,http3.0
- https的連接過程
- CA證書的驗證過程
- RPC框架了解嗎?
- 如何設計基于udp的可靠傳輸?
- tcp如何保證數據安全性的?磁盤如何保證數據不丟的?
操作系統:
- 阻塞io和非阻塞io
- 進程和線程區別,通信方式分別是什么?
- 虛擬內存和物理內存
- linux 按 ctrl + c 中斷的原理
- 協程高效在哪?
MySQL:
- Innodb,B+樹,聚簇索引和非聚簇索引區別
- 一千萬條數據,問 b+樹大概多高?
- 為什么用b+樹而不是 b樹,紅黑樹?
- 在設計聯合索引時需要注意什么?
- 聯合索引最左原則的底層原理
- mysql 的 MVCC 以及是否解決幻讀?
- 手寫sql,實現一個按時間降序的分頁查詢
- redo log,bin log,undo log
Kafka:
- kafka的rebalence
- ISR
- 如果新加進一個消費者會發生什么?
- 如何保證數據一致性?
Redis:
- RDB和AOF區別
- 為什么RDB 要 fork子進程而不是線程?
- redis基本數據類型
- zset的底層數據結構,跳表何時增加高度?
- 分布式 redis,緩存和數據庫讀寫不一致,答的延遲雙刪
- 面試官讓隨便講講redis,所以還說了緩存穿透,擊穿,雪崩以及處理方法
場景題和智力題:
- 打字的智能提示和糾錯的原理,讓你來設計,你怎么做?
- 如果有一個訪問過的所有網站的記錄集合,如何快速判斷當前網站是已經訪問過?(考慮布隆過濾器)
- 從一個網站下載的時候,進度條如何實現的?
- 64匹馬,八個賽道,問至少跑多少次能找到最快四匹馬?
- 操作系統給你一塊空閑內存,你如何設計使用和回收?
手撕代碼:
- 柱狀圖中矩形最大面積 leetcode 84
- 查找第k小的數,用堆以外的方法做
- 給m個房子涂n種顏色,相鄰房子不同色,cost[i][j]表示給i號房子涂j顏色代價,求最小上色總成本。(LeetCode原題)
其他:(HR和Leader都問了一些開發性問題)
- 你認為遇到過最大的挫折是什么?怎么解決的?
- 職業規劃
- 對字節跳動的認識
- 你認為字節是一家年輕的公司嗎?年輕是核心競爭力嗎?
- 你有沒有崇拜的人
- 不考慮公司地理因素,最想要去哪個城市工作?
- 平時的興趣愛好?
- 喜歡寫博客嗎?看什么書?
贈送我的刷題題庫(1:BAT一線大廠面試真題)
<2> 字節跳動面試總結(一些心得和小建議)
B:我為什么想要去字節跳動?(字節跳動的優勢)
①福利待遇
我不是hr,也不是給字節打廣告,這里真的要提一下字節跳動的福利待遇絕對是一線廠子里數一數二的。加上我是外包出身,這種待遇給我造成的落差感就更明顯,讓我覺得能夠進字節跳動工作算是我最大的幸運了。
至于福利待遇,這里隨便提及幾點:
②巨大的知識庫
字節跳動對于我來說,算是一個巨大的知識庫,之所以這么說,從面試的流程及細節,到后來我入職之后工作上面的安排,都讓我有不一樣的觸動。從這幾方面,我們都能夠感受到公司對于員工的職業規劃非常重視,你的主管和導師都會主動去找你溝通這方面的,這對比我之前的外包,是截然不同的地方。而在這個交流過程中,我獲得到的,不是一星半點。
最讓我佩服的是,字節有統一的入口可以導航到海量的指南和知識沉淀,甚至是其他各個產品線整理的技術和業務文檔等等。
③我看到了認同
來到字節,我看到了認同,收獲了歸屬感。字節跳動雖然年輕,但在做事上有共同一致的目標,這里的人講“字節范兒”,它不是條條框框的束縛,它是一種精神食糧,實質是一種價值認同。恰好,擁有同一種價值認同的人走到了一起。
④雖辛苦,但不感覺累
字節跳動是一家非常年輕化的公司,對于一線的互聯網公司來說,996是常態,字節跳動也脫離不開“加班”二字。但是字節給我最大不同的感受是,忙碌且生機勃勃。在字節工作一段時間了,我也算是跟上了這里的節奏,雖然辛苦,但我卻一點也不感覺累,因為在充實的工作環境中,我是有所收獲的,在公司野蠻生長的同時,我個人也得到了快速的成長。
另外,別以為一線大廠的“打工人”只會死工作,字節人最大的特點就是年輕,他們同樣會玩,每個人都有自己的愛好,騎行、狼人殺、健身、攝影、瑜伽等等,這與我之前對大廠人的印象顯然不同,我也一點一點在慢慢被影響著。
⑤反思:關注工作效率
以前覺得自己的工作效率和時間管理做得還不錯,至少能拿出時間做一點大家想做卻沒有做的事情,但現在才發現這也許只是錯覺,你總做容易的事情,當然不會感覺到時間的壓力,即便是項目進度比較緊的時候,加加班,搞搞996似乎也就那么回事。我們通常都會愿意延長時間,而不是考慮如何提高效率,在同樣的時間內完成更多的工作,當然也有很多不言自明的客觀原因。
來字節后,我才從身邊同事的工作細節中看到了什么才是“效率”。
C:外包教了我什么?(積累了什么?)
很多人認為在外包學不到什么東西,但我卻不這么認為,無論你身處什么環境,造成什么樣結果的人都是你自己。所以,在外包工作的這些年,我并不是單一的機械化敲代碼,在這個過程中,我會主動地去復盤,去總結,去學習,而慢慢積累的工作方式才鑄就了我今天的“質變”。
在外包中,我積累到了什么?
在外包中,我復盤了什么?做了哪些總結?(寫了一些博客,做了一些筆記總結,附下PDF)
- Java架構成長筆記
- Redis核心技術筆記(學習總結)
- Spring全家桶學習筆記(SpringBoot+SpringMVC+SpringCloud+源碼等)
- 其它
D:下一個3年如何規劃?
1.確定發展方向
程序員生涯大致分為五個階段:
- 第一階段:2-3年,初級程序員
- 第二階段:3-5年,中級程序員
- 第三階段:4-7年,高級程序員
- 第四階段:5-8年,互聯網架構師,大數據工程師
- 第五階段:8年+,技術總監,技術主管,首席架構師
目前,我處于第二階段,有一定的工作經驗,可以獨立做一些項目,也有自己的代碼習慣,甚至在團隊中我也可以擔任重要的角色。而日后的1-2年內,我肯定是要往三階段過渡,甚至是四階段過渡。
2.梳理學習路線
想要快速成長,一條合理且正確的學習路線才是最為重要的,所以梳理學習路線,是我目前學習上最重要的事情。(個人梳理的學習路線圖如下)
目標:能夠獨當一面,在專業領域具備輔導他人的能力
學習內容:并發編程與JVM實戰+緩存中間件+消息中間件+搜索中間件+高并發+高可用+搞擴展+網絡通信與協議+分布式與微服務+分布式權限控制+微服務熔斷降級與限流+微服務鏈路追蹤+底層&源碼深入解讀+一線大廠分布式場景實戰
3.學習方法
我個人的學習方法很簡單,利用碎片時間進行系統性的學習。關于學習方法,我個人喜歡閱讀書籍文檔結合視頻的方式,對于這些我自己個人也有一些整理。
- 閱讀書籍文檔:
- 看視頻學習:
結尾:未來愿景及祝福
我知道,對于一些學歷沒有優勢的人來說,外包是別無選擇,但是未來的路究竟要怎么走,取決你的步子邁多開。每個人都有自己的選擇,如果你喜歡穩定,那按部就班適合你,但你有想法,不甘平庸,那就別讓外包埋沒了你。
最后,希望未來的我發展順利,早日拿下p7!同樣,也祝愿你實現自己的人生理想,愿我們都越來越好,共勉!
需要文章中提到的面試題、筆記、電子書、學習視頻,可以點贊支持一下。
總結
以上是生活随笔為你收集整理的我从外包辞职了,10000小时后,走进字节跳动拿了offer的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 生活随记 - 如何教育孩子理财
- 下一篇: 这款工具可以轻松让 Matplotlib