应届毕业生求职指南【互联网技术】

又到了一年实习生校招的季节,想起自己当初求职过程中的期待与迷茫,似乎就在昨天,一晃七八年过去了。

最近两年在招聘、面试经历比较多,看到很多候选人依然还是充满了期待和迷茫,搜了一下网上的文章更多是一些培训机构比较虚的东西或者面经,就想整合一下候选人和面试官遇到的问题吧,供大家批判性参考。

求职过程中,你是否遇到这些问题:

1、小范围内感觉自己的水平不错,但面试过程中似乎总是答不好。

2、面试中遇到自己有点了解又了解不多的问题,应该怎么办。

3、现场写算法题每次都紧张,脑袋一片空白。

4、都说应届生主要考察学习能力,这个应该怎么体现。

5、最后面试官问我有什么问题,应该怎么问。

6、Offer收割机,怎么选择。

。。。

针对这些问题,分享一下我的看法。

1、实力决定基线

什么是应届技术的实力呢,主要是指对技术的掌握,对问题的分析,以及隐藏在背后的学习能力,这是从属于一个人的核心资源,不可剥夺,作为招聘的依据是合理的。

因此,技术的掌握情况和学习能力,就成了考察的重点。

技术的掌握体现了学习的结果,对于技术职位来说,首先要熟练掌握一门编程语言,熟悉其核心特性,此外,算法、多线程、网络、操作系统、编译原理、数据库等基础知识也是必须要理解的。比如上面说的写算法紧张的问题,绝大部分还是掌握不到位。

面试过程中,一个知识点要能迅速简洁的给出其核心要点,然后再稍微展开谈自己的理解,最后是比较和优化的思考。

比如,经常在校招面试中出现的问题:

你知道哪些线程同步机制,它们适用于什么场景?

我认为一个比较好的回答是,线程同步是为了解决多线程并发操作临界区时的一致性问题,常用机制包括:

一次只能有一个线程访问使用互斥量;

一次可以允许多个线程访问使用信号量;

读多写少的场景使用读写锁;

需要满足某些条件才能执行,使用条件变量;

此外,还有生产者-消费者,同步队列,以及公共变量局部化等等。

然后再结合自己的使用阐述一到两种机制。

这个回答,首先简洁的定义了一下问题,达成和面试官的确认,如果不一致面试官会马上打断,重新明确一下问题,避免答非所问;其次了解的同步机制比较多,适用场景讲的也很简洁明确,有比较有思考;最后体现一下自己的动手能力作为亮点。

学习能力体现了未来的潜力,技术的发展日新月异,对技术人员的要求要随之水涨船高,没有优秀的学习能力,是很难在这个行业里长久立足的。

学习能力强怎么体现?对于几乎所有的面试官来说,都是通过考察以往的学习效果来考察的,和技术的掌握不同,这里要更多的体现学习的过程和结果,比如面对一个什么问题,通过搜索引擎、翻阅书籍、自己的思考和与其他人的沟通,发现有几种解决方案,优缺点是什么,怎么选择,实现过程中遇到了什么问题,最后取得了什么样的结果。

2、寻找亮点,突出亮点

掌握了基本的知识,也体现出一定的学习能力之后,恭喜你入围了有竞争力的名单,接下来面临一个船新的问题:

大家基础掌握都不错,也都有一定的学习能力,那么,凭什么是我?

对大部分同学来说,这里就看运气了,这就导致有些同学,感觉自己答得没问题,但还是没下文了。这是因为,面试的过程,会有很多可过可不过的情况,随着面试轮数的增加,过的概率会越来越小。

有没有办法避免这种情况呢?

是有的,方法就是要有亮点,寻找亮点,展示亮点,突出亮点,在茫茫多的候选人中,能够突出来。

在我面试的同学中,有写过TCP的C/S通信模块的,有写过iOS的UI组件库的,有学习、调试、优化过开源库代码的,这些同学在过程中很容易把自己所学的东西串起来,理解的更深刻,又充分体现了学习能力,自然也就更容易拿到Offer。

这没有想中的那么难,因为不会要求学生凭空产出具备完整功能的产品,当你通过搜索、思考、沟通充分掌握了总体设计,写出一个原型实现主流程是很快的。一个搜索引擎的原型,主要包括爬虫、分词、索引、查询四个模块,核心接口也不复杂,我当时是五一三天假期在宿舍里撸出来的。

3、学会把事情讲清楚

还有很多的候选人,没法把自己的理解和做过的事情讲清楚,跟候选人沟通后,主要有两种情况,一种情况是想通过内容的多,来展示自己懂得多,另外一种情况是自己确实做了很多,也解决了很多问题,讲的时候发现讲不出来。

这两个问题要分开来看。

对于客观技术问题的阐述,有三个建议,找主线、分层次、抓重点。

以git为例,作为文件版本控制系统,主线问题就是解决文件\目录\版本的抽象建模以及多人协作的协商机制,其基础层的核心设计就是文件->目录结构->commit三个层次的概念,以及commit通过保存父节点信息组成的历史,加上自动合并和冲突解决机制。

对于自己参与过的项目的阐述,主要是遵循STAR原则,这个有很多文章介绍,可以自行搜索。

4、Offer选择

如果你基础实力强、又有亮点,表达清楚,你大概率会面对一个甜蜜的烦恼:

大厂Offer太多,怎么选呢,真是痛苦。

我的建议有三点。

对于应届毕业生,核心问题是要入职之后有足够大的成长空间,这个成长空间取决于三个因素,问题的复杂度,师兄/老板的牛逼程度,业务的发展情况,排名分先后,三个重要性依次递减。

问题的复杂度是客观现实,人的认识是通过对客观现实的认识和改造不断深化的,没有足够复杂的问题,成长就成了空中楼阁。应届毕业生在刚入职第一年主要在融入团队,快速提升技术水平,问题不够复杂也还好,一到两年之后,这个就会越来越重要。

牛逼的师兄\老板,这个重要性始终很高,技术方向的把控,踩过的坑,在你没有头绪时的指导,这个是能让你更快突破,能力上更快产生质变的。

业务的发展情况,这个当然也重要,放在第三的原因是,没有一个业务能够永远增长,其兴也勃焉,其亡也忽焉。但是牛逼的人可以越来越牛逼,解决复杂问题的能力也可以越来越强。

那么,怎么知道这个团队面临的复杂度、师兄\老板的牛逼程度呢?

这个就是每个面试最后的保留环节,面试官会问你,你有什么问题要问吗?这是很好的了解这两个信息的机会。实际上,我面试过的最多的两个问题是,我们团队有多少人,和我有什么地方可以做的更好。

这里有很多种问的方式,聪明的你,觉得怎么问比较好呢,欢迎留言与我互动。

最后打个广告:

阿里巴巴-淘系技术部-商家体验团队招聘iOS/Android/C++研发工程师。

我们有商家和消息两块大的业务,支撑了面向10亿级消费者和千万级商家的运营、沟通需求,对内赋能集团新零售域众多App的消息能力。

我们的优势是:核心部门、复杂场景、富客户端

作为核心部***10亿级的用户和千万级商家,规模带来复杂度

客服沟通、淘友互动、营销管控,我们对接了近百个业务方,每个业务方都有自己独特的诉求,多样性带来复杂度

我们赋能了集团内数十个App,开放会引起整个技术理念和架构设计的变化,需要具备许多标准的能力实现与外界的交互,开放带来复杂度

富客户端,本地数据与远端数据的同步、状态的管理、UI的渲染、逻辑的动态化,以及模块间作用的非线性,这些都会带来很高的复杂度。

在客户端的复杂性方面,我们是最前沿的。至于师兄/老板够不够牛逼,欢迎你来验货。

联系方式(遵守牛客网规范,不放二维码):

邮箱: wenhao.jwh@alibaba-inc.com

#实习#
全部评论
欢迎新同学加入我们团队。
点赞 回复
分享
发布于 2021-03-06 10:51

相关推荐

4 8 评论
分享
牛客网
牛客企业服务