本文最后更新于 over 3 years ago,文中所描述的信息可能已发生改变。
那一天我二十一岁,在我一生的黄金时代。 我有好多奢望。我想爱,想吃,还想在一瞬间变成天上半明半暗的云。 我来我才知道,生活就是个缓慢受锤的过程,人一天天老下去,奢望也一天天消失,最后变得像挨了锤的牛一样。 可是我过二十一岁生日时没有预见到这一点。我觉得自己会永远生猛下去,什么也锤不了我。 —— 王小波「黄金时代」
许久不见,见字如面。
作为虎年的第一篇博文,我决定讲讲自去年实习以来与工作相关的故事。
只不过,我是属牛的。
在过去的几年,虽然多有波折,但也许也是我一生的黄金时代。 我有着很多的奢望,并以为自己会生猛下去。 与此同时,我也预见过一些被锤的自己,但不愿相信。
前言
尽管很久前便立下要写记录面试的博文,「以儆效尤」。 但苦于拖延症,直至今日我才督促起自己将其完成。
当然这也是多方因素导致。 一个原因是我正在开发 valaxy,以重构我的博客,提高用户体验。 另一个原因是,近些日子我的表弟同样在寻找工作,并且毕业于计算机科学与技术,遗憾地是没能爱上代码,并决定另谋出路。 小姨劝我给他些建议,但思来想去,除了稍微写写代码,其他领域我却一窍不通。 便大致说了些囫囵话,寻找自己擅长类型的工作,而不是什么类型都投。寻找自己有些兴趣的工作,并为之后积累经验。 表弟的交际能力远强于我,且自言对销售还算有点兴趣,因此也有往此处考虑的可能。
因疫情影响,今年的就业形势似乎也并不乐观。 只是此时联想起仿佛昨日还在寒暑假和表弟玩电脑游戏,转眼间便各自要为生活奔波,难免有些唏嘘。
回到正题。 还有一个原因则是次日班内举行就业分享,也许需要我发言,也算是提前回顾一番。 我的工作去年十月左右便已经确定,因此并没有参与今年的春招。 当然根源还得从去年夏天说起。
过完寒假返校的我,虽然说着要当老师,信息资格证面试却未能顺利通过。 (好在第二次尝试顺利通过,但得到结果时已经是去年六月,那时的我已经开始实习。)
详情还请见 关于我打算当老师并报考教师资格证这件事
以防万一,加之从众心理,我决定跟随实验室的朋友们一起开始准备投实习。 也试图真正体验一下工作的感觉,再作日后考虑。
实习
说实话,那时的我对于能否得到一份还算不错的互联网实习完全没有信心。 但是开始时间已经很晚了,实验室的师兄们也是建议该早点投了。 我选定的岗位自然是前端工程师。
根据搜索及师兄们的建议,准备通常是看面经和刷题。
我翻了翻去年的 LeetCode 记录,于 2021-03-23 正式开始准备刷题,并总共持续约半个月,结束实习战斗。
……,只是事实并没这么简单。
面试
后续内容可能有些枯燥,本着勉强也可当作面经的打算,我会尽可能说得详细点。 但时隔许久,有所遗漏也在所难免。
我也曾记了些笔记 fe-notes,但确实并没有好好整理,还请凑合。 以及我的简历是用 web-resume 写的,因为想着前端嘛,就用网页来做更合适。
每场面试开头会需要做自我介绍,因此最好准备一段熟悉的话。
先说总体情况:
公司 | 方式 | 投递时间 | 收到 Offer |
---|---|---|---|
百度 | 官网 | 2021-04-02 | 2021-04-25 |
腾讯 | 官网 | 2021-04-03 | 2021-04-22 |
阿里 | Boss 直聘 内推 | 2021-04-07 | 接到腾讯 Offer 后放弃面试 |
小米 | 官网 | 2021-04-03 | 简历未通过审核 |
蚂蚁金服 | Leader 内推 | 2021-05-31 | 2021-06-16? |
关于我过了腾讯鸽了百度推了阿里却连小米简历筛选都没过这件事
腾讯
最早面试的是腾讯,因为可能是提前批,所以不需要笔试。
总共四面,三面技术 + HR 面。
- 2021-04-07 19:30-20:23 (53min) 一面(技术)
- 2021-04-09 16:00-16:40 (40min) 二面(技术)
- 2021-04-12 16:02-16:12 (10min) 三面(总监)
- 2021-04-13 11:00-11:14 (14min) HR 面
部门是 CSIG 智慧出行。 当然那时我还不知道,单纯地被通知便去面试了。
面试工具是在线的网页叫腾讯面呗(后来就主要是用腾讯会议了)。
19:30 的面试,大约 19:26 就开始了。 因为很紧张,所以上来的自我介绍就支离破碎。 面试官也说我看起来好像很紧张,我则说这是我第一次参加工作面试。 (还请手下留情,当然这句话并没有说。)
几处问题,没有回答全,面试也说没事没事。
总体感觉还好,就是自己可能太不争气。
因为是第一次面试,所以立马就把题目记了一遍。
一面:
- JavaScript
- 闭包
- js 垃圾回收
- 内存管理
- 计算机网络
- http 状态码
- url 输入后发生了什么
- get post 区别
- 除了 get post 还有哪些
- http https 区别
- https 原理
- jwt 鉴权,原理,缺点
- secret 加密(编码)(base64)
- session cookie 区别
- localstorage
- 跨页面传递数据
- CORS 解决
- 有哪些网络攻击的方式
- OAuth 2
- 操作系统
- 进程 线程
- Linux 文件操作
- 数据结构
- 数组/链表区别和应用
- 红黑树的特性
- 算法题
- 数组重叠
- [1,2,5] 11 球的重量 最少多少个
- 最大公约数
- 最后
- 3-6 个月 能接受 6 个月吗?(我:不行,5 个月可以)
- 深圳能接受吗?(学校在北京,所以深圳不行)
二面:
- 手写节流防抖函数
- 顺时针打印二维数组
- 第三题还没看,面试官说不用做了
- 赛马问题
- 未来就打算做前端吗?忘了回答什么了。
- React 能写吗?(我:Vue 擅长一点,React 写过一点点(指给面试官看小空调,那时候还不是很火))
Q: 可能会写一些比较枯燥的东西,你怎么看? A: 我觉得枯燥的东西一定是可以抽象成可复用的东西来提高效率,这个过程便是学习的过程。 (提了一嘴我的可配置的 Web 简历 web-resume)面试官说挺别致的。
反问:
我:部门做什么的?(介绍了一堆,好像是车相关的。但是没大听懂。)
三面:
Q: 你是怎么学前端的? A: 看一些帖子,想要实现某个功能或了解某方面的知识,我会自己搭一个类似的框架,去看开源项目的代码实现。 (夸我自学能力挺强的)
Q: 深圳? A: 学校在北京,优先北京。
这个部门,北京没有前端高级工程师带我,可能主要是线上远程的一些交流。
Q: 以后工作是否考虑深圳? A: 实习考虑北京。工作,家里很自由,随便我选择,我也挺想去深圳看看。
Q: 除了个人开源项目,有没有写和后端协作的项目? A: 介绍了下实验室项目。 Q: 遇到的优化问题? A: nuxt generate 词云 json 缓存
Q: 哪里人? A: 江苏
反问
Q: 咱们现在架构用些啥?有没有用 TS? A: Vue 和 React 都有用。TS 小程序有用。(所以其他项目大概率没用?)
四面:
Q: 职业规划 A: 前端
Q: 哪里人? A: 江苏连云港
Q: 哪个区? A: 海州区
Q: 你在 XX 中学读书吗? A: 我在新海高级中学 Q: 喔,这应该是连云港最好的高中了吧? A: ……(难道是老乡???没好意思问。)
Q: 说说自己觉得的三个优点? A: 热爱开源(开源精神)、为人热心(提了下自己去支教)、爱好科幻(并试图去做)
Q: 说说自己的特点? A: 坚持(讲讲自己维护开源项目)
Q: 有亲属在腾讯工作吗? A: 没有,有同学之类的在。 (似乎要规避亲属)
Q: 北京深圳,未来工作? A: 北京,未来自由
百度
百度统一做了一次笔试,也是我做的唯一一次。 百度面试和笔试平台是牛客网。
- 2021.04.11 19:00-21:00 笔试
- 2021-04-18 15:55-16:45 (50min)一面 技术
- 2021-04-18 17:09-17:46 (37min)二面 技术
- 2021-04-18 17:58-18:29 (31min)三面 技术人生
- 2021-04-25 收到 Offer(已拒)
一面:
一面面试官一边问,一边在聊天框记了题目,所以我得以直接复制下来了。
两个子元素,一个靠左,一个靠右 float,flex => justify-content:space-around
滚动底部吸底 js sticky=>兼容性
JS 基本数据类型 引用类型 array,object 深拷贝 => all 浅拷贝 => 第一层
箭头函数特点 this,arguments var self = this;
babel 作用 AST 树 […{}] babel6 => 不报错 […{}] babel7 => 报错 iterator
poliyfills ponyfills A: ponyfills => const reduce = () => {} B: poliyfills => Array.properties.reduce Polyfill
数组 API reduce => map
js 事件循环机制 宏任务,微任务【promise】
代码
jsfunction Test() { try { const d = new Promise((resolve, reject) => { resolve() }) d.then(() => { throw new Error('111') }) } catch (err) { console.log(err) } } Test() Promise.try
es lib
this.$set() vue 2.X => Object.difieProperty vue 3.X => proxy Arrary.properties.XX = () => {}
百度搜索输入框优化 节流,防抖,缓存
- js
const test = [ { name: 1, children: [ { name: 2, children: [ { name: 3, }, ], }, ], }, ] const result = [ { name: 1, }, { name: 2, }, { name: 3, }, ]
面试官看了我的博客,让我顺便说了说当时第一篇博客的 char-dust 实现。
Q:写了多少 npm 包,插件之类的? A:几十个,觉得有趣或有用的时候就去写写。
反问:
Q:这属于什么部门吗? 现在是交叉面的环节,具体部门还不知道
让我别下线,等会接着
二面:
自我介绍
Q:Element(2) 你提了什么 PR?(那时候还没投入写 Element Plus)
- 颜色设计适配
- 圆形按钮
- 卡片阴影
- 简化 popper 逻辑
- …
Q:apply 实现一个 bind
Q:写个节流函数
对了,辣鸡牛客网没办法 console.log。
Q:script 在 body 里会阻塞吗? A:放到 body 最后面,或者 async/defer 属性
Q:function 和箭头函数的区别
Q:回流 重绘 Q:translate 会触发什么
Q:CORS 和解决办法
Q:url 输入浏览器地址栏发生了什么?
Q:前端的网络安全
Q:除了 element,还用过什么? A:Vuetify,vue3 还没兼容,所以 Vue3 用了 element-plus。
Q:Vue2 与 Vue3 区别
Q:算法了解那些,说说排序算法 A:冒泡排序、快速排序、桶排序、归并排序、大根堆、小根堆 Q:最快的是 A:快速排序 nlogn
Q:git 的操作,rebase 的作用
Q:Proxy 相比 Object.defineProperty() 优势?
Q:hexo-theme-yun
反问:
Q:这属于什么部门吗?还是交叉面的环节? 好像还是属于交叉面
让我别下线,等会接着三面
三面:
Q:Element 你提了什么 PR? 同上
Q:举例你觉得比较有代表性的项目 举了 hexo-theme-yun,好像还说了 mirai-ts 和 el-bot(鸽了)
Q:mirai-ts 和 el-bot,为什么要做它? (自己用,管理群,TS,脚本开发机器人更方便,抽象 SDK 和框架)
Q:实验室项目 A:简单介绍下
Q:干什么用的 A:国家社科基金之类,公益版权、学习之类的…
Q:介绍一下自己的学习经历?从零开始 A:巴拉巴拉,大一用 Dreamweaver 做静态网页设计,大二、大三写简单的 PHP、HTML、CSS、JQuery,大三大四接触 Vue,看一些开源项目,研究生期间重心转向前端。
Q:说说你自己的特点? 喜欢分享(开源、抽象可复制用),举了我的 web-resume 简历示例
Q:继续 坚持(维护几年的项目)
Q:继续 爱好科幻,写过一点科幻小说,出版
Q:对于你来说是什么样的,有没有考虑过写作吃饭 ……和专业的没法比 生活的调味剂
Q:最近还有写吗? 没有了……(被生活磨平了棱角,这句话没说)
Q:继续 我觉得我可能不善言语表达……想不到了 (面试官让我自信点)
Q:有哪些人生经历,挫折什么的 A:说了高考的时候飞行员体检过了,英语差两分。学了计算机,考到中传想做游戏动画,但是和自己想象的内容并不一样,主要是帮实验室做项目。重心转到前端。 总是不按自己想的方向走,但是自己调整后的生活也还算能接受。
Q:以后的规划发展 A:前端,喜欢所见即所得,业余做一些有趣的开源项目
Q:投了别的什么公司没?什么状况? 投了腾讯和阿里,阿里明天面试。
Q:具体工作期待什么样的情况? A:前后端比例比较平衡的部门,具体怎么个平衡法我说不出来
Q:什么时候去实习? A:五月底
Q:多久 A:3-6 个月,看毕设紧张情况
反问: Q:现在流程属于个什么样的状况,之前没想到会连续三面。 A:校招、日常实习生、暑期实习生是这样的,如果通过的话,一周内会有 HR 联系你
Q:对我有什么建议? A:感觉你就保持这样挺好的,不用觉得哪里-现在走的方向不大对啊什么的,可以自信点 最后道别,面试官说很高兴和你聊天,(叫了我的名字)。
我的面试到此就基本结束了。面试官也都比较平和。 因为我是一个非常非常懒惰的人,并且对于大厂还处于一个盲目地期待之中。 在收到腾讯的 Offer 后,我即刻推掉了阿里的面试。
打工
事实
校招
在蚂蚁实习期间,便已得知转正通过。 但是薪资则要等到十月份再谈。
2021 年 11 月 9 日中午,我站在快递驿站门前, 向父亲发了条消息说,那我去寄了 我在想,如果父亲说好的,那我就立刻寄。 只是他问了句 是不是还留恋北京 我说 哈哈是的
12:28 父亲给我打了电话
最终我 关于我放弃微信支付选择蚂蚁体验技术部这件事。
在徘徊纠结了无数次,终于做出了最后的决定。 我的秋招也算就此真正画上句号。(喔,对了,一直鸽的实习分享也还没写)
直接说结论,我放弃了腾讯 WXG 微信支付,选择了蚂蚁支付宝体验技术部。(也就是我此前实习的组)
微信
福利、薪水
我的决定说不上多正确。 如果你问我,现在完全不后悔吗?我也没办法肯定。
我最终还是希望可以
总结
总结下来,我觉得如果真正想找一份工作的话,应该带着一点热爱和兴趣去做,而不是只是作为一份养家糊口的事情。
如果那样的话,工作就会非常乏味,在完成工作后几十年,也没有什么值得回忆的事情。
当然工作不可能合乎自己所有的想法,所以我们要做的是找到工作中自己感兴趣的小小点,然后将其发扬光大。
就当程序员而言,找工作重要的并不是看了多少面经、刷了多少题。当然这也许是一个捷径。 但这些东西并非必要,工作时需要只要掌握正确的搜索技巧即可解决,Vue 的作者尤雨溪也不一定能答上 Vue 所有相关的知识点。 我觉得对于面试官来说,他绝对不会想招一个只会写题背知识点的人进来。 只不过因为考察手段和规章制度的局限性,他们不得不采用这种方案来筛选候选人。
我想 GitHub 上的开源项目也是一个很重要的亮点,它或多或少能体现你是否愿意将写代码当作一件有意思的事来做。
说实话,面试的知识点和算法题,我都答得比较烂。所幸还是侥幸通过,我想这与此也有一定关联。
antfu
最后我觉得也应当思考自己以后究竟想做什么
而准备好承担裁员失业的风险
最后一个原因则是最近一些变动
最后
但想来也是司马昭之心,路人皆知。
我的暑期实习与工作那些事儿
人生中总会 you
祛魅
我开始迷惑自己到底想做什么了
要说不得意也是假的。
面试官是给我的评价太高了,要特殊审批。
2021-06-17
正式拿到邮件 Offer 了。
BAT 通关成就达成 √
最近春招缩水
当然 我赶在这个时间点写这样一篇文章 也并不是为了自我吹嘘(虽有可能有点 2333), 也不认为我的浅薄经验便能神助般帮你找到什么好工作
但我希望也祝愿你能在新的一年
尽管工作一定程度上影响到你的经济状况与生活水平,但那并不是全部。 永远相信美好的事情即将发生
也许是运气好一些或者差一些
而是能够想好自己真正想做的事情
原本打算拆成两篇 讲讲我的实习 和最终去向抉择 但似乎并不是那么有必要
我的暑期实习就这么结束了,与此同时我也确定了之后的工作。
突然想起曾经自己写过 人生不是一场马拉松
To Be Continued.
如何成为一个精致的利己主义者
To Be Continued.