一本毕业的“打工人”,大厂安卓开发2年被裁,重新出发终于拿下腾讯offer

前言

自我介绍下,本人就是个屌丝程序猿,大学很普通名字就不说了,软件工程专业。大学毕业后去了一家大公司面试,成功的拿到了Offer。说实话,拿到Offer的那一刻,我的内心是非常开心激动的,入职后也非常顺利,就是因为太顺利,导致我一直很安逸,也对未来没有什么考虑。

后来的后来,由于我一直以来的安逸,自身的技术也一直是那样,公司的发展需要更高技术的人才。很显然,我已经适应不了公司的发展,最终,我被辞退了。

被辞退后,我内心深受打击,对这座城市也心灰意冷。一番思索过后我决定买高铁票回老家。回到老家后,我看着这座熟悉的城市,心情舒缓了许多。在老家待了几天,我觉得不能再这么颓废下去了。但是近年来的安逸工作状态,让我的技术没有一点长进,我自知这个状态下去想要进到互联网头部公司定是不现实的,毕竟学历不能代表全部,技术才是最重要的。我决定重新出发,提升自己的技术。

本人目前已经在腾讯入职了,过程非常艰辛,我深知这来之不易的成功是我一直以来努力付出得到的。

下面是我面试中的一些流程和面试的问题,给小伙伴们一些经验,希望能帮助到你们。

整理了很多大厂面试题,有需要的朋友们,vx扫描二维码领取哦

面试流程

腾讯一面(全程大约1h左右)

  • 自我介绍
  • RecyclerView和ListView的区别
  • TListView 如何缓存的?
  • RecyclerView联系人列表如何实现A-Z快速定位
  • 广播和EventBus的区别
  • 主线程Looper循环为什么没有卡主线程?nativePollOnce
  • SharedPreference的线程安全、进程安全,如何跨进程
  • Android 中实现多线程: threads, Handler, AsyncTask, IntentService
  • Android 中如何实现多进程
  • 自定义View的过程:measure,layout,draw
  • LayoutInflater#inflate 的 attrachToParent true 是什么意思
  • theme 和 style 有什么区别,优先级
  • 有哪些进程间通信方式
  • View 的渲染过程
  • Binder 的原理和优势
  • AIDL 中的 oneway 有什么用,方向标签 in、out、inout 是什么意思
  • Android 中有哪些动画,都说下
  • Serializable 和 Parcelable 的区别
  • 知道哪些Layout,ConstraintLayout 的特点是什么
  • 手机开发者选项有哪些,不保留活动是什么

(面试官问了很多基础的问题,有些回答的并不是很流利,不知道还有没有希望。)

二面是在星期四的一个下午,距离一面过去大约有一个星期了吧。时间都有那么久了,我以为一面可能凉了,结果就收到了面试的邀约。

腾讯二面(大约45min)

  • 说一下你对哪个项目比较熟悉、为什么做这个项目
  • 项目采用了什么架构,数据库如何设计的
  • 数据库由哪些表,为什么有这些表
  • 主要有哪些核心模块,模块之间如何通信的
  • 如何保存会话状态,有哪些方式、区别如何
  • 分布式session如何管理,你有哪些方案
  • 学过数据结构和算法吗(当然),你说说二分搜索的过程
  • 说一下快排的过程,写一下伪代码
  • 了解哪设计模式,举例说说在jdk源码哪些用到了你说的设计模式

(二面大部分问的都是项目技术上的。感觉我回答的并不是特别好,所以感觉没什么希望了。)

就在我准备重新投简历的时候,他们给我打电话了,让我约个时间视频面试,然后就开始了第三轮面试。

腾讯三面(视频面,全程大概1h左右)

  • 说下你平时看的一些技术博客,书籍
  • linux 下的一些指令
  • 工作中你觉得最不爽的事情是什么
  • 说下你的优缺点
  • 有没有想过去创业公司
  • 写个 strcpy 函数
  • 说说你自己的性格
  • 给你一个系统,后台的逻辑已经实现了,但是前端加载很慢,怎么检测
  • 以后可能要学习很多新技术,你怎么看
  • 项目中遇到的困难(提前想好,并且把实现或者优化方法说清楚)
  • 系统的量级、pv、uv 等
  • 应对高并发的解决办法(分布式)
  • 在项目中主要负责了哪些工作
  • nginx 的负载均衡
  • 分布式缓存的一致性,服务器如何扩容(哈希环)

(第三轮面试整体感觉还行,没有什么特别大的压力)

HR面(大约30min)

  • 平常怎么学习的
  • 兴趣爱好
  • 觉得自己前面几轮面试怎么样
  • 除了Java还研究过其它什么技术(我说AI,区块链)
  • 跟我介绍一下区块链~
  • 怎么看待国内区块链的发展
  • 跟我说一下你认为最具有挑战性的项目

我做了哪些?最终顺利拿到offer的?

1.跟着视频学,重新开始

2.巩固知识,加强自己的专业技能

3.刷面试题,熟悉面试流程

面试建议

1.有耐心且主动

面试不要着急着去问结果,一般在hr面的时候,她的态度多少能够猜个七七八八的,如果等上一周还没有通知,那就可以主动去问了。

2.刷题是为了提升自己的运气

运气在面试过程中是非常重要的,刷题的目的很简单,除了巩固我们所掌握的,另一个就是为了能提高在面试中我们的运气,如果能够问到一样的题是再好不过了,当然这个办法是适用于职级中低岗位。

3.掌握基础,注意深度

腾讯面试最喜欢问两类问题,一类是基础,另一类就是深度。基础部分,无非就是我们所掌握的技术基础内容,基本上只要是有准备的都没有太大的问题。另一部分就是深度问题,大多涉及到自己之前的工作、项目,面试官所问的问题不仅仅是停留在表面那么简单,背后的原理是什么才是面试官想要问的。

需要面试题或者学习资料的朋友们,vx扫描二维码领取哦

最后

其实Android开发的知识点就那么多,面试问来问去还是那么点东西。所以面试没有其他的诀窍,只看你对这些知识点准备的充分程度。so,出去面试时先看看自己复习到了哪个阶段就好。

对于程序员来说,要学习的知识内容、技术有太多太多,要想不被环境淘汰就只有不断提升自己,从来都是我们去适应环境,而不是环境来适应我们!

认真复习,认真对待面试,准备充分,不断总结。实在不会你就背,虽说有些特别基础的知识点在实际开发中用不到,但面试就是面试,面试就是问这些,连基础的问题都回答不好,实在很难让你通过。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
THE END
分享
二维码

)">
< <上一篇
下一篇>>