从2020年3月18日投出第一份暑期实习简历至今,已经过去400多天。我也尘埃落定,即将去CVTE做Android开发。

休息了很长时间,如今已经能够很平静地回首这段历程,写下这篇文,致敬曾经走过的漫长求职路。如果还能对即将或正在求职的人有所帮助,也算是功德一件。

开头补充

一、个人背景

双非本科,先后在网易和字节跳动实习,都是做Android开发。

二、时间线

2020年3月初开始准备暑期实习,腾讯3捞3败,最终以 0 offer告终 2020年5月中旬开始投递日常实习,收到网易的两个offer及滴滴OC。2020年8月初开始投递秋招,面试了一些大厂,没有满意的offer。

2021年春招,收到CVTE、乐视offer,知乎一面挂。

三、毕业后进互联网大厂的三个机会

1.暑期实习/春招实习:面向次年毕业的学生,一般随应届春招同步开启(3月左右)竞争相对较小,有转正,转正几率视不同公司而定。

2.秋招:面向应届生,一般在7月中旬陆续开启网申,整个招聘过程持续到9月甚至十月(12月左右零星开始补录)竞争大,HC相对较多。

3.春招:面向应届生,一般在2月中旬陆续开启网申,整个招聘过程持续到4月甚至5月(但其实4月初基本就招完了)竞争巨大,HC极其之少。

一、准备

2020年7月开始准备秋招,直到春招才找到满意的工作,有了暑期实习备战的经验,已经能够清楚所有的流程和准备要点,准备阶段所做的步骤基本如下:

其实每个人都有自己特有的学习方法,我们都需要寻找到最适合自己的,在这里我只是列举出我复习的技巧,大家只需要选择适合自己的就行。

书籍和网站

我觉得看书真的是十分的重要,每一本书都有自己的知识体系,但是好书确实不多,需要经历一番挑选;关于网站则是对一些体系较小的知识进行汇总,这里推荐的是设计模式。以下我列举一些个人觉得不错的一些书籍和网站:

  • Android 相关
  • 《Android开发艺术探索》
  • 《深入理解Android虚拟机》
  • 《Android源码设计模式解析与实战》
  • Java相关
  • 《Java编程思想》
  • 《深入理解Java虚拟机》
  • 《图解Java多线程设计模式》
  • 网络相关
  • 《计算机网络》(谢希仁 编著)
  • 《网络是怎么连接的》
  • 数据结构与算法相关
  • 《算法导论》
  • 《算法》(第4版)
  • 设计模式相关
  • 练习相关

知识总结

看了这么多书籍和网站之后需要对这些知识做一个比较系统的整理,这里推荐使用思维导图工具,下图则是我总结的Android复习体系图,完整的版本大家可以点击这里下载。

面试技巧

  • 面试前需要对自己总结的知识重新回顾一遍,以便在被问及时能够快速并且全面的回答问题。

  • 面试前对该公司稍做了解,可以从官网或者从产品等方面了解,如果有产品的话还可以使用,看看有没有存在一些bug,当面试官要你提问题的时候可以跟他一起讨论。

  • 面试完之后做稍做记录,记下自己回答的不好的问题,方便查漏补缺。

下面是我收集整理的一套大厂Android面试真题含解析,完整的朋友可以点击【这里】免费阅读下载。

部分面试经历

CVTE

一面 (电话面)

  • 讲讲你看的Android源码
  • 说说你在项目中用到的MVC
  • 说说观察者设计模式
  • 讲讲对线程安全的理解
  • JVM内存模型
  • HashMap的工作原理
  • 知不知道可重入锁
  • GC回收算法(凉)
  • 引用方式
  • 内存溢出和内存泄露的区别,内存泄露一定会内存溢出吗?
  • 四大组件有哪些
  • Activity的启动模式
  • Activity的生命周期
  • wait使用时要注意什么(答了死锁,面试官换了题目,应该是没有get到它的点) ---和notify成对出现
  • ArrayMap和HashMap区别(没答出来,之前看过ArrayMap但忘完了......)

二面

二面应该是总监面,问题主要偏向项目,有一些问题已经忘记了,只能列出一些还记得的:

  • 做了哪些项目?详细说一下项目。
  • 讲一下RXJava原理;subscribeOn()与observeOn()哪一个方法多次切换线程只有第一次有效?为什么?
  • Volley原理?
  • Retrofit原理?
  • Volley与Retrofit缓存机制有哪些区别?
  • 简单工厂,工厂方法,抽象工厂三种设计模式的优缺点?
  • 什么是内存泄露,什么是内存溢出?
  • 平常使用什么分析工具来优化APP的性能?
  • 手写算法题————实现一个栈
  • Java的集合类包括哪些?各自有什么特点?
  • 为什么写博客?
  • 今后想要往哪些方面发展?

终面(视频面)

我并不认为我能走到最后[不是矫情和装],因为面过CVTE的人都知道,最可怕的是它的终面,终面是被人诟病的,说CVTE不好的基本都是吐槽它的终面,还是有点慌的。又过了好几天,约好了终面的时间==

  • 给前两次面试打分,满分10分。为什么这么打?
  • 有没有面试过哪些公司了,有收到多少offer了,为什么?
  • 工作的薪资期望,地点和时长?
  • 家庭情况,爸妈性格怎么样,你觉得跟谁的比较像,家里人对工作有什么要求吗?
  • 你父母小时候是怎么教育你的?
  • 有没有女朋友?
  • 你未来有什么规划?(我说了一个三年目标和五年目标)
  • 你在技术方面最有成就感的一件事情是什么?
  • 最近压力最大的是什么事情,如何调解?
  • 为什么没有留在之前的公司?
  • 如果你面试没有通过,你觉得是什么原因呢?
  • 你会因为什么原因拒绝我司的Offer?(个人觉得这个问题回答的很关键,我说我不会拒绝的,因为贵公司就是我想去的公司)

仔细回想发现有点强行跪舔的感觉,中间也暗示过几次只要你要我,我TM就去。

在两天后的晚上官网刷新状态--- 终面通过了,bingo!!!

乐视

笔试:

笔试没啥特别的东西,都是一些java基础,安卓基础,几道中规中矩的算法。

一面:

  • 四种启动模式?写了几个情况,让我说back键的情况?
  • LayoutManager和MeasureSpec之间的关系?
  • 堆排的思想?快排的时间复杂度?手写一下快排?
  • Handler机制?
  • Service即start又bind,怎么才能彻底停止?IntentService怎么实现的?
  • Aidl中Stub和Proxy的区别?聊一聊对Binder的理解?
  • 手写一个有序数组的合并?

二面:

二面整体就是根据我的简历,问了问。让我聊一聊看过的OkHttp的源码。

手写了俩个算法:

  • 用最小的时间复杂度判断单链表是否有交点。
  • 手写二叉树的按层级进行遍历。

HR面:

谈人生谈理想...

乐视的效率不算高...一周后给了答复,可以给offer...不过鉴于乐视最近的情况...再考虑吧

知乎

知乎算是一次体验比较差的体验...一面就让我走了,而且我都不知道啥原因。手动摊手.png

一面:

  • 聊一聊ArrayList源码?什么时候初始化数组?怎么扩容?扩容时使用什么样的方式增大数组?
  • 聊一聊HashMap源码?怎么扩容?源码的hash是怎么保证平均散列的?hash冲突后,使用什么方式解决?插入的时候在头结点,还是尾结点?key为空的处理?
  • java中的序列化和安卓中的序列化
  • 聊一聊安卓中特有的集合
  • 线程安全的Map有什么?使用什么样的方式保证线程安全?分段锁和重入锁的区别?
  • synchronized和Lock的区别?
  • Measure的三种情况?
  • 切圆角有几种方式?(必须吐槽这个题...)
  • Handler机制?postDelayed怎么处理的?
  • 算法:翻转一个int型的大数

一面结束....就没有然后了...

总结

闭关了几个月也有了一些心得(也许是废话):

提前准备(越早越好)+心态良好(打不倒你的终将使你强大)+坚持脚踏实地(对于常问的知识点一定要由浅入深的弄懂到自己可以说出来)+运气(有时候你没面过,不要去怀疑你的实力,可能只是一时运气不好)+注意一些技巧(太老实也不一定是件好事)

对于那些想进大厂的同学一定要刷算法题。对于我那些笔试挂了的,应该都是算法题没做好,尤其是字节跳动,它的笔试题就是五个算法题。

上面的内容里内心戏(废话)比较多,其实笔者真的比较菜,标题不是自嘲。这个Offer在很多大牛看来很普通,一般只是作为备胎。但对于笔者来说真但不太容易,自己也很满意了,我拿到offer后,没有怎么考虑,直接接受了offer,准备把学校的最后琐碎事弄好就过去就职。

下面放一些我在准备面试看的一些感觉很不错资料,也祝在找工作的小伙伴早日找到心仪的工作

Android进阶指南

Android 开发相关源码精编解析

2020年Android大厂面试真题合集(附答案)

双非本科Android开发,如何逆袭拿到大厂 Offer?的更多相关文章

  1. 非科班双非本科投的337家Java后台(励志)

    考试结束,班级平均分只拿到了年级第二,班主任于是问道:大家都知道世界第一高峰珠穆朗玛峰,有人知道世界第二高峰是什么吗?正当班主任要继续发话,只听到角落默默想起来一个声音:”乔戈里峰” 前言 文章出自h ...

  2. 谁说双非本科就一定无缘阿里?H哥粉丝6面通过,喜提Offer!

    本文来自作者投稿(原作者:小胖儿),原作者是一位2021届本科毕业生,就读于一所双非(非985.非211)院校,在今年2月份的时候,我曾经帮他指导过简历,并且根据他的简历内容帮他提了一些可能会问到的问 ...

  3. 双非本科字节跳动Android面试题分享(已拿offer)

    基本情况 本人系非985非211普通本科生一枚,有实习有项目经历但成绩普通,在面试前刷了很多面经.面试题,这里也把自己的分享下,做个回报好了,顺便攒攒人品,一到这种时候人就迷信起来了. 面试是以视频面 ...

  4. 双非本科字节跳动Android面试经验和心得体会分享(已拿offer)

    新人报道,没有什么可分享的,就记录一些自己求职的体会和心得. 我是在校招补录的时候参加了今日头条的招聘,岗位是Android开发,最后成功拿到了入场券.但是这也丝毫不值得骄傲,大家都知道:技术日新月异 ...

  5. 双非本科进大疆(SP)!

    哈喽,大家好,我是仲一.今天和大家分享的是一位优秀双非本科生上岸大疆的经历(羡慕哭了...). 今年4月底的时候,这位学弟和我分享了他拿下oppo,京东,联发科实习offer的经历,当时我还发了朋友圈 ...

  6. 40k*16 薪,五年Android开发4轮面试拿下腾讯 Offer !(附真题)

    概述 感觉毕业后时间过得真快啊,从16年6月本科毕业入职了一家不大的公司,到现在快五年了,前段时间金三银四想着找一个新的工作,前前后后花了一个多月的时间复习以及面试,前几天拿到了腾讯的offer,想把 ...

  7. 作为一名双非本科毕业的Java程序员,我该如何在日益严重的内卷化中避免被裁?

    前言 对一个 Java 程序员而言,并发编程能否熟练掌握是判断他是不是优秀的重要标准之一.因为并发编程在 Java 语言中最为晦涩的知识点,它涉及内存.CPU.操作系统.编程语言等多方面的基础能力,更 ...

  8. 双非本科拿到阿里腾讯字节,分享Java后端路线

    前言 最近有很多小师妹来问我. 师妹:师兄~看了你之前的从腾讯到阿里,最后选择字节,觉得你特别厉害,请问你是怎么进BAT的呀,能不能告诉我你的学习路线呀~ 既然小师妹都这么问了,那我在这篇就如实回答她 ...

  9. 【Android实习】20场面试斩获大厂offer,我学会了什么

    前言 很高兴遇见你~ 先说一下笔者春招实习的情况:从三月初到四月半,经历了近20场面试,一共面试了五家企业,通过了腾讯.字节.蚂蚁.美团的面试,虎牙在一面之后拒了二面邀请. 金三银四,笔者不是在面试中 ...

随机推荐

  1. 什么是WAF?

    1.什么是Web Application Firewall(WAF)? WAF或Web Application Firewall通过过滤和监控Web应用程序与Internet之间的HTTP流量来帮助保 ...

  2. 35、sudo权限设置

    提示:sudo的介绍在"13.linux中用户和用户组"中有详细介绍: (1)简历里要加上如下项目经验: 服务器用户权限管理改造方案与实施项目 日期: 在了解公司业务流程后,提出权 ...

  3. 初入web前端---实习(职场菜鹏)

    作为一个大四的准职场新人,顺利的找到了一份自己想从事的工作---web前端开发.

  4. Java:Java的重写与重载区分

    最明显的区别为:重写只存在于子类与父类中,重载存在于一个类中. 具体区别如下: 一.重写(override) override是重写(覆盖)了一个方法,以实现不同的功能.一般是用于子类在继承父类时,重 ...

  5. mybatis 配置的log4j文件无效,不能正常显示日志信息

    正在学习mybatis,配置好后log4j.properties文件后,日志信息不能正常显示,没有效果. 查看了一下mybatis的相关文档,在日志一栏找到问题愿意 原因是我们的mybatis选了其他 ...

  6. 利用C语言判定用户输入数据从而给出结果(利用判定用户体重范围)同求最优解!!!

    例子: 要求:医务工作者通过广泛的调查和统计分析,根据成人的身高与体重因素给出了按"体质指数"进行判断的方法,具体如下: 体质指数t=体重 w/(身高h)2(w的单位为kg,h的单 ...

  7. Java on Visual Studio Code的更新 – 2021年6月

    Nick Zhu from Microsoft VS Code Java Team 大家好,欢迎来到 Visual Studio Code Java 更新的特别年中版.作为这篇文章的重点,我们将看看接 ...

  8. Django基础-004 上下文管理器&中间件&前端公共代码复用

    一.上下文管理器 在views中重复使用的代码,可以在上下文管理器中实现 上下文管理器的处理流程如下: 1.先走完views里面的代码,将结果返回给前端 2.然后再将上下文的结果返回给前端 3.上下文 ...

  9. css颜色介绍和背景设置

    现在美丽网页的设计图中颜色五花八门的,网页模块中漂亮背景图也很多,网页中颜色和背景设置必不可少,接下来我们就先学颜色是如何表达的,要知其然,知其所以然. 颜色表达形式 1.RGB:rgb( red, ...

  10. Java基础00-运算符4

    1. 算术运算符 1.1 运算符和表达式 1.2 算数运算符 余数的计算取余数是指整数除法中被除数未被除尽部分,且余数的取值范围为0到除数之间(不包括除数)的整数 ,例如27除以6,商数为4,余数为3 ...