艾瑞
艾瑞
新闻资讯
中心动态 学习技巧
秋天里的offer,香过第一杯奶茶~
2020-09-28

金九银十,又到一年秋招季。承载了近千万毕业生的梦想。不过,在这特殊的2020年,秋招也变得非比寻常。
2020年所有的行业都比以往艰难,刚经历过大型招聘会后的我们,这篇文章,我们将结合亲身感受,给出些建议,希望对正在参与秋招的莘莘学子们有所帮助。
 
1
 


毒打的就业形势

 

一场疫情,开启了魔幻的2020年。

很多学生真正体会了一把史无前例的 “云” 课堂、“云” 毕业。

但是,疫情带来的影响绝不仅仅只是上课形式或者毕业仪式的改变,紧接着的就业影响才是这场特殊 “成人礼” 真正的考验。

1、绝大部分人都缺少实习经历

今年由于疫情大多数人没法参加实习,放在往年,实习经历是企业招人时很看重的点。尤其对于程序员这个职业,非常强调实战。提前经历过实习以及生产项目历练的候选人,他们的编程能力以及对技术的理解更能接近企业的要求。

另外,一段亮眼的实习经历通常也是拿 special offer 的必备条件。

2、竞争激烈,应届生很难就业?

今年的公司基本上都比往年的招人量减少,而且竞争人数也逐渐增加,因为海外疫情的严重,很多在国外工作的人也都打算回国发展。

据统计,参与今年秋招的大军预计在1千万左右,人数达到新高,但是绝大部分互联网公司并没有扩招的趋势,可见竞争之激烈。

在这个最难的毕业季,要想拿到一个好offer着实不易,务必认清现状,同时做好充分准备。
 

2
 


面试到底看中的是什么?

 

虽然就业形势很严峻,但是公司招人的标准只会更高,因为供远大于求。对于应届生来说,要考察的内容主要包括以下几个方面:



面试时重点看的还是计算机理论、算法能力以及代码功底,框架和项目只是锦上添花的考察项。

下面,举一道实际的编程题为例,看一看面试官通常是如何判断应届生素质的?希望让参与秋招的你有所启发。

一个单链表,从高位指向低位存储一个大数,每个节点表示这个大数的其中一位(取值范围从0到9)。题目要求:对这个大数进行加1,输入和输出都是单链表,时间复杂度和空间复杂度尽可能低。


 

对于刷过leetcode的同学来说,这道编程题真心不难,而且解法非常多,还是比较适合应届生。
下面按照解题的完整过程,看看下面试中的重点。
1、思考解法
题目给出来后,一般面试官会跟面试者确认题目是否完全理解,然后给1-2分钟时间让对方思考下解法。
 
面试者:这题简单,遍历到最后一位加1就可以了!
面试官:你再想想,还有没有没考虑到的?
面试者:如果最后一位是9,要处理进位问题,再想想......
 
面试官说完题目后,你不假思索就开始说解法,这种其实是做算法题时的大忌,很容易让面试官觉得你是一个没有思考力的人。

面试者:我能用数组表示吗?这样进位好处理

面试官:数组大小怎么定呐?

面试者:嗯......我可以遍历链表,得到链表长度,转成数组后,对数组加1,在将数组转成链表返回就可以了。

 

大约有1/3的面试者会先想到这种最常规的解法,也有人用ArrayList或者Stack的,其实底层都是数组。
很显然,这种解决并不是最优的,空间复杂度太高。
面试官:空间复杂度高了,想想其他办法。
面试者:可以给点提示吗?
面试官:链表是从高位指向低位的,但是进位是从低位到高位的,你在想想。
面试者:谢谢,我知道了,可以链表反转。
 
 

这个题目不是非常的难,应届生们应该也是很了解这个,只是“转了一点弯”,难倒了一些学生。因此,建议应届生们:刷题有必要,但是一定要懂得灵活变通,不要寄希望于遇到原题。

 

前面说到了这个提的解法有很多种,但是最聪明的解法还是记录最后一个不是9的节点,处理该节点和最后一个节点之间的加1。

 

2、开始编码
编码环节一般也是比较受关注的,所以应届生们同样需要重视的:
  • 变量命名和方法命名体现了你的编码习惯,一定要注意规范性,做到见名知意。
  • 将重复性的代码封装成子方法,比如上面的链表反转。
  • 复杂逻辑拆解成多步,每个步骤封装成独立的方法,方便维护和阅读。
  • 可以适当加些注释,对特殊逻辑进行解释。
  • 写完代码,一定要写个UT或者Main方法,测试下各种case,而不是等面试官提示你写测试用例时才想起来。
3、调试程序
调试环节也是个很好的面试考察点,面试官会判断你的定位问题和解决问题的能力。
另外就是,有一部分应届生调试过程中很容易出现的问题:
第1种,不会先拆分成大的步骤去定位问题,而是单步调试。比如你用反转链表的解法,基本是以下3步:
 


 

比较好的思路是将这3步的结果打印出来,看下是否符合预期,这样1个复杂问题相当于拆解成3个子问题了,然后排除法定位即可。
第2种,明显的错误看不出来。比如:遍历链表时,指针没指向下一个节点引起了死循环,导致程序结束不了,有候选人一度怀疑自己的IDE出问题了,还重启了一把IDE。
第3种,改完一个BUG又引入了新的BUG。链表节点全是9的情况是很多候选人没覆盖到的,需要再新加一个节点,有不少人在解决这个问题时又引入了新BUG,但是没有意识去重跑之前通过的case。
总之,调试过程也是一个很重要的环节,它是你对错误代码进行补救的机会,首先要调整好心态,其次是注重方法。
 
3
 


给秋招同学的几点建议

 

1. 简历一定要提前准备好不同版本,简历要求简洁但是突出重点;
2. 什么时候投递的那家企业,笔试什么时候开始做的,面试的表现如何等,凡事预则立不预则废,有计划的投递有助于拿到更多的offer;
3. 网申和笔试一定要重视,不要在这些小细节上出差错,细心,细心!
4. 面试提前准备很重要,自我介绍要分为一分钟,三分钟等多种形式,一些核心考察的点毕业宝洁八大问,3W问题等自己有条件的话 可以和小伙伴提前练习;
5. 基本礼仪要注意,比如面试的着装,化妆等,注意细节;
6. 在求职中我们会拿到很多的offer,没有最好,只有合适的offer,拿到了自己合适的offer就接受吧,挑三拣四在秋招中会让有些同学错失很多机会;
7. 准确定位,找合适的岗位,不找高端的岗位。