缓慢受锤的牛

本文最后更新于3 年前,文中所描述的信息可能已发生改变。

那一天我二十一岁,在我一生的黄金时代。 我有好多奢望。我想爱,想吃,还想在一瞬间变成天上半明半暗的云。 我来我才知道,生活就是个缓慢受锤的过程,人一天天老下去,奢望也一天天消失,最后变得像挨了锤的牛一样。 可是我过二十一岁生日时没有预见到这一点。我觉得自己会永远生猛下去,什么也锤不了我。 —— 王小波「黄金时代」

许久不见,见字如面。

作为虎年的第一篇博文,我决定讲讲自去年实习以来与工作相关的故事。

只不过,我是属牛的。

在过去的几年,虽然多有波折,但也许也是我一生的黄金时代。 我有着很多的奢望,并以为自己会生猛下去。 与此同时,我也预见过一些被锤的自己,但不愿相信。

前言

尽管很久前便立下要写记录面试的博文,「以儆效尤」。 但苦于拖延症,直至今日我才督促起自己将其完成。

当然这也是多方因素导致。 一个原因是我正在开发 valaxy,以重构我的博客,提高用户体验。 另一个原因是,近些日子我的表弟同样在寻找工作,并且毕业于计算机科学与技术,遗憾地是没能爱上代码,并决定另谋出路。 小姨劝我给他些建议,但思来想去,除了稍微写写代码,其他领域我却一窍不通。 便大致说了些囫囵话,寻找自己擅长类型的工作,而不是什么类型都投。寻找自己有些兴趣的工作,并为之后积累经验。 表弟的交际能力远强于我,且自言对销售还算有点兴趣,因此也有往此处考虑的可能。

因疫情影响,今年的就业形势似乎也并不乐观。 只是此时联想起仿佛昨日还在寒暑假和表弟玩电脑游戏,转眼间便各自要为生活奔波,难免有些唏嘘。

回到正题。 还有一个原因则是次日班内举行就业分享,也许需要我发言,也算是提前回顾一番。 我的工作去年十月左右便已经确定,因此并没有参与今年的春招。 当然根源还得从去年夏天说起。

过完寒假返校的我,虽然说着要当老师,信息资格证面试却未能顺利通过。 (好在第二次尝试顺利通过,但得到结果时已经是去年六月,那时的我已经开始实习。)

详情还请见 关于我打算当老师并报考教师资格证这件事

以防万一,加之从众心理,我决定跟随实验室的朋友们一起开始准备投实习。 也试图真正体验一下工作的感觉,再作日后考虑。

实习

说实话,那时的我对于能否得到一份还算不错的互联网实习完全没有信心。 但是开始时间已经很晚了,实验室的师兄们也是建议该早点投了。 我选定的岗位自然是前端工程师。

根据搜索及师兄们的建议,准备通常是看面经和刷题。

LeetCode 2021年3月-4月

我翻了翻去年的 LeetCode 记录,于 2021-03-23 正式开始准备刷题,并总共持续约半个月,结束实习战斗。

……,只是事实并没这么简单。

面试

后续内容可能有些枯燥,本着勉强也可当作面经的打算,我会尽可能说得详细点。 但时隔许久,有所遗漏也在所难免。

我也曾记了些笔记 fe-notes,但确实并没有好好整理,还请凑合。 以及我的简历是用 web-resume 写的,因为想着前端嘛,就用网页来做更合适。

每场面试开头会需要做自我介绍,因此最好准备一段熟悉的话。

先说总体情况:

公司方式投递时间收到 Offer
百度官网2021-04-022021-04-25
腾讯官网2021-04-032021-04-22
阿里Boss 直聘 内推2021-04-07接到腾讯 Offer 后放弃面试
小米官网2021-04-03简历未通过审核
蚂蚁金服Leader 内推2021-05-312021-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
  • 计算机网络
    • 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(已拒)

一面:

一面面试官一边问,一边在聊天框记了题目,所以我得以直接复制下来了。

  1. 两个子元素,一个靠左,一个靠右 float,flex => justify-content:space-around

  2. 滚动底部吸底 js sticky=>兼容性

  3. JS 基本数据类型 引用类型 array,object 深拷贝 => all 浅拷贝 => 第一层

  4. 箭头函数特点 this,arguments var self = this;

  5. babel 作用 AST 树 […{}] babel6 => 不报错 […{}] babel7 => 报错 iterator

  6. poliyfills ponyfills A: ponyfills => const reduce = () => {} B: poliyfills => Array.properties.reduce Polyfill

  7. 数组 API reduce => map

  8. js 事件循环机制 宏任务,微任务【promise】

  9. 代码

    js
    function Test() {
      try {
        const d = new Promise((resolve, reject) => {
          resolve()
        })
        d.then(() => {
          throw new Error('111')
        })
      }
      catch (err) {
        console.log(err)
      }
    }
    Test()
    Promise.try
  10. es lib

  11. this.$set() vue 2.X => Object.difieProperty vue 3.X => proxy Arrary.properties.XX = () => {}

  12. 百度搜索输入框优化 节流,防抖,缓存

  13. 数组拍平

    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

关于 Yak Shaving

最后我觉得也应当思考自己以后究竟想做什么

而准备好承担裁员失业的风险


最后一个原因则是最近一些变动

最后

但想来也是司马昭之心,路人皆知。

我的暑期实习与工作那些事儿

人生中总会 you

祛魅


我开始迷惑自己到底想做什么了

要说不得意也是假的。

面试官是给我的评价太高了,要特殊审批。

2021-06-17

正式拿到邮件 Offer 了。

阿里实习校招

BAT 通关成就达成 √

最近春招缩水

当然 我赶在这个时间点写这样一篇文章 也并不是为了自我吹嘘(虽有可能有点 2333), 也不认为我的浅薄经验便能神助般帮你找到什么好工作

但我希望也祝愿你能在新的一年

尽管工作一定程度上影响到你的经济状况与生活水平,但那并不是全部。 永远相信美好的事情即将发生

也许是运气好一些或者差一些

而是能够想好自己真正想做的事情

原本打算拆成两篇 讲讲我的实习 和最终去向抉择 但似乎并不是那么有必要

我的暑期实习就这么结束了,与此同时我也确定了之后的工作。

突然想起曾经自己写过 人生不是一场马拉松

To Be Continued.

如何成为一个精致的利己主义者


To Be Continued.
没有红包封面,但是 AI 春联……