生活是一个圆,你在开始的时候可能已经可以预见终局,但生活有时候又是一条蜿蜒的道路,在这其中充满了很多的机遇与期待。
而关于我的生活,以及如何从校园走向职场的,我很想与你分享一下。
稚嫩的大学生与坎坷的大学生活
本科那几年,过程比较坎坷,尤记得大一在上海还为了名为 “插班生” 的考核而努力,四年间跌跌宕宕的,从一开始的物理专业转到了计算机专业,并认定计算机就是我这辈子的归宿了。转到计算机之后的头一年还是在忙于从复杂的专业课中寻找一丝喘息之气,直到偶然的一次课程设计,以及偶然的一次课上,我打开了慕课网,开始进入 Web 开发的神奇世界。
后面的生活就是如图中开始 “放荡”:
确实,进入 Web 开发世界,或者说是进入了程序员的世界改变了我以前单调乏味的伏案学习的姿态,释放了我的双手和大脑,可以开始不局限于书本而自由的探索,自那以后,我先后学习了 HTML、CSS、JavaScript,然后顺着视频教学中的一些技巧,开始探索 Git、Linux/Shell、了解 Github,还 “差点” 踏入 PHP 的坑,为了完成课程设计 -- 一个简单的全栈电商系统,我又 “被迫” 探索了 Node.js 和 Express,探索学习的路简单而快乐~
但生活不总是活在想象中,它是各种因素组成的复杂共同体,在学习了 “全栈” 开发技能之后,已经能轻松胜任学校课程设计了,并可能是经常在 QQ 空间发一些学习技术的 “说说”,俨然成了同学们口中的 “大神”,所以当学校有一些外包任务或外校过来找创业伙伴时,自然就成为了头几号人选,再加上从小就有一颗创业成才的心,所以经常与这些事情一拍即合。
外包与创业
在做外包和搞创业的过程中,才发现自己平时探索的那些内容只能算是基础,近乎于 “玩具”,比如在为学校的开发一个实时答题系统时,没有各种需求分析、文档设计,也没有考虑网络延迟、性能等方面的因素,当把功能开发完并在自己的机器上进行了 “手工” 功能测试之后,以为已经完备可运行,但实际放到真实环境下运行时,却漏洞百出。比如当时使用这个答题网页的环境是在一个封闭的大会议室里,可容纳 300 多人,网络环境极其恶劣,而为了满足实时性的目标,我使用了 Socket.io 这个库,在网络环境很差的情况下,Socket.io 也会经常遇到掉线的问题,而我没有考虑掉线、重连的场景,就会导致整个数据会全部乱掉;而 300 多人以及大量的 Socket 链接直接击垮了我的 “学生机” 服务器,导致在整个答题活动中现场不停的重启服务器,修复破损的数据,虽然通过这种 “抢灾式” 的维救工作保证顺利度过了答题活动,但同时让我深刻认识到真实复杂场景下,自己能力的严重不足,并寻求之后更加深入的探索以弥补自己的不足。
说完外包生活,再来谈谈创业。正如之前提到的,因为平时喜欢冒尖,所以在外校过来找创业合作伙伴时,我就成了首选合作伙伴之一,在当时还有一个和我同年级计算机专业的伙伴也加入到阵营中来,我后来叫他啊哲。创业相比给学校做外包来说难度等级又更上了一层,我们当时期望做一个 “文体教育 O2O” 解决方案,并期望开发移动端 App,类似饿了么 + 快手模式,一行 7 人筹钱在学校边上租了一个小房子开始了创业旅程,当时时值寒假,有充足的时间进行创业。我主要负责前端工作,啊哲负责服务端开发工作,同行的还有一位了解设计的同学和三位跑市场的,因为没有客户端同学,而我们又要做 App,一度焦头烂额。所幸有一位市场同学之前有过找外包的经验,于是带我们去了解了一些大型的外包团队,去拜访他们,进行学习取经。
生活就是不断学习的过程,一行取经路还是有很大的收获的,至少我们了解到可以使用 React Native 这种技术来实现我们的目标,即用前端技术编写移动端 App,一份代码产出 iOS 和 Android 两端。人齐了,技术方向有了,接下来就是对接需求、产出设计稿、开始开发了。但事情远远没有想的那么美好,故事里经常描述一群人在车库里鼓捣事情,然后产品一经面世,轰动世人,从此水涨船高,走向人生巅峰,成为下一个传奇。其实创业是由一连串看似琐碎的决策、抉择所组成的,在每个阶段需要用不同的眼光看问题,比如在初期人手不足、经验不足,就不应该好高骛远,事事精益求精,在设计上能够画出来的东西,在开发上可能非常难以实现,第一阶段花费的时间太长就非常容易消磨团队成员的耐心,特别是在时间本就不充裕的情况下(寒假也就也一个月,寒假过后还要读书),对需求的不合理判断和规划以及在其他方向没有实质性进展就压垮了团队成员的信心,寒假过后,团队解散,项目随之流产,留下的只是无尽美好的想象和满满的经验。
经过这一段自学、外包、创业的旅程,让我深刻认识到自身的技术实力、各方面软技能与真实世界的差距,感觉各方面都学了一点,但是各方面都不精通,感觉很挫败。而时间又过了一年,站在考研升学、工作、创业的十字路口,难以抉择。看着网上的面经,对比自身的知识深度、广度,发现差距太大,所以都没有踏出去找工作的那一步,选择畏缩在原学校里,凭借还算不错的绩点,保研到本校,选择了一条不需要过多思考的路。
一阵反思
在当时的情景下,我觉得字节、腾讯、阿里离我太过遥远,进入一家小公司又心有不甘,就连步入社会都带有一种条件反射般的恐惧心理,选择保研可能是一种喜乐参半的决定,但我知道,我心有不甘,我的热情还未磨灭,但时机尚未成熟,有待潜心韬光养晦,梦想终究会实现的。
简短的研究生生活与再次创业
我的研究生生活可以用一个比较揶揄的段子来说明:
“花了 2 个多小时等待游玩一个项目,结果 5 分钟就结束了”
在本科生活的末尾,即将毕业的时间里,甩开其他的各种烦恼,我对我的研究生生活充满着期待,我细数着心中的规划:专研深入 Web 开发,了解性能优化、网络、操作系统等底层知识,拥有能够开发大型复杂项目的工程能力等等,接下来一定要花时间好好潜心专研,不再忙于琐碎的事情而没空学习... 对对,还要好好准备简历,最好能抽空出去面试、实习,然后进入大厂认真学习更加专业的知识!
无法安放的心
但实际和我想的大相径庭,研一进去安分了2个月,就开始投入到一个 “微校” 的小程序创业项目中,使用 Taro 开发,依然在自己熟悉的 React 生态里寻找舒适的解决方案,微校专注于通过圈子将校园生活打通,并通过引入 “学校” 这个概念,将各个学校的生活打通,最终组成一个打通中国所有校园的小程序平台,使得各个学校能够共享信息和交换价值,听起来和 “超级课程表”、“微信圈子”、“知乎圈子” 有点像对吧?
“微校” 的创业持续了近一学期,一整个学期我几乎都在撰写各种业务逻辑,包含登录注册、负责服务端数据库设计、消息推送、文章列表、还有聊天列表等,实现了一个现代网站、App 应有的各种逻辑,借助 LeanCloud 的 BaaS 服务,一个人可以抗下所有,前端即全栈。虽然微校开发出来了,投入了使用,并收获了近 100 个用户多次访问,但是需要耗费大量的精力做原始内容的积累以及运营推广,再加上服务器带来的资金压力,最终因人手不足(只有我一个人)导致项目流产。
这让我深刻反思一个道理,创业其实是一群人的事情,平时需要多交朋友,找到互补型的人才,然后创业之前应该做大量的市场调研、走访了解用户需求,然后通过小规模、低成本试错来不断的迭代产品。同时对技术世界抱有了更加大的期待,Serverless 技术的兴起,Node.js 的繁荣,为创业带来的新的机会,更少的人可以做更多的事情。
本来以为接下来的时间可以歇一会,然后安安心心的工作了。
图雀伊始
刚做完微校的那个学期末,偶然的一天,室友啊哲和我聊起了之前在做的 “图雀” 项目,以加速技术的传播为使命的一个偏技术类的项目,主要基于一个 Git 项目,然后提供一个写作工具,可以渲染 Git 提交步骤的每个步骤,并展示 Diff 文件,并为每个 Diff 文件提供上下两个可供撰写解释的编辑框,通过为每个步骤的每个文件撰写解释即可成为一篇文章。之前做了一个半成品,很多还不完善,这次想着要不努力一把直接搞出一个成品出来并投入市场验证验证,想想还是有点激动的,于是乎,始终无法按捺躁动的心,说干就干。
这一次吸取之前的教训,每次迭代一小部分,然后不断的找用户验证,并基于开发的工具撰写文章,开设各平台账号发布文章,多管齐下。图雀项目前端使用 React、TypeScript、styled-components 等库,服务端使用 Express 等技术,编辑器采用 Slate,然后借用了第三方的 Gif Diff 解析器和参考 Gif Diff Viewer 等源码自己实现了定制的 Viewer,经过多种技术栈的组合,投入两个人力,花费大概 1-2 个月时间,把工具的原型搞出来了,我们还建立了 Github 机构账号,开设 Hexo 博客,鼓励社区进行写作并发布到我们的 Hexo 博客里。
经过小半年的努力,各平台访问、粉丝都开始爆发,掘金到达 LV5、公众号粉丝突破 1W+、知乎也取得了不错的成绩,但是最初的选项有所失误,Slate 极度不稳定,经常卡死,在内容多的情况下具有严重的性能问题,需要开发者做很多的努力优化,而这又属于整个写作工具的核心,没有它就没有写作工具;再加上当时快要到研究生毕业答辩,我们仍然没有找到稳定的变现模式以养活我们 2 人,种种困难叠加在一起,导致思考出现阻塞,频繁变更技术栈,调研一些无关的内容,以及一些伪投资人的忽悠,最终不得不放弃,艰难的放下,很不舍,但现状所迫。
顺便一提,在图雀项目开始的第一个寒假,就遭遇了人类史上空前的灾难 -- 新冠疫情,目睹了这等惨状,再加上自己艰难的遭遇,难免给人一种想要退却的感觉,而新冠的到来让我们在家待了近一年,失去了在充裕时间里线下推广图雀的时机,而研究生生涯又即将结束,命运总是这样,需要为将来能成大事的人提供充分的考验,我心里这样想着。
2 年半的研究生生活,有 2 年都在创业中度过,只留下短短半年准备研究生的毕业事宜,有遗憾,但只能前行。
阿里梦,梦未圆
时间来到了研究生生涯末尾,多次简短的尝试创业都没有结果,别无他法只能开始埋头找工作了。在整个前端学习生涯中,接触到各种各样的技术,虽然不够精湛,但是什么都懂一点,其中前端重度使用 Ant Design 作为开发标配组件库,在状态管理则用过一段时间的 Dvajs,还对 qianqun 微前端框架有所耳闻,同时在做图雀的过程中一直也对语雀(蚂蚁集团推出的文档知识库产品)推崇有佳,所以找工作时的第一个想法就是想进阿里,想进蚂蚁集团,想进体验技术部,能够和偏右、苏千、阮一峰等大牛一起工作,探索体验科技的乐趣,我想这可能是绝大部分前端工程师向往的圣地吧。
所以一开始就以进蚂蚁的体验技术部为目标开始准备面试,由于之前没有任何实习经历以及大厂的面试经历,身边也没有有相似经历的朋友、学长学姐,所以就只能自己去探索如何去准备面试。
开始准备面试
可能和绝大部分同学类似,预计在 7 月进行面试,而在 6 月开始准备时,一般会考虑把前端知识从 0 开始相关的书籍、教程再看一遍,以确保准备没有漏洞,于是就有了下面的看书组合:
除此之外还看了一些前端工程化、CSS 深入、TypeScript 相关的书籍:
当然还有一些比较经典的理解 JavaScript 的书籍:
一股脑整理了上述十几本书籍,准备大刀阔斧的看一轮,好好准备自己的面试,以期查漏补缺。显而易见,刚开始的 10 多天还能坚持下来,但是 10 多天下来发现这样看下去太慢了,虽然我尽可能快和粗略的看了,但也只完整的看完了前端工程化、你不知道的 JavaScript 三件套,其他就是蜻蜓点水,粗略的看了大概,所以基本没有学多少知识,同时时间也临近开始投递简历、面试的节点,再在网上搜罗了一些面经,发现绝大部分都不会,顿时心里就慌了,这个时候我知道需要改变准备策略了。
因为在准备期间经常会有看别人面经的习惯,所以我灵机一动,能否通过收集大量的面经,然后从面经里面提炼共同点,然后总结出一份面试考卷和答案呢?我觉得是可行的,只要面经的数量够大,那么可以覆盖绝大部分面试题目,再加上自己准备过程中的理解和过去的一些经验,应付面试应该够了。
于是我开始了比较疯狂的面经总结和提炼之路:
我大致的流程如下:
- <section style="margin-top: 5px; margin-bottom: 5px; line-height: 26px; text-align: left; color: rgb(1,1,1); font-weight: 500;">
搜索关键词:xxx 公司前端 一、二、三、四技术面面经,因为现在离 HR 面还太过遥远,走一步看一步
</section> - <section style="margin-top: 5px; margin-bottom: 5px; line-height: 26px; text-align: left; color: rgb(1,1,1); font-weight: 500;">
接下来就是总结出需要面试的主题,经过多轮面经的洗礼,大约总结出如下主题:
- <section style="margin-top: 5px; margin-bottom: 5px; line-height: 26px; text-align: left; color: rgb(1,1,1); font-weight: 500;">JavaScript 基础</section>
- <section style="margin-top: 5px; margin-bottom: 5px; line-height: 26px; text-align: left; color: rgb(1,1,1); font-weight: 500;">CSS 基础</section>
- <section style="margin-top: 5px; margin-bottom: 5px; line-height: 26px; text-align: left; color: rgb(1,1,1); font-weight: 500;">计算机网络</section>
- <section style="margin-top: 5px; margin-bottom: 5px; line-height: 26px; text-align: left; color: rgb(1,1,1); font-weight: 500;">浏览器相关</section>
- <section style="margin-top: 5px; margin-bottom: 5px; line-height: 26px; text-align: left; color: rgb(1,1,1); font-weight: 500;">性能优化</section>
- <section style="margin-top: 5px; margin-bottom: 5px; line-height: 26px; text-align: left; color: rgb(1,1,1); font-weight: 500;">前端安全</section>
- <section style="margin-top: 5px; margin-bottom: 5px; line-height: 26px; text-align: left; color: rgb(1,1,1); font-weight: 500;">前端算法</section>
- <section style="margin-top: 5px; margin-bottom: 5px; line-height: 26px; text-align: left; color: rgb(1,1,1); font-weight: 500;">前端框架</section>
- <section style="margin-top: 5px; margin-bottom: 5px; line-height: 26px; text-align: left; color: rgb(1,1,1); font-weight: 500;">前端构建与编译</section>
- <section style="margin-top: 5px; margin-bottom: 5px; line-height: 26px; text-align: left; color: rgb(1,1,1); font-weight: 500;">操作系统</section>
- <section style="margin-top: 5px; margin-bottom: 5px; line-height: 26px; text-align: left; color: rgb(1,1,1); font-weight: 500;">Git</section>
- <section style="margin-top: 5px; margin-bottom: 5px; line-height: 26px; text-align: left; color: rgb(1,1,1); font-weight: 500;">数据库</section>
- <section style="margin-top: 5px; margin-bottom: 5px; line-height: 26px; text-align: left; color: rgb(1,1,1); font-weight: 500;">Node.js</section>
- <section style="margin-top: 5px; margin-bottom: 5px; line-height: 26px; text-align: left; color: rgb(1,1,1); font-weight: 500;">一些开放问题、智力题</section>
- <section style="margin-top: 5px; margin-bottom: 5px; line-height: 26px; text-align: left; color: rgb(1,1,1); font-weight: 500;">手撕代码</section>
- <section style="margin-top: 5px; margin-bottom: 5px; line-height: 26px; text-align: left; color: rgb(1,1,1); font-weight: 500;">
接着在每个主题里面整理对应的问题,并根据多个面经里面多次出现的题目标注权重,依次递增,方便之后时间来不及时重点复习,大致如下:
</section>
其中 2 代表出现过两次。
- <section style="margin-top: 5px; margin-bottom: 5px; line-height: 26px; text-align: left; color: rgb(1,1,1); font-weight: 500;">通过这样的过程,最终每个主题都准备了 20-30 道题,其中 JavaScript 的尤其多,多达 40 多道,在总结问题的过程中,提炼各个面经的答案,以及查阅资源了解前后的关联和把握来龙去脉,并将其背下来,对,就是这么简单粗暴🌚</section>
上述过程简单粗暴,但是非常有用,关键是还省时,其实整理这些题目和答案的过程大概耗费 2-3 天,然后通过查阅解答补充完善每个答案的过程大概耗费 5 天左右的时间,在准备答案的过程中会有第一次记忆,接着就是从上到下一个个的背下来,这个大概耗费一周左右的时间。
除此之外,大厂面试还着重注重算法的考核,在经过自己无厘头探索了多种复习算法的方法之后,发现了一个宝藏博主:labuladong,和它的 “算法小抄” ,关注它的公众号,然后看对应的博客,跟着博客看题解把所有的题目都刷一遍,大约 150 道算法题,第一轮可以看答案然后手写一遍,记住套路和答案,然后自己不看答案再刷一遍,整个过程大约耗费 1 个月,在 5 月中旬开始准备面试还没有头绪准备其他知识时,在算法这一块却早早的找到了方法,感觉互联网,感谢这些分享高质量技术知识的人,事实也证明了之后在面试时几乎回答出了每一个算法题。
仍然记得那十几个准备面试的夜晚,每天早上 8 点多起来吃过简单的早餐之后就开始背题,然后一背就是一整天,仿佛回到了高三的岁月,虽然日子单调乏味,但是简单快乐,没有多余的杂念,当时就只想着一件事:“找到心仪的公司”,如同高三时 “考入心仪的大学” 一般向往。
放一组当时拍的照片吧。
可能大家觉得很磨难,但其实我感觉有点乐在其中。
就这样时间来到了 6 月下旬,到了该投简历的时候了,内容刚刚准备完毕,我长长的舒了一口气,开始调整重心准备自我介绍和简历。
经过准备面试的经验,在准备简历之前我也着手进行大量的调研。因为目标是阿里,所以我在知乎上买了一门课,叫 “应届生如何拿到阿里 Offer”
然后饶有兴趣的学了起来,当时因为是特殊时期,需要大量的知识输入,所以开通了各平台的会员(LeetCode、知乎等),我记得当时知乎盐选会员这个只要 9.9 元。整体听下来发现大厂在面试的时候主要关注如下几项内容,整体的我也记了笔记,有兴趣的同学可以看看:
- <section style="margin-top: 5px; margin-bottom: 5px; line-height: 26px; text-align: left; color: rgb(1,1,1); font-weight: 500;">基础知识是否扎实?这是基本</section>
- <section style="margin-top: 5px; margin-bottom: 5px; line-height: 26px; text-align: left; color: rgb(1,1,1); font-weight: 500;">对待技术、开源社区是否有热情,对现在前端的前沿技术是否有了解</section>
- <section style="margin-top: 5px; margin-bottom: 5px; line-height: 26px; text-align: left; color: rgb(1,1,1); font-weight: 500;">软技能层面沟通是否流畅?表达是否有逻辑,是否有皮实、好学的心态?</section>
- <section style="margin-top: 5px; margin-bottom: 5px; line-height: 26px; text-align: left; color: rgb(1,1,1); font-weight: 500;">在学校是否有拿得出手的成果?Github、ACM 竞赛等是否有参加?除了技术是否还了解产品、设计等相关的知识?</section>
- <section style="margin-top: 5px; margin-bottom: 5px; line-height: 26px; text-align: left; color: rgb(1,1,1); font-weight: 500;">以及最好是通过内推等形式去寻找自己心仪的工作</section>
通过上述的了解,我写出了自己的第一份自我介绍,以及通过搜索发现了 WonerCV 这样一个写简历的工具,我写出了自己的第一份简历。
与阿里的邂逅
经过准备面试、自我介绍、简历,基本可以开始投递简历承接面试了。说来也巧,因为之前运营过图雀微信公众号,并且粉丝量还不错,于是腾讯 IVWeb 团队要宣传 TLC 大会时,找到我帮忙宣传,而 TLC 大会的分享邀请到了蚂蚁的死月,也就是那个前端明星之一:
而我也机缘巧合的加到了死月的好友,并通过他帮我内推到蚂蚁体验技术部 · 平台前端岗位,经历长达一周的焦急等待,心中五味杂陈,既有可以面试这个岗位的期待、惊喜,也有怕面试不达标的恐惧,我收到了一个好友请求,对方宣称是支付宝的前端工程师,然后找我协调面试时间,我定到了晚上 8 点左右开始。
第一次梦的破碎
我以为的面试是面试官会邀请你进入一个会议室,然后问题自我介绍,接着再开始提问,如此往复,我在准备面试时已经在心中推演过这个流程,所以并不显得慌乱。但谁知道等到 8 点,面试官没有如期打来电话或发视频会议链接,而是给我发了一个压缩包,接着说:
然后我收到了这个:
5 道实战题,在 2小时内做完,没有任何的交流,上来就是实战考核,这让我有点心惊胆战,心想:“这就是体验技术部的面试吗?”
题目无疑是非常难的,经过了艰难的两小时,我最终完成了四道题目,还有一道题目完成了一半,于是草草的将代码打包发给了面试官,面试官给我发回一句话:
然后就再也没有了下文,我没有再收到关于蚂蚁的任何回复,没有通知我面试成功或失败,就这样,梦在无声中破碎了。
终究与腾讯擦肩而过
阿里的面试让我认识到自己的差距,但是并没有打消我的积极性,我当时不信邪每家公司都这样面试。于是乎我开始海投简历,通过 https://join.qq.com/ 投递腾讯的岗位,由于一直对内容感兴趣,所以选择了 PCG 平台与内容事业群,虽然不知道具体是干嘛的,但对于内容总是充满了各种期待。
腾讯的面试稍显正常,一共两轮技术面,1轮 HR 面,面试流程和面经上提到的类似:自我介绍-提问-做算法题。
具体 1 面问的内容如下, 2 面当时因为和 1 面的内容大致差不多,所以就没有再次记录,因为内容基本上和准备的差不多,所以技术面就通过了,甚至感觉有点太过轻松了。。。:
而 HR 面的内容也正好命中了事先准备的问题,因为经过事先反复的背诵和推演,所以也顺利通过了 HR 面试。
经过长达 1 个月的总结和复习,所幸值得,这些积累帮助我安全度过腾讯的面试。
收到这封邮件的我简直就像做梦一般,喜悦弥漫在嘴角,心中洋溢着幸福,我已经忍不住想要和我的父母、朋友去分享这份喜悦。
很激动第一次进大厂
拿到 Offer 之后我自然很想快点去实习,体验一下大厂的生活以及与我预想的是否一样,月中拿 Offer,月底我就启程前往深圳,腾讯大厦报到,经历过一路风景、租房,最终来到了自己的工位。
深圳的天是极美的,硕大的云,极蓝的天,一望无际的海和未来可期的梦,刚来到这个城市,我就感觉我是属于这个城市的,我可能会在这个城市留下点不同的东西。
理想与现实差距太大
刚刚进腾讯是是惊喜的,来到了 PCG 的某效能与工程平台做前端,每天吃好吃的食堂,去腾大蹭健身房,每天中午睡觉起来去喝一杯瑞幸咖啡,享受着老板般的大工位,一周就可以拿到好几个的腾讯公仔,这一切都是很美好的。
我期望的是做前端工程建设,编写有意思的业务逻辑,去优化业务性能以适应海量用户需求,与一群年轻的朋友共同开拓天地。
但是,也许是因为做的内容并非我喜欢的,也许是哪里的人年纪都偏大使得我们没有太多的共同语言,热情感一天天的消退着,在过了 2 个月之后,终究是难以忍耐想要离职,伴随着学校发来通知需要回校准备毕业答辩,且不能长时间离校,成为了解放我的钥匙,我向上级提了辞职,向帮助过我的人道谢,感谢他们成为我成长路上的指引人,同时向腾讯致以诚挚的谢意,成为我人生中第一个进入的公司,圆了我的大厂梦,让我拥有自信能够迈向更加广阔的平台和承接更加有挑战性的任务。
再战再面,拿下 IVWeb
虽然回到学校去准备毕业答辩,但当来到深圳之后,我就爱上了这个城市,虽然离开了第一次入职的部门,但是我对腾讯整体还是抱有很大的期待,工程师的文化,简单直接,再加上在入职期间阅读了 《腾讯传》对腾讯的认识又上了一层楼,所以尝试更换一个比较有名的前端团队,进入前端开发主流的路径,可能会激发我的热情,
所以在第一次入职一个月之后,我就开始尝试投递 IVWeb 团队,通过之前做图雀的关系找到了 IVWeb 团队成员进行内推,显然这个有名的前端团队面试难度大了很多,一共需要四轮技术面,分别是腾讯 T9/T9/T10 以及总监面,压力无疑是巨大的,第一面的难度感觉已经是之前第一次面腾讯的好几倍,但所幸之前的准备方法有奇效,虽然困难,还是通过了前三面。到总监面时,难度又上一层楼,一开始是下午给了三个小时做一道 LeetCode Hard 的题目,然后晚上线下见面面试,我做完了算法题,但是线下面试感觉发挥不太好,面试完成之后回去着急的等待结果。
自总监面试完之后的一周之内,仍未收到面试结果,我依然煎熬的在原部门上班,吃过午饭正准备躺下睡觉时,收到了来自 QQ 邮箱的邮件,通知我通过了第四面,当时激动的从工位跳起来了,还惹得周围人投来奇怪的眼光,果然,一中午没有睡着。
一面:
二面:
三面:
四面:
最终在第一次职业生涯辞职前拿到了 IVWeb 的前端工程师 Offer,满载而归,安心的回到学校准备毕业答辩。
具体面试的题目与答案详情可以戳这个链接:https://www.yuque.com/tuture/interview/wrzl64
天道酬勤,终进字节
- <section style="margin-top: 5px; margin-bottom: 5px; line-height: 26px; text-align: left; color: rgb(1,1,1); font-weight: 500;">最终的归属,冥冥感觉就是要来这里</section>
- <section style="margin-top: 5px; margin-bottom: 5px; line-height: 26px; text-align: left; color: rgb(1,1,1); font-weight: 500;">Always day 1 的文化</section>
- <section style="margin-top: 5px; margin-bottom: 5px; line-height: 26px; text-align: left; color: rgb(1,1,1); font-weight: 500;">不讲 title,能充分调动个人积极性</section>
- <section style="margin-top: 5px; margin-bottom: 5px; line-height: 26px; text-align: left; color: rgb(1,1,1); font-weight: 500;">难忘的经历</section>
- <section style="margin-top: 5px; margin-bottom: 5px; line-height: 26px; text-align: left; color: rgb(1,1,1); font-weight: 500;">团建生活</section>
- <section style="margin-top: 5px; margin-bottom: 5px; line-height: 26px; text-align: left; color: rgb(1,1,1); font-weight: 500;">未来可期</section>
偶然的相遇
回校准备毕业答辩的几个月时间里,实在是比较枯燥无味的,单调的日子难以安放躁动的心,每天看着自己的 Offer,以及不时的查看应届生薪水的小程序,看着各大厂最新的薪资状况以及大家的评价,尤其对字节跳动推崇有加,然后再翻看一些字节跳动的介绍以及一些人的生活工作经历,都宣称字节跳动是工程师向往的圣地,这里不讲 Title,开放谦虚,Always Day 1 的文化吸引了很多有闯劲,敢拼搏的年轻人的加入,而字节最近的产品又盛极一时,在全球大有盖过微信的势头,且字节跳动向来以注重算法题考核、面试标准极其严格而著称。
经过面试成功 IVWeb 的我信心大增,既然能够通过这么困难的面试,那么为什么我不试试字节跳动呢?说干就干!接着捡起我之前准备的内容,进行二次复习,以及去往 LeetCode 着重刷字节跳动专题的面试题,然后收集字节跳动的面经继续补充我的武器库,同时了解字节跳动注重的内容,考核标准,并相应的调整我的面试策略和修正我的自我介绍,并为简历里加入新的腾讯实习经历。
经过一周左右的准备,我开始通过***公众号内推字节跳动的岗位,因为之前做图雀时是向往编程教育,所以进字节的第一个理想岗位也是在线教育。
字节跳动是三面技术面,一轮 HR 面,投递后大约一周左右我就收到了面试邀约,字节的面试邀约相比其他公司会正式得多,其他公司一般都是直接通知你什么时候要面试,而字节跳动每一场面试都会有专门的 HR 打电话联系你,然后询问你可以面试的时间,当你有突发情况时还可以有效调解时间,非常人性化,让人感觉到很舒服。
果然经过之前的洗礼以及证明有效的面试策略,面试字节跳动时显得相当从容,每轮技术面虽然有一些难度,但是还是绝大部分都能够回答得上来,面试题也基本攻克,最后顺利度过了字节跳动在线教育职位的面试。
一面:
二面:
三面:
具体面试的题目与答案详情可以戳这个链接:https://www.yuque.com/tuture/interview/wrzl64
突然其来的加面
正当我还在沉迷于面试通过的喜悦中,以及准备毕业答辩的煎熬中时,大约一个月后,突然收到一个来自字节跳动 HR 的电话,通知我进行加面,进行第四轮技术面,我当时心里一惊,为什么都已经收到录用通知了还通知加面?后面我通过查阅资料了解到这可能是字节对于优秀候选人的再次验证措施,也就是通过加面来决定你的职级和薪资,有可能加面就是 SP 或 SSP。
怀揣着这个心情,我重新投入到准备面试的状态中,以迎接 1 周之后的面试。后来入职之后才得知加面的面试官是我们整个教育线前端的 Leader,有点后悔当时在加面过程中表现的不是很好,可能是准备的知识有盲区,实际面试的时候有多处答不上来或者答的不深入。
后面找 HR 反复确认过之后了解到这次加面确实不影响 Offer 的发放,我也在之后收到了谈薪电话并发放了正式的 Offer。
入职新体验
有了腾讯的实习经历以及腾讯 IVWeb 的 Offer 作为兜底之后,我当时的心情是特别想去字节跳动实习看看,体验一下 “工程师圣地” 的实际模样,于是等待毕业论文基本提交,离正式的毕业答辩还有几个月时间的空档期里,我与 HR 沟通了实习意向,并去往深圳实习。
友好的 Landing
字节的生活无疑是更让人难忘的。
无限的零食与下午茶:
免费的三餐:
黑网吧式工位🌚:
以及来了不到两周就被拖进团建的队伍,享受一把正式员工待遇:
持续成长
字节的很多东西都吸引着我,年轻的同时,奋斗的氛围,畅通流动的信息,符合我兴趣的技术研究和大规模业务开发落地。
刚进入时,会有很多的培训,关于 HR 的、一些技术 Leader 的,还有很多破冰的培训。
字节跳动强调自驱成长,平台是公司给的,成长是自己的。对这句话印象最深刻的就是,刚来公司的第一天,我组长就发给我一堆长长的文档,跟我说先看完这些东西了解各种开发环境,然后还不时的关照我说:“我们团队很 Open 的,有什么想法可是随时提出来”。
字节跳动的员工都是极其优秀的,有闯劲。和我在一个小组的几位同学,很明显能看到他们每天都在成长,每个月会有不一样,每个双月都会有一些令人刮目相看的产出。
而 360 打分与考核更加加深了员工成长的透明度。字节的 9 周年伴随着其 Inspire Creativity,Enrich Life 的使命而更加悠远流长,这是一家可能会活很久的公司。
字节跳动的信息是加速流动的,随时接纳反馈和进行改进。印象最深刻的例子就是,每个人的工位前会有一盆草,里面会有一个二维码可以扫描进行反馈,吐槽你对最近工作的不满,以及当某天食堂饮料机缺少我喜欢喝的红牛时,我通过飞书值班号进行反馈,第二天就补齐了全套红牛。
我记得我后面经常与人笑称:“字节跳动的实习生就是正式员工”,当别人家公司实习生还在被安排装环境时,字节的实习生已经开始写业务,进行排期,并提测上线了。
这是一家能帮助你在技术、软实力、视野等各方面综合提升的公司。
Always Day 1
后来听很多人说,吸引他们加入字节的可能无限的零食、下午茶,可能是年轻的同事,可能是高薪资 ... 种种种种,但字节吸引我的可能是他 Always Day 1 的风格,始终创业的字节范儿,全球创作与交流平台的愿景。
我心中的创业梦仍未磨灭,我将继续学习、不断改进和成长,以期完成我儿时的梦想:“在中国 IT 界有所成就”。
Always Day 1。
未完待续
进入字节实习了几个月之后,我回学校进行了毕业答辩,并领取了毕业证,拍了毕业证,宣告我人生中的一个阶段的结束。
最后因为在字节出色的实习体验以及对比腾讯和字节 Offer 薪资之后,选择了留在字节。
我想,人生中会有很多类似这样的阶段,本科和研究生只是一种具象化的展现罢了,而未来我会在很多这样的阶段中不断学习,终生学习,Always Day 1 。
</section>/ 感谢支持 /
以上便是本次分享的全部内容,希望对你有所帮助^_^
喜欢的话别忘了 分享、点赞、收藏 三连哦~
欢迎关注公众号 程序员巴士,一辆有趣、有范儿、有温度的程序员巴士,涉猎大厂面经、程序员生活、实战教程、技术前沿等内容,关注我,交个朋友吧!