作为字节跳动的一名 Android 程序员,谈谈工作一年之中的成长与收获(附上面经整理)

Posted 清风Coolbreeze

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了作为字节跳动的一名 Android 程序员,谈谈工作一年之中的成长与收获(附上面经整理)相关的知识,希望对你有一定的参考价值。

转眼,时间流逝在谈笑间;

记得去年毕业找工作时的姿态仿佛如昨日般清晰可见,到现在已虚度过了一年的时光;如今看来,一年之中还是有非常多收获的,感谢这一年的时光,感谢所有遇到的人,让我变成更好的自己。

正所谓满园春色关不住,一枝红杏出墙来,带着满满的收获我开始了大规模的面试,拿到了大部分 Offer。

在发出来面试经历之前,简单谈谈我这一年中作为职场新人的成长与收获。

职场收获

  • 适应公司技术

进入职场后,你会先去适应公司的技术栈和工具,这些其实并不难,在了解和学习的过程中也能增长见识。

  • 适应人际关系

除此之外,要适应同事之间的人际关系,并且要积极主动接受每一份儿交代过来的工作,因为每个人都会在内心给他人贴标签,如果某个人做事不靠谱,大家都会避而远之,所以最开始的时候要给大家留下好印象,便于日后协作。

  • 多做日志记录

我在刚刚入职时,交给了我一个很小的系统功能的迭代,听师兄介绍完背景之后,就开始动手进行开发,并且完成自测,代码 cr 和完成的发布流程,同时在做的过程中,记录了一篇日志,以免下次做的时候忘记,做事情严谨细心也会给别人留下好印象。

  • 勇于承担责任

在承担责任方面其实我有很多做的不够的地方,有过主导需求的机会,但是没能把握住,还有一部分交给我的工作,放任自流,并没有完全积极去推进。这里需要提醒大家的就是无论什么样的工作交给你了就要多多用心,积极主动,勇于承担。

  • 做好向上管理

另外一个,初入职场和学生时代有个很不同的地方,我觉得也是最需要牢记的。

在学校做事情要对自己负责,在职场做事情要对直属 leader 负责、对公司负责,也就是所谓的向上管理。

在学校的时候,无论是学习上课、参加学生会工作、参加课外兴趣班,本质都是为了自我提升,在读大学期间有所收获,毕业的时候回首没有虚度光阴。

在职场里面,需要每个人在自己的工作岗位上对集体有产出,为公司创造价值,在这样的情况下,你的直属 leader 决定了你的工作内容和产出价值,而个人的产出价值又会直接汇报给直属 leader,由 leader 合并大家的工作产生更大的价值,所以对直属 leader 负责,向上管理非常重要。

  • 技术推动业务

作为技术人员的产出,通常还是要看如何利用技术去提升价值的。不能够完全去考业务来推动技术开发,要有技术推动业务的思考。举个例子:

业务推技术:比如说产品经理说要增加一个需求,然后我们开发人员就利用技术去开发这个需要,这就是所谓的业务在推动技术。

技术推业务:因为技术改造,使得开发页面的效率提升了 10 倍,然后开发人员和产品经理说,你的梦想实现了,花 1 个需求的时间就可以开发 10 个需求了,这就是技术在推动业务。

作为android开发工程师,就是要发现技术中的痛点,解决掉之后提升自我价值。

字节跳动面经总结及经验

因为去年疫情的原因,大厂的初面整体都采用会视频会议的模式,我也不例外,当时还在家复习的我和大厂面试官第一次有了线上的交流。

 

一面(视频面)

  • 自我介绍+询问近况
  • 什么是乐观锁?
  • volatile关键字
  • hashmap 原理,红黑树是什么?
  • String,StringBuffer,StringBuilder 区别?
  • 三次握手四次挥手
  • Jvm的内存分配
  • 安卓各版本大变化(Android 6.0到10.0有哪些大点变化),兼容适配
  • Activity的启动流程、生命周期
  • app布局优化、内存优化
  • 字符串的一道算法题

二面(视频面)

  • Handler原理、Android 消息机制
  • 自定义View的绘制流程
  • 自定义View 饼状图,点击事件,画文字
  • Recycleview的复用机制
  • Retrofit和OkHttp原理,拦截器
  • 进程如何保活?
  • anr如何产生,Service触发anr是多长时间(20秒),如何解决anr?如何解决那种莫名其妙的anr?
  • 冷启动、热启动热修复原理
  • 手写一个简易的Even Bus
  • jni调用的流程

三面(现场交叉面)

  • Fragment与Activity的生命周期
  • Fragment在哪儿个生命周期方法调用后真正加入Activity,在哪儿个生命周期方法getActivity()返回null或者不为null,为什么
  • 讲一下实习中觉得比较不错的东西
  • 以下是实习项目相关
  • 图片压缩
  • 图片缓存
  • 高斯模糊
  • 高斯模糊动态效果
  • 双栈实现队列
  • Java内存模型
  • GC算法
  • 项目中遇到的内存泄漏类型
  • 解决内存泄漏问题的方法
  • MAT
  • LeakCanary
  • Handler内存泄漏的原因
  • 软引用与弱引用
  • 虚拟机栈以及栈帧
  • Binder原理
  • Java中的同步方法
  • Sync与Lock的区别
  • Sync的原理
  • Lock的内部实现
  • AQS的内部实现
  • CAS
  • startActivity框架层实现
  • ActivityMamagerService
  • ApplicationThread
三面过后,可能是面试官觉得我基础掌握的比较扎实,很带趣味性的问我,假如拿到了offer的话,有没有考虑来他们所在的业务部,我想一想面试官给我这个面子,我不能不兜着。于是在半推半就之间的同意了,后面也就准备HR面;

感悟

良好的心态是成功的一半,此言不虚,面试当然也如此。但是面试往往因为受到其备考时机,求职者心态的影响,有一个提前且有效的开始,以平稳的心态来应对其实是相当不容易的。

面试过后,我通过Google把其中的面试题答案解析与面试题整编成了一份PDF面试刷题模板,整体是这样;

如有需要的朋友,可以扫描下方  “二维码 ” ,添加即可获取;希望大家领完之后都能认真复习,都有一个光明的未来;

以上是关于作为字节跳动的一名 Android 程序员,谈谈工作一年之中的成长与收获(附上面经整理)的主要内容,如果未能解决你的问题,请参考以下文章

埋头苦干60天啃透这份字节内部流出的《Android大厂面试宝典》,终于入职字节跳动,定级2-2

移动开发程序员怎么优雅迈过30K+这道坎?成功入职字节跳动

不卷了,入职字节跳动一周果断离职

真香!百度阿里腾讯字节跳动等面试题库,被各大厂要求直接下架

字节跳动面试真题:查看mysql连接数命令

2021年最新Android面试精讲,成功入职字节跳动