此经验帖适合想找互联网相关工作的人,如数据分析、算法工程师、数据挖掘工程师等。或者是想进入BAT等互联网公司的人,我会介绍他们暑期实习招聘流程及笔面试经验等,暑期实习往往是有转正机会的。友情提醒:本文均是干货,阅读本文大概需要5分钟。
我将分以下几个方面来讲述我的求职经历:
中文简历一份、获奖情况(获奖证书扫描件等)、项目经经历、实习经历、一寸电子证件照、本硕成绩单等。
可以使用在线网站制作,如我本人就是在“知页简历”制作的,可以下载PDF到本地。简历不要超过一页,与你要申请的职位不相关的经历不要放上去。举个例子,我同学申请某互联网公司数据分析岗,她的简历上有个银行大堂经理助理实习经历,面试官就问她“你要做数据分析工作,你的银行实习经历有什么用?”所以简历上的实习经历、项目经历要与你申请的职位相关,在申请不同的岗位时,可以适当修改再投递,简历不是写得越满越好。
学生干部或者社团经历要不要写?对于申请技术类岗位,可写可不写,或者写一到两个比较重要的学生干部经历。不要只列举个职位,可以在下面有一行简单介绍下你办过什么活动、做过什么工作等。比如我就写了院研究生会学术部部长经历,面试的时候还被问到过“你为什么选择加入研究生会?”如产品经理、运营等岗位,最好要写上学生干部经历。
投递互联网技术类岗位,包括C++开发、前端开发、数据分析、机器学习算法工程师等等,都比较看重项目经历。在面试时,这也是重点考察的方面。把你导师带你做的项目写上就好了,注意仍然要写上你在项目中承担了哪部分的工作,你可以简短介绍一下。不要只列举项目的名称!
那没有项目经历咋办?那就把你的期末大作业写上去,举个例子,我们有个课程叫数据挖掘,期末交一个论文的那种。我们做的就是数据挖掘类的大作业,用的是UCI信用卡违约风险二分类数据集,用了一些机器学习算法(SVM、逻辑回归、随机森林等)处理,最后写成一个论文交上去。我把它当做一个小型项目经历写在了简历上,面试官还有跟我聊这个项目经历,他关注的不是你这个项目多么高大上,而是你怎么做数据预处理、选的哪些算法、如何调参、如何评价这些模型等,项目无论大小,流程总是类似的,关键在于你从中get到了什么技能。那如果连大作业都没有咋办?自己去网上搜一些小项目来实现咯,或者去参加Kaggle比赛。这样不就有了项目经历。
实习经历上面说过了,与你要申请职位无关的实习经历不要写上去,还有在实习岗位下面,用几行文字简单介绍下你实习的主要工作。
大概从3月15号左右各大公司(我接触的主要是互联网公司)开始春招及暑期实习投递,如下面这份暑期实习汇总表所示(最后两列是网申开始和截止时间):
今年的3月初才正式开学,也就是寒假刚回来,如果你像我一样,寒假浪了一个多月,那么在3月15号在网申时就会感觉很虚,似乎自己什么都没准备好,简历还没修改好,笔试也没有刷题,面试经验(简称面经,下同)也没看。
所以我个人建议在2月的时候,差不多就可以刷笔试题了,对于想做IT方面的工作,笔试题的在线编程,概率统计的相关知识,了解一些算法原理是必不可少的,我下面还会详细说这个部分。
一般说来在线笔试都在4月初的样子进行,会有邮件提前通知你。一般来说,投了简历都能参加在线笔试,当然有些公司有些岗位,他可能也会在简历去筛选人,觉得你可能不是很适合这个岗位。
笔试的时间通常是90-120分钟,会有全程摄像头录像,用自己的电脑做就行了。
笔试通常分为:在线编程题、选择题、简答题等。
一般研发类岗位,都会有在线编程,有几个很常用的在线编程网站如牛客网、赛码网、leetcode,可以在里面刷题。比如像腾讯、京东、华为、网易,他们的在线笔试题基本上都是在牛客网做的。你可以在里面练习公司真题,讨论区也有面经之类的。
那么在线编程都是什么类型的题呢?常见的有动态规划(如最大回文子串问题),求最大公约数等,有容易的,也有很难的,所以要多刷题,所谓熟能生巧。
网上还有人刷《剑指offer》,一般来说在线编程题语言不限,你可以使用Java,C++,Python,R等,会有时间复杂度和空间复杂度限制。
举个例子,我报了华为算法工程师,他的笔试题就是3个在线编程题,结果我3题都不会做,所以笔试就挂了,自然也就没有面试机会了。所以一定要重视在线编程,尤其是算法工程师、前端、后端这种岗位,基本都对代码能力要求挺高的。
腾讯数据分析岗位是没有在线编程的,他的笔试是其他类型的题目,下面会再说这个。也有些公司的数据分析岗位是有在线编程的,因公司而异。
建议学习一下《数据结构》,在笔试和面试上可能都会用到,很重要。包括:二叉树、红黑树、栈、队列、各种排序算法等。个人推荐严蔚敏的《数据结构》(C语言版),最后再说一遍,数据结构很重要!!!我们专业有很多人栽在这个问题上。
选择题一般考察基础知识点,常考的有以下几种:
1. 概率统计类:摸球有多少种情况,求某个条件概率等
2. 数据结构类:各种排序算法的时间复杂度;二叉树的前序、中序、后序遍历;二叉树的叶子节点个数等
3. 算法知识类:防止过拟合的方法有哪些;判别式模型、生成式模型等
4. SQL类:一般数据分析岗会有这种题,比如Select语句等
简答题可以在答题框写,也可以在草稿纸写好拍照上传。我曾遇到过的简单题类型如下(只记得大概样子了):
1. 夫妇生了第一个孩子是男孩,问第二个也是男孩的概率,很明显这是在考察条件概率公式;
2. 机器学习中的偏差和方差,高偏差或高方差的解决方法
3. 假设检验的基本步骤
大部分公司的面试都是3-4轮:第一轮技术面、第二轮技术总监面、第三轮HR面。
一般只要带一份纸质版简历就行了,可放照片可不放照片,排版简洁大方即可。有些群面会要求穿正装,如华为供应链管理工程师。
技术类岗位一般都是一对一面试,或者有些公司在你所在的城市没有现场面试的,他可能会让你电话面试。
面试注意事项:
1、要有自信,遇到真的一点都不会的问题可以直接说不会,面试官会问其他的;
2、对常用的算法原理要熟悉,比较常考的有(按考察频率排序):逻辑回归、SVM、朴素贝叶斯、CNN、RNN、Dropout、决策树、梯度消失等;
3、一般在面试官问完你问题后,他都会问你有什么问题要问他,你可以提前准备好要问他的问题。比如什么时候告知面试结果?您对我有什么建议?能说说某个岗位需要哪些技能吗?等。
4、不要跟技术面试官谈薪资问题!!
下面举一个例子,这是我自己的一次面试:
面试官:简单介绍一下你自己。
我:我叫XXX,来自XX大学……
面试官:你做过中文文本分类项目是吧,介绍一下你的项目
我:我的项目是做XXX的,我使用了XXX几种算法,他们的原理是……,最后的结果是…….
面试官:怎么去停用词?
面试官:你是如何调参的?
我:如果数据集小,我会使用网格寻优,数据量大,按照经验来调参…..
面试官:如何防止陷入局部最优?
我:SGD、深度学习常用的Momentum……
面试官:你了解今日头条的推荐算法吗?
我:不太了解。
面试官:你平时有什么兴趣爱好?
我:打游戏。
面试官:打什么游戏?
我:王者荣耀
面试官:我们想让王者荣耀的英雄输出伤害差不多,但其实实际中,会有些英雄比较强,有些比较弱,你怎么用数据分析来解决这个问题?
我:从对战数据……
面试官:你加入研究生会的原因?
我:因为….
面试官:你有什么问题想问我吗?
以上是技术一面的面试对话,你会发现,面试官比较关心的是你做的项目,使用了什么方法,得到什么结果,算法的原理,怎么调参等等。所以你需要对自己做的项目非常熟悉,包括细节问题,很多时候面试官问得很细。技术二面也主要问项目。有些面试官可能还会让你手写代码,比如我一个同学就是手写求最大公约数的代码。
一般HR面是最后一面,网上有很多HR面的面经,我也稍微说一下我的感受:
1、回答问题要诚实,对自己的简历写的东西够熟悉;
2、要有自信,毕竟技术岗,HR不会太为难你,就是考察考察你的职业规划,性格等。
技术岗HR常问的问题:兴趣爱好;将来的职业规划,想在哪个城市工作,职业发展规划等;你有什么优缺点;评价一下你的父母亲;为什么选择读研;将来有读博的打算吗,为什么不读呢;谈谈你的本科学习经历吧;有没有女朋友。
感谢你花时间看完这篇暑期实习经验分享,如果你已拿到心仪公司的offer,那么恭喜你!如果你没能找到暑期实习,也不要灰心,可以找个日常实习。更重要的是,通过笔试面试,你能发现自己的能力有什么不足,那么趁着还没开始秋招,抓紧时间补上。对于技术岗位来说,有技术在手,不用担心找不到工作。也可能身边有些人找到了暑期实习,自己没找到,可能会有失落感。但请不要灰心,人生是一场长跑。毕竟我投了那么多公司,最后也只收到一个Offer(哭.jpg)
人生路,莫慌张。