4f0b5fe8758f316a247f9c8225ac45f0
应届生应该如何准备校招 Android 面试

大家好,我是LTNS,之前记录过自己的面试经历(传送门),前几天寂总找我约一篇校招Android岗指南,不胜惶恐,毕竟只是一个刚刚毕业的职场新人,就从一个刚结束秋招的过来人身份,聊一聊怎么收集大厂校招资源和我对经历过的面试的粗浅理解吧,想来应该也有一些参考意义,从一个被面试者的角度聊一聊我们应该准备什么。

校招资源

校招分两种:正常批次和内推批次。

正常校招时间流程各个大厂都不相同,大多都是从开学初的9月份开始,需要到各大官网收集信息;

而大家更应关心的是内推批次,因为内推批次从7月末就会陆续开始,有些公司内推和正常校招是完全分离的(即使内推挂掉,也可以参加正常校招),内推不止在时间上存在优势,而且部分公司会有内推免笔试政策,可以让你更容易走进面试轮更好地向面试官展示自己,那么从哪获取内推资源?主要可以从以下几个渠道可以获得:

  • 认识的学长学姐的内推
  • 关注各种公众号会有不同公司的内推资源
  • 专业的校招资源共享平台(笔者正在建设)
  • 实习生(部分公司可以获得内推资格,部分可以直接转正)

总得来说,就这几种情况可以获得内推。提醒一句哈,即使获得了内推机会也要勤加准备,千万别浪费了每次内推机会。

打个广告:如果大家关注网站建设情况可以关注我的微博(好久没见想我没),网站上线会第一时间在微博告知大家

面试指南

总的来说,面试中主要考察考生的以下几点:编码能力,专业方面的基础知识和对新问题的解决思路,以及对个人情商的综合考察。本文就以美团的面试题为例来说,逐一解析:

实际编码能力

在和往届学长交流中了解到美团的每轮技术面试必然会有手写代码的题,时限通常15分钟。手写代码其实是对一个人的能力的综合考察:要在短时间内构建解决问题的思路,利用自己掌握的专业知识在纸面上编程实现以及和面试官讨论实现的思路体现出的沟通能力。

这部分涉及的基础知识主要涉及:数据结构、算法。这一轮的题目如果面试前勤刷题是可以撞到的,就算不是原题,也有类似思路的,否则的话说实话,建立思路+编码+边界条件的控制要在15分钟内不是很够,所以建议大家参加面试前多刷题。如果真的不幸运,遇到的题目之前没有遇到过,有几点建议给大家:

  • 把笔放下,读懂题。拿到题目不要着急开始写,先读懂题,看好题干的所有细节,有不明白的部分和面试官交流。面试官不会因为你问他问题而降低对你的评价。
  • 构建最基本的思路。在下笔之前对问题进行个大概分类,需要用到哪些知识、什么算法。不要想一步登天,先想出对问题最简单有效的解决方案,所有的复杂算法都是在最基本的算法的基础上不断优化出来的。
  • 控制临界条件。短时间内写出来的算法往往对边界条件的考虑不是很充分,而恰恰这一点是面试官关注的点。可以写出几个具有代表性的测试用例,保证在你写的程序在临界条件下依然是可用的,让别人对你写的代码放心,没人愿意招一个会写出一堆BUG的编码者。可以把你的测试用例留在代码旁边,方便等下和面试官交流,也说明你有做过自测。这个过程有人放在落笔编码的同时,边写边做控制,个人觉得都可以,看个人习惯,但一定要有。
  • 落笔实现它。到了最重要的部分,有了以上的几个步骤你会发现你的代码很整洁,不会出现写了一半发现需要新建一个容器却没有地方写的情况,因为你已经提前想好了需要用到什么。这个阶段如果你有时间,试试注意一下缩进,毕竟代码是要用来读的,提高一下可读性,可以让你的面试官眼前一亮,对你的评价自然提升一个档次。
  • 重新梳理一遍思路。确保没有问题的情况下,和面试官讲述自己的解题思路,如果你这时候发现了更好的解答,也可以在讲的同时说出来,会是一个不错的加分项。

基础知识

基础知识,重点在于基础:

  • 数据结构
  • 计算机网络
  • 常用算法
  • 编程语言(Java)
  • Android基础

只能划一下重点,这部分没有什么心得,就是要下功夫刷题,多读书。现在刷的每道题都可能为你多收货一个Offer!

挑出来几道有代表性的题目说一说

如何判断单链表是否有环

解:使用一个快指针(一次走两步),一个慢指针(一次走一步),同时从链表起点开始,如果快指针和慢指针相遇了则存在环,若快指针走到了表尾仍没相遇则无环。

分析:这是一道很经典的数据结构题目,以及从这道题拓展的如何进一步判断环的位置,计算环的长度。这种题目不止考察对单链表基础知识的掌握,更考察对单链表的使用。这些问题只有真正使用过单链表才可能建立起思路,当然还有一种方法就是多刷题,这些题目是一定会在题库中遇到的,刷题不是看做过多少,而重点在于举一反三,能从一道题的解答中想出这类题的解答。

top Created with Sketch.