从网易到字节,专升本的校招经验分享

文章首发于五块木头个人博客

如果有小伙伴看过我之前发过的 2021 总结文章, 就知道我当时的一些情况, 去年的这个时候, 我也在准备秋招, 刷着题目、看面经等等, 这篇文章来说一说校招自己的一些心得, 备战秋招, 需要准备简历、算法、专业知识、项目/实习这四个大方面。

以下都是文字, 有点枯燥, 但是有用~

简历

首先是简历的问题, 最好是找朋友、学长学姐看看, 问一问他们有没有修改建议, 或者在掘金上面找关于简历的文章, 进行相对应的修改, 这个我就不细细展开了。
这里推荐几篇掘金的文章, 可以参考一下~

  1. 如何写「前端简历」,能敲开字节跳动的大门?
  2. 看过 100 份前端简历之后,汇总一下常见的问题
  3. [译] 如何写一篇杀手级的软件工程师简历

算法题

刷算法要有目的性, 知道面试、笔试(随缘)中常考哪些对于准备校招很有帮助。 我一开始比较盲目, 所以刷这个刷那个, 浪费了很多时间, 所以在这里推荐几个对我帮助比较大的仓库。

笔试算法题

  1. 李威威大佬
  2. acwing 算法基础课也可以试试(不过需要几十块 💰)

面试算法题

  1. CodeTop 前五页
  2. 剑指 offer
  3. leetcode Top100

笔试算法题, 我比较推荐李威威, 他的 leetcode 题解以及 github 操作对新人比较友好, 面试算法题可以优先刷 CodeTop, 其次就是剑指 offer、leetcode Top100。

别看到以为很多就慌了, 面试算法题这三个里面有很多重复的, 刷完我相信面试的时候 80% 的题都可以做出来(不敢说的太绝对, 怕对打脸, 哈哈哈哈哈)。

刷题

在我刷题的话, 我会先看看有没有思路, 搜索自己脑海中的算法, 看看哪个比较适合, 如果没有思路的话, 先暴力破解看看能不能弄出来, 暴力解法锻炼一个想法到实现的过程以及编码能力, 如果暴力不能弄出来的话, 可以看看题解, 看看别人的思路, 再尝试把它写出来, 我自己是会把一个题目反复刷, 我觉得 y 总有一句话说得很好: "一遍不知道, 刷个五遍, 我就不信你不知道"。

特别是一开始学一个算法的时候, 很容易陷入一看就会、一做就废的情况, 别慌张, 大家也是这么过来, 你需要时间好好成长。

我一般会多看看几个人的题解, 看不同人的答案, 每个人看待问题的角度和解题思路都不一样, 多学一种思路面试、笔试多一份把握(这个真的有用、特别是面试中的算法题)。

如果一直在刷某一系列的题, 可以尝试进行总结, 比如说二分查找, 二分的使用场景, 什么时候用到二分, 这个自己去总结, 下次比如说看到有序的时候, 看到每次都可以排除一半的情况, 能不能想到二分?

合理的背模版, 基础算法(比如说排序)这些最好是自己能够轻车熟路的写出来。

算法准备好了, 别忘了熟悉笔试的环境, 原因有两点:

  1. 我们可能平时用 leetcode 使用的多, 它不需要我们处理输入和输出, 但是笔试中绝大多数是要自己处理输入、输出的, 所以你要搞清楚你所使用语言的输入、输出, 特别是输出, 有时候多个空格啥的, 比较难排查
  2. 刷题的时候不妨使用牛客、leetcode 等网站上的编辑器, 尽量脱离本地 ide(个人建议)。

我问了一些校招的小伙伴, 他们说一般是本地 ide, 但是我自己在笔试以及面试过程中, 有一些情况是网站的 ide, 所以采不采用看个人啦。

我在刷题的时候, 很少借用智能提示、一般都是自己敲, 原因有两个:

  1. 笔试有时候是在某些网站(牛客、赛码)上进行, 如果没有提示的话, 那就直接尬住了, 比如说想使用 Java 的优先队列Prority单词不会写, 知道思路想写也写不出来。
  2. 加深 API 的熟练度、加快自己打字速度(好像没啥用), 面试很多情况都是牛客等网站, 说实话我感觉它们的代码提示不得行, 还不如自己手敲快一点。

平时用 IDEA、vscode 有智能提示舒服得很, 但是网页上的 Ide, 不要对它抱有太高的期望, 有智能提示算是不错的啦, 当然如果笔试的时候允许你在本地 ide 写是最好的。

笔试

在笔试的时候要把握时间, 我一般会先把所有的题目都扫一眼, 看看哪个题目有思路, 然后就做那一道题目(全都不会, 叉出去), 然后分为三种情况:

  1. AC: 能够很快的 AC, 🐮 呀。
  2. 卡思路: 某一道题目一直卡在80%90%的时候, 这种可能是卡边界、输出、超时了, 比如说传一个特殊值(null、''、在数据范围內特别大的值), 看看哪一步没有做好边界判断, 如果是返回字符串的题目, 要小心有没有多打空格。
  3. 完全不会: 如果实在不知道怎么写, 可以尝试"骗"测试用例, 我称之为(面向测试用例编程), 比如说有一些题目问你返回truefalse, 这种最简单, 你直接返回truefalse就可以过一定的测试用例, 当然企业笔试不会那么傻, 出只有两种可能性的题目, 那不妨试试一些特殊值, 比如说0''字符串这种特殊的样例, 或者说看看能不能把测试用例的答案搞出来, 如果搞出来测试用例的答案, 至少也可以过一些用例, 总比空着好一点。

面试

面试比较看运气和临场发挥能力, 运气好出得那个你就会, 那就美滋滋了, 而面试中的算法, 经过我这么多轮面试的手撕题, 无非就是这几种: 链表、滑动窗口、栈、优先队列、二分、二叉树、回溯、深搜/广搜, 动态规划相对来说比较少, 但是主要是这些, 所以可以刷上面推荐的算法面试资源的题目。

其次面试中我总结了五个要点:

  1. 我一般会掌握至少两种解法, 就拿最简单的两数之和, 有暴力、Map、双指针的方式, 面试的时候看到我用暴力的解法写出来了, 面试官可能要求进行优化、或者换一种思路来实现, 如果优化、换一种思路也能够写出来了就是一个加分项。
  2. 我基本上都会使用本地 ide 进行 debug, 了解每一行做了什么, 为什么要这么写, 这个很重要, 在面试过程中有很多面试官会在你写完之后会要你解释一下, 然后还会问时间、空间复杂度以及思路是什么。
  3. 在面对没有思路的题目时, 可以问一下面试官可以提示一下吗? 先把思路理清楚再去写, 你写代码的过程面试官都能看到, 如果你总是删了改、 改了删的话, 会给面试官一种想到哪里写到哪里, 没有整体的把握, 即兴 freestyle? (我就是这么过来的, 导致有一些面评就是想到哪里写到哪里, 没有整理把握, 扎心了。)
  4. 如果代码有一点点问题, 别慌, 这个时候就是考验的是 debug 能力, 我一般都会准备好笔和纸在旁边, 然后自己在草稿本上把流程走一遍, 看看哪里有问题然后再做相对应的修改。

专业知识

接下来就是专业方面知识的准备了, 我当时是边刷算法边准备专业方面的知识, 比如说一天上午写算法题, 下午看面经啥的。

最快速的路

我个人觉得比较好准备秋招的方式就是: 看牛客网上的面经, 不懂的地方去搜索, 根据自己的查到资料, 用自己的话总结出一个答案出来, 不是直接复制别人的!

总结出一个答案也可以理解成: 用自己的语言描述出一个问题的答案。

为什么我要这么说呢? 现在去网上搜面试题一大堆, 他们都会告诉你答案, 然后把这个答案强行灌输给你, 这个就是问题的答案, 你就答这个就可以了, 但是你自己不去实践, 自己不去动手你可能都不知道, 有些答案是错的, 或者说答得并不全。

所以在准备的时候, 别偷懒, 一个问题自己去搜索然后实践总结出自己的答案, 我相信这种方式并不会比你直接背答案慢!

八股文除外(为什么会有八股文这种东西!)

题外话: 当时和小伙伴调侃, 牛客怎么面经还没更新, 哈哈哈哈哈。

多说

在准备的面试过程中, 面经就是面试官, 你就是面试人, 自己在心里进行解释, 解释的清楚说明你懂了, 解释不清楚就说明不懂, 一定要去找出自己的答案。 千万不要有一种错觉, 这个我知道、可以跳过, 我之前也有这种错觉, 以为自己知道就真的知道了, 但是自己知道和面试官说清楚是两码事, 能够用简单清晰的语言跟面试说清楚才是真正的理解, 我之前春招就是以为自己知道就是真的知道了, 然后春招的时候说的支支吾吾, 表达也不清楚。

多写

前端会出现实现一个 xxx 这样子的手撕题, 这种题目很考验代码功底, 在你写的时候, 面试官能够变量命名、api 的使用、函数是否封装等各个方面对你有一个整体的了解。 我的建议是多写代码, 去看别人的代码, 看他们写代码的风格、思路以及命名, 有什么地方可以借鉴的。

最简单的一个例子: 实现一个数组去重、排序、扁平。

var arr = [
  [12, 2, 2],
  [6, 7, 8, 5],
  [3, 4, 5, 9, [11, 12, [1, 13, [14]]]],
];
fn(arr); // 去重 + 扁平 + 排序

我们可能就直接一把嗦了, 但是这样子写的话, 不利于代码复用的, 我们尽可能的保证一个函数只做一件事情, 所以我们不妨将这个拆成三个函数, 然后再利用一个辅助函数让它依次执行。

// 去重
const unique = (arr) => [...new Set(arr)];

// 扁平
const flatten = (arr) =>
  arr.reduce((acc, v) => acc.concat(Array.isArray(v) ? flatten(v) : v), []);

// 排序
const sort = (arr) => arr.slice().sort((a, b) => a - b);

// 管道函数
const pipe = (...fns) =>
  fns.reduce(
    (f, g) =>
      (...args) =>
        g(f(...args))
  );

pipe(flatten, unique, sort)(arr);

项目和实习

项目

有多少小伙伴和我一样, 写到一半或者写完了就不管了, 把它放在那里, 然后写简历的时候就尴尬了, 心比较虚, 不知道自己做了啥, 也不知道怎么做的, 所以我的简历在春招的时候项目一直都是一个博客(19 年写的)以及 xxx 管理系统。

到秋招的时候, 我觉得这样子不行, 然后用自己喜欢的技术重构了前端并且一直在迭代更新, 做完之后我发现一个完整的产品, 能够不断的去迭***, 它要比你做一半、做完了不管的项目强太多了, 因为一个完整的产品你会参与到技术选型、UI 设计、后端接口开发(数据库设计)、前端开发、开发维护、可能的话自己搭建 ci/cd, 这些东西都是自己去尝试的, 特别是优化某一个变量名、优化某一个方法、解决某一个 bug、进行一些点的性能优化的时候这些都是你可以面试中展示的点, 因为它是你一直迭代的项目, 所以你也会非常熟悉, 如果要你讲项目难点, 你也可以娓娓道来。

实习

如果在一家公司实习的话, 面试官还会问关于实习的东西, 最容易问的问题是实习做了什么, 为什么要做这个, 做这个碰到了什么问题, 有了解做这个的背景嘛? 所以在准备的时候以"为什么、做什么、怎么做"的来进行准备, 好好的了解下当前业务的背景以及一些难点。

小结

总结就是: 扬长避短、禁止埋坑。

  1. 面试官对你的了解, 就是通过简历, 所以他肯定会问简历上的东西, 每一个知识点都要搞明白, 别想着为了简历光鲜亮丽, 啥都写上去, 到时候面试有你难受的,别给自己埋坑。
  2. 面试中的时候, 如果碰到不会的问题直接说不会, 面试官不会因为这一个问题否定掉这一整场面试。
  3. 面试中问你实习内容, 自己在准备的时候最好去总结好你当时实习做了什么, 为什么要这么做, 实习中碰到的难点, 这个是比较重要的(项目也是如此)。

反问环节

最后一般都有反问环节, 我个人一般问一下四点:

  1. 问下这种面试感觉怎么样, 然后有什么需要提升的点
  2. 问问刚刚面试中不会的东西
  3. 问问专业的方向
  4. 公司的做什么、技术栈、新人培养方案

这个可以参考一下别人是怎么问的。

一些小问题

心态

不管自己面试发挥的怎么样, 一定要摆正心态, 如果发挥的好, 给自己积极的心理暗示, 好好准备是有回报的, 如果发挥的没有达到自己的要求, 那就好好复盘, 把不会的地方搞明白, 谁都会有不清楚、不明白的知识点, 允许自己犯错, 切记不要有"一场面试不行, 就否定自己", 我之前就是这样子, 面试的不好就心情比较低落, 然后影响自己的复习节奏, 现在感觉有点不太值得。

学历

xxx 公司这么厉害, 我技术不好、学历不好, 进得去嘛, 不要慌, 光脚不怕穿鞋的, 先投了再说, 万一进去了呢, 谁也说不定呢。 学历不好可以试试找一个实习攒经验, 或者在 github 上尝试开源的东西, 总之就是拿得出可以体现你技术水平的东西(学校、实习、开源等方式)。

专升本

一般专升本的同学, 简历上只需要写本科时间就好了, 如果中间有面试官问起来学校时间两年再说自己专升本, 如果面试到了 hr 面, 最好说一下自己的专升本学历, 担心有些公司不知道你是专升本发了 offer 给你, 然后入职了再说自己专升本可能会毁 offer, 一般 hr 面过了就说明公司是收专升本的, 就不需要慌了。

我该什么时候投

去年我是在 7 月份开始投的, 那个时候提前批刚开始, 投了字节、百度、网易等公司, 我觉得能早点投就早点投, 那个时候提前批的字节进到 hr 面, 网易雷火、百度拿到了 offer, 还是挺不错的, 所以有提前批啥的可以先试试, 相当于多一次锻炼自己的机会。

很多同学可能想着是还没学完, 会被吊打啥的, 不敢投, 不要怕, 你可以先投一些公司, 涨涨经验, 再去冲大公司, 毕竟真正的面试和自己准备是不一样的, 以面试来检验复习成果, 用复习来准备面试, 相互促进, 良性循环。

脉脉和牛客的帖子

我当时复习的时候基本上是看牛客的面经啥的, 没有刷脉脉啥的, 因为看别人的帖子可能会焦虑啥的, 影响到我自己的复习节奏, 所以我基本上是不刷脉脉和牛客帖子, (这个看个人吧, 可以选择看看这篇牛客的文章, 说的挺真实的)。

写在最后

最后做一个小总结, 以上的内容:

  1. 做好准备
  2. 稳住节奏
  3. 做好复盘
  4. 保持心态
  5. 拿到 offer!!!

很高兴你能够看到这里, 希望我的一点校招心得能够对你有所帮助。 最后每一个努力的人都值得一个 offer

如果有时间不妨看看这两篇:

  1. 从专升本到互联网大厂-我的 2021
  2. 一个五年专升本的自救记录
#校招##前端##专升本##字节跳动##网易#
全部评论
最近高强度刷牛客,看到楼主的贴子,我真的,说到我的心坎上了,强忍眼泪,我是湖北专升本 25届的。 专科啥都不懂玩了一年,发现不是我想过的生活,后面开始学编程, c sharp、Java、JS都学过,后面被拉进一个实验组,里面都是打比赛的,也特别感谢之前专科的老师,一个个项目才把我喂起来了,如果没这些项目现在找实习我可能就转行了。 大二基本都是学前端相关的知识,专科大三的时候没有假期,没有星期六星期天,只有代码是否学完了,能不能跟上技术的发展,早上8点多到实验室,每天晚上10点半才回寝室,回寝室再学到11半左右,笔记都写了差不多10w+字,一直坐在导致自己胖了20斤(和贴主相反),寒暑假也在自己接单做项目,政府、景区项目、物联网都独自做过,从产品到运维都干,也确实提升了自己的业务能力。 后面专升本了,以为考上本科找工作就好了,没想到也好不到那里去,只是摸到了最低的门槛,最近找暑假实习着实感觉很内耗,大部分都是不招前端实习了,我确实没什么自信去投腾讯、字节,因为大部分都铺在业务上了,没什么太多的开源积累,技术底子也没那么厚。 上个星期武汉面到了一个3000的小厂实习,老实说很不满意,我觉得对不起我这么长时间的付出,但是也没办法,目前也没看到更好的实习,暑假小厂实习2个月要好好准备八股了 ,目前还在找,也希望能像贴主那么厉害,找到我满意的offer
2 回复 分享
发布于 2024-06-09 15:38 湖北
楼主好厉害,专升本的简历要写自己是专升本吗,想准备暑期实习
1 回复 分享
发布于 2022-08-24 00:14 江苏
点赞 回复 分享
发布于 2023-09-20 16:45 江西
我前面看到有帖子说专升本的没有秋校招聘会,真的吗?
点赞 回复 分享
发布于 2023-06-28 09:59 江苏
楼主,我想问下hr面就说会不会连下一轮技术面都不会有。其实我是想等最终面结束的时候说
点赞 回复 分享
发布于 2023-04-01 21:27 湖南
楼主 你是什么时候实习的呀
点赞 回复 分享
发布于 2022-12-09 00:02 广东
楼主好厉害,很励志
点赞 回复 分享
发布于 2022-08-02 16:36

相关推荐

秋招无形的压力,从研究生入学的第二天就开始笼罩在了我的身上。我是两年制的硕士,研究生刚入学,恰好第二天华为就到学校宣讲,在老师的建议下听了宣讲会。会后,一大堆词汇涌入脑中:实习、秋招、开发、算法、部门、方向……我开始迷茫,我该怎么规划我的秋招?首先是方向问题。我是两年制的专业硕士,不具备发论文的条件,理论上来说算法这条路是堵死了。但我想了想本科的一些经历,从大二起就在做深度学习的相关项目,大四发表了一篇SCI,这么些内容不用实在有点浪费;硕士期间在组里做的横向项目也是计算机视觉算法相关。最关键的是,开发的那一套内容和八股我是一点不会。在深思熟虑了一个月后,我还是决定俯冲算法。要走算法的话,没有顶级论文就只能去搜广推了。此时我又遇到了困难:研一期间导师不放实习。其实学院有很多放羊的导师,偏偏自己选择了这个只放暑期实习的导师。当时真的很焦虑,因为身边的朋友都是做后端开发的,不断劝我转开发;往届实验室的专硕都是走的开发,没有能参考的案例。那段时间很煎熬。一边做实验室的项目,一边自己自学搜广推的知识。身边的同学有的一入学就跑路出去实习了,有的已经找好导师做科研准备读博了,自己想做算法还在前途未卜,身边的同学和实验室的师兄师姐全是清一色的劝退。南京的冬天很冷。在2024年寒冷的冬天里,我感觉前途就像风中的梧桐叶一般渐渐凋零,随风飘散。我研一期间没有任何一段日常实习,直接就要面对暑期实习的巨大竞争;我研一期间没有发表任何论文,实验室的横向项目没有一个能写到简历上。选择走算法这条路,或许真的是我人生选择的一次寒冬。我知道我要抓紧时间了。整个寒假我学习了很多内容:王树森的推荐系统课,深度学习transformer的八股,大模型的RAG和微调,天池新闻推荐等。我现在已经记不起春节是怎么过的了,我只记得寒假回家后的一个夜里,老爹问我大晚上怎么抱着电脑发笑,我说GPT真是天才,被BERT超过后还能想到把BERT大力出奇迹的思路借鉴过来,还真让GPT力大砖飞成功爽到了。寒假结束回学校已经是2月中旬,暑期实习的招聘陆续开了。我做完了天池新闻推荐的项目,改好了简历,开始了暑期实习的疯狂投递。暑期实习超乎我意料的顺利,7天速通美团的广告算法,后续又拿到了腾讯广告的offer。多方考虑后,最终还是选择了腾讯广告,鸽了美团的入职(代价是美团秋招直接拉黑了我)。腾讯的转正率并不高。经过了一番蠕动,最终仍然转正失败。我原以为有了腾讯的实习经历,秋招也会像实习一样顺利,可是我错了。算法岗位的实习和秋招简直是两个天地,秋招阿里系直接给我简历挂;字节总是一面或者二面就挂,问就是候选人中有更加优秀的,不再推进流程。我被美团拉黑了,秋招根本不捞;京东我投递太晚了,一直泡在池子里。从10月中旬开始,我的面试变得零零星星,机会也越来越少了。秋招时算法的hc还是太少了,而竞争者实在是太多。现在的搜广推,要么有两段及以上的大厂实习,要么有大厂实习+A会,早已不是一段大厂实习就能够畅行无阻的时代了。在这里要感谢拼多多。在所有的互联网大厂中,只有拼多多稳步推荐流程,最终发给了我一个保底的offer。这个秋招让我认识到,我当前的简历和水平仍然不够,至少还需要一段大厂实习才能够去碰一碰BAT的搜广推岗位,可是我已经没有热情去做搜广推了。在腾讯的实习中,我发现广告算法用得更多的是策略,大部分人去搜广推也是在写策略,想做召回/精排模型还要更强的背景和一定的运气。拼多多最终开了一个大包。算了算总包,如果真在拼多多干个三年,税前年薪百万或许也不是梦。而就在拼多多开奖的那一天,华为也打来了oc电话。华为的业务是LLM,方向是好的,base地也是好的,就是开得比拼多多低太多了。经过了一段时间的纠结,我想明白了,比较是无休无止的,要问自己的心理预期——抛开其他offer,华为的这个价我是能接受的。因此,我拒了多多,签了华子,秋招结束。回首整个秋招,我就是算法大军里面很普通的一员,四处碰壁,和大佬offer打牌形成鲜明对比。最终凭借一定的运气拿到了一个满意的offer,也算对当初执着走算法道路的自己有了一个交代。我有时候也问自己,到底是什么支持我走下来算法道路呢?我的回答是认清自己的定位。作为算法候选人,有效的背景无非就是院校/实习/论文。三者有其二,最终就算拿不到大包,也不至于找不到工作。因此,如果你也处于一个迷茫的时期,不妨多方面确认一下自己的定位,心里有底就不会盲目。雄关漫道真如铁,而今迈步从头越。
点赞 评论 收藏
分享
评论
37
143
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务