35岁以后依然被公司抢着要?4面字节跳动,完虐面试官年薪70w+!

一位32岁的Android开发者因项目边缘化决定寻找新机会,成功面试多家一线大厂,最终拿到满意offer。分享了面试前的准备,包括自我定位、知识梳理、简历准备、面试渠道等,并详述了面试过程中的经验,包括面试题和谈offer的技巧。此外,还提供了面试题和学习资源。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

广大从业者心声



无心插柳,柳成荫(我的32岁经历)

最近因为团队项目被边缘化,新项目接连流产,已经可以上市的项目突然宣布不做了,又加上外包岗的离职,作为正岗也有被裁员的风险,于是出去看了一下机会。面试了阿里巴巴,百度,头条,趣头条,小米,爱奇艺,映客,快手等一线的大厂,最终拿到了满意的offer。下面将面经分享出来。

面试前的准备

下面我将从以下几个方面来分享一下面试前的准备。

一.给自己定位

首先要给自己定位,自己现在是一个什么阶段,是初级岗,中高级,高级,还是专家级。一般情况下刚参加工作一年左右时初级,两年左右努力提升自己的话是 中级,三到五年高级甚至专家级。前提是不停的钻研。

1、知识的梳理

因为把自己定位为高级开发工程师,俗话说:面试修航母,工作螺丝钉。面试考虑各个方面,对于安卓来说,主要有以下几个方面来准备:Java基础,Android基础,Java并发,Java虚拟机,Android源码(包括framework和开源的项目),数据结构和算法。当然基础知识梳理完毕之后,还要去阅读一些面试经,看看最新各个厂商问的问题。其实以上这些东西准备完,基础好的话,一个月左右,基础不好的话至少要3个月吧。
俗话说不打无准备之仗,只有准备好了才能在面试过程中取得好的结果。

我仅仅提供知识点,如果你正在找工作,建议逐个过一遍,不懂的可以群里提问讨论, 需要相关知识点可以查看我的【GitHub】,对于已经掌握的可以忽略以节省时间。

自行学习交流直达链接:【点击获取

2.简历的准备

简历是一个敲门砖,HR每天会有很多简历收到。简历如何让人眼前一亮,并且能一眼抓住关键信息:个人基本信息(姓名,电话,邮箱,毕业院校等),工作经理,技能点,一些亮点(比如六级证书,获奖等)。简历要简洁,层次分明。写完简历要在招聘网站上更新一下自己的简历。

3.面试机会的各个渠道

这次面试一共通过了3种渠道,一是朋友内推,二是猎头帮忙,三是通过boss或拉钩网投递。

朋友内推: 在圈内首先要认识一些好友,各个厂商的员工,可以通过脉脉加好友,也可以通过技术交流加好友,了解好友的动态,让他们帮忙推荐。当然找内推也有两种方式。第一种是让朋友推荐岗位,让他帮忙问问组内是否缺人。第二种通过自己去找,一般情况下公司招聘会在官网上显示加入我们链接,这里可以看到岗位信息。推荐第二种,你自己找到岗位,发给朋友,让他直接帮忙推荐这个岗位。推荐一般会有奖金的。

猎头帮忙: 最近听了一个得到的课程“如何有效的提升职场竞争力”,我觉得老师讲的一句话特别好,不要排斥猎头,把猎头当做你的合作伙伴。猎头比你更了解推荐的公司,以及当前的行情。找猎头的方式也有很多,第一个是问问你的朋友有没有合作过的靠谱猎头,第二是像智联招聘,猎聘,boss直聘上有很多的猎头。你更新简历之后,会有猎头给你联系。

招聘网站: 互联网招聘就是在拉钩,boss,智联上了。简历更新到网站上,然后就可以投递了,这里要看到简历投递是否有效果,如果半天没有人查看你的简历,那么说明你的简历有问题,及时的修改再投递。

4.面试过程中

面试中分为以下三个方面分享:面试,谈offer,面试后记录总结


二、面试

面试首先不要迟到,着装得体,带好笔和纸,因为是面试也是自己白板能力的一个体现,还有写一些算法以及流程图等。面试前先了解企业信息,有些不合适的公司就不要去面试了,提前安装对方的产品,体验一下。面试过程中一般会让先做自我介绍,要分阶段有条理的介绍。一般会问你在上一家公司最有成就的事情,遇到的最大的技术难点等。 面试过程中不会的可以说自己不了解,也可以反问一下面试官,有的面试官会给你讲解一下,它还表现出你比较好学。

1.谈offer

offer到了之后,首先还是定位,你未来几年的发展方向:技术提升,管理能力提升还是什么。一般大厂会有评级,问清楚评级,福利待遇。谈工资的技巧:1. 内推的话,问问内推的朋友。2. 猎头推荐:让猎头帮忙谈。3. 自己投的简历,一般拉钩和boss直聘上有明码标价。一般来说涨30%~40%是合理范围。

2.面试后

面试后及时总结,有可能下一个面试官会问你同样的问题。我就遇到了好几个一样的问题。

3.面试题分享

下面分享一些一线厂商的面试题:

京东提前批 Android开发面经(已offer)

一面

  • 自我介绍

  • 为什么做Android

  • 说一下快排怎么实现,优缺点

  • XXXX项目负责了什么

  • 网络请求封装是怎么做的

  • MVP有没有封装的

  • 项目里面RxJava OkHttp Retrofit 源码看过没有

  • 讲一下OkHttp 源码

  • 是怎么根据Dijkstra 做的最短路径

  • 图片加载你是怎么优化的

  • Glide底层缓存怎么实现 (弱引用,三级缓存…)

  • 瀑布流效果如何去实现

  • 了解过最新的技术吗(Jetpack)

  • 举几个Jetpack的例子

  • ViewModel,Rom

  • 回问

二面

面的时候网络不好,画面一卡一卡的。。。

  • 自我介绍
  • 讲个项目,自己最熟悉哪一个
  • 项目做了什么
  • 网络请求框架怎么封装
  • 还遇到什么问题没有
  • 事件分发机制,多个RecycleView 嵌套怎么处理
  • OkHttp源码
  • 讲一下拦截器
  • Cache缓存是怎么做的
  • 图片做过吗
  • 你的图片项目怎么加载大图
  • 如何防止OOM
  • 做过View 的性能优化吗
  • 讲一下View的优化
  • 层级布局
  • 如何减少绘制
  • 针对measure和draw 有什么优化的地方吗
  • 多个view 加载卡顿怎么办
  • 反问

滴滴国际化部门客户端开发面经(已拿意向书)

一面

1.android的消息机制

2.为什么每个线程最多只能有一个Looper?这是怎么实现的?

3.Handler为什么会引发内存泄漏?有哪些解决方式?

4.安卓中常用的四种引用类型是什么?它们的特点分别是什么?

5.flutter的使用体会

6.statelesswidget和statefulwidget的异同

7.flutter的状态管理

8.JVM的GC算法都有哪些?详细介绍一下分代算法中新生代部分。'stop the world’是什么意思?

9.android的事件传递机制。如何解决滑动冲突?

10.给一段代码,要求找出代码中出现的错误,并且说出这些错误会导致什么报错

11.HashMap的实现。红黑树的性质

二面

1.android线程通信有几种实现方式?

2.自己做的社交app有用到哪些第三方库?

3.为什么选用Glide作为app的图片加载库?有考虑别的库吗?

4.Glide使用时要注意哪些问题?

5.android的进程通信机制有哪些?它们是怎么实现进程通信的?

6.了解ANR吗?什么情况下会出ANR?为什么消息队列不会引发ANR?

7.android的事件传递机制

8.adnroid的自定义view如何进行优化?

9.app如何保活?

10.你写的应用的抽象架构是什么样的?为什么要搭建这样一个模型?

11.LiveData和ViewModel的实现原理

12.为什么谷歌开始建议开发单Activity的app?

13.了解模块化吗?什么是模块化?

14.flutter在状态管理上都有哪些解决方案?你对这些解决方案有什么看法?

15.算法题:合并两个有序链表

三面

1.Room库和传统的Sqlite有什么不同?它是怎么实现的?使用Room的好处在哪里?

2.如何对app进行增量更新?

3.在一个陌生的城市,如何确定该城市是否适合投放网约车业务?

4.要对1000个人进行新冠检测,最少要检测几次?

5.app国际化会遇到哪些难题?

三面就问了这五个问题,然后面试官就在和我介绍滴滴的国际化进程和中国移动互联网的一个发展趋势。同时面试官也对我的未来技术发展提出了很多建议。我和面试官也对flutter的前景做了一些探讨,和经验丰富的前辈对话总能学到很多东西,非常感谢面试官。

四面

四面的面试官说基础性的问题前面三面已经问的很全了,所以这次面试只问一两个发散性的问题。

1.假设两个线程在两个CPU核上并行运行,它们要对同一块内存区域进行读写,如何保证数据的正确性?想出尽可能多的方案。

2.地图实际上是由无数个矩形图片渲染而成的,我们将这些矩形图片称作“瓦片”。如果让你设计一个地图渲染引擎,你要如何与后台规定瓦片的尺寸?从尽可能多的方面去考虑。

3.Flutter在ios上的表现不如android上的表现好,你怎么看这个现象?

4.你为什么喜欢Flutter?

四面面试官非常nice,从头到尾一直是笑着进行的面试。面试的氛围也特别好,与其说是面试,不如说是前辈在和后辈进行技术讨论。面试官也从过来人的角度对我后面的技术发展提了自己的建议,非常感谢面试官。总的来说,四面的氛围并没有想象得那么严肃,面试官也说面试得很愉快。


####百度春招Android三面面经(已offer)

一面

  • 为什么用MVP,技术选型是为什么

  • MVP好处是什么

  • MVP有出现什么问题吗

  • 了解其他模式吗?了解MVVM吗?有什么特点

  • Handle了解哪些

  • 事件分发机制

  • 滑动冲突可以说一下吗

  • Activity的四种启动模式和对应的场景

  • HashMap使用说明数据结构

  • HashMap容量的问题

  • 还了解其他容器吗

  • 进程和线程的区别

  • Synchronized和Lock的区别

  • 线程池的好处

  • 线程池的创建的方法

  • 接下来是打开编译器,共享屏幕写几道算法题

  • 斐波那契数列求第n个

  • 斐波那契数列求前n个的和

  • 写个快排

  • 有没有参加社团,或者当班委

二面

一面完面试官说先不要离开视频会议,马上几分钟之后就二面了

  • 说说TCP和UDP的区别

  • 三次握手

  • HTTPS和HTTP

  • HTTP的不安全具体是指什么

  • 怎么计算网络请求消消耗流量

  • 知道黄油计划吗?

    • 当时不知道,后来搜了一下,是Android4.x版本之后的优化
  • OkHttp的优点

  • 怎么理解OkHttp的责任链模式的好处

  • 有没有做性能优化?

  • 知道LeakCanary的原理吗

  • 还有其他性能优化吗?

  • 内存复用的条件

  • 排序算法知道哪些

  • 写其中的一个排序算法

  • JetPack和Kotlin有用过吗

  • 有没有社团,或者班委

    • 这个问题一面二面都问了,感觉是偏向于问性格的
  • 有学其他语言吗?

  • 未来是对自己有什么规划?

  • 对Android前景怎么看?

  • 反问环节

三面

没有写算法、基本没有问技术问题;可能是Leader面,基本上都是聊天,大概30分钟

  • 自我介绍

  • 项目是什么性质的?

  • 和设计师同学那边怎么合作

  • 有生活问题和开发问题一般会怎么做

  • 说到了博客,那你经常看谁的博客

  • 外国的博客或者网站有没有关注?

  • 对于Android开发怎么看

  • 有没有日常使用的App,觉得它哪里做的不好

  • 这个App做的不好那他怎么要这么做,有没有思考产品经理考虑了什么

  • 自己是偏集体型还是单打独斗型

  • 团队中你是领导者还是实施者?

  • Android和IOS系统的比较

  • 学了Android开发多久了

  • 未来的规划是怎么样的

  • 反问环节

尾声

一个好的程序员,他应该以最快速度握最新出现的技术,井将产,什么是先进技术?

flutter/dart, swift都是,你前能从这两个最新出现的语言中学到什么吗?学了之后能用上吗?

如果你真能解决问题的话,那么其实你自己当老板也就是一个问题,也是一个目标,你真能解决题的话,那么你也会朝着目己做老板的目标去努力,如何创立一家目己的企业,这也是个问题啊,道创业本身不是问题吗?你能解决这个问题,那回报岂不是最丰厚的?

所以破拿轮说,不想当老板的程序员,不是好程序员,就是这个道理!

如何在35岁以后依然被公司抢着要?

当你从程序员到老板后,在回首往事的时候,オ会得目己当年的技术好,好到可以自己做老板

资源分享
自行学习交流直达链接:【点击获取
系统学习笔记分享

希望我这些面试总结可以帮助还没有找到工作的伙伴们,传递一份温暖~

篇幅有限,无法一个问题一个答案的展示(这些资料均已整理在了这套面试通关必备的文件里),觉得有需要的码友们,麻烦各位帮忙点个赞(可以帮助更多的人看到哟!),即可获得免费下载的方式!!

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值