安卓半年跳槽总结

avatar 255419
vansome
10030
26
个人情况介绍
本科CS专业,在一startup工作了2年半后,开始筹划跳槽。平时乱七八糟做些前端工作,没有什么focus,公司里也没有大牛和项目可以让我学习。面试结果:
Offer: IXL, Paypal, Robinhood, Wish, Facebook, Amazon(降级到SDE1)
Rej: Affirm Onsite, Snap phone
Onsite没去: Airbnb, Doordash, Coinbase, Linkedin, Uber

刷题情况:
LC 350道题,每题可能做了2-3遍

心态
把心态放在前面讲,是因为我觉得在准备面试中心态真的非常重要。相信大多数人准备面试刷题时压力都特别大,有的面临身份问题,有的面临当前的工作压力。有段时间我特别焦虑,不管是和朋友吃饭,还是和家人相处,都惦记着自己的题目没有刷完,然后每天都压力很大过的不开心。最后改善的方式就是我会周末把下周每天的任务都写好,每天完成任务后就可以大胆放松的干些其他事情。然后就是调整面试的心态,不要把鸡蛋放在一个篮子里,面试很可能就是40%的运气,取决于面试官好不好,有没有做过那题或者当天的状态。尽量多面一些公司,总有一个可以运气好录取的。

安卓还是General
可能有很多人都有面安卓还是general的问题。安卓的role现在确实比较充足一些,体现在,就算我在一个不知名startup,投的9成公司都会给我面试机会。
对于我个人来言,平时有做一些安卓,但是研究的不深,项目也很简单,没有什么可以提供我学习的地方。最后还是决定面安卓,因为机会多一些,bar稍微低一点,感觉自己面general或者后台,经验和所学并不能争取到L4级别。但是面安卓的话,如果努力准备,感觉还是有机会。

刷题
我没有面过general,所以不好对比。但是面安卓,大多数算法题都是medium难度,所以,如果时间有限,把medium难度的吃透理解透比较重要,而不是崩溃的啃难题。算法面试时需要注意的其他帖子有很多有用的信息了,我的几点经验是:
1. 一开始多确认题意和需求
2. 没思路时,先给brute force,分析下时间复杂度,面试官会比较有好感,很多面试官还是有先入为主的观念,可能前10分钟认为你没经验不会编程,后面50分钟都在找例子验证自己的想法
3. 最后算法写出来了,主动要求run test case。有的要求比较低的startup可能不需要run。如果时间复杂度很有信心,就主动提。像backtrack比较难分析,还是等面试官问吧
4. 有种面试官是属于特别冷漠的,不会和你很多互动,甚至把你往沟里带的,比如碰到一个面试官问我这道题有没有更好的解法,还加一句,没有的话也不要紧。对于这种面试官,必须要很小心了,需要问很多问题确保你和他在same page

安卓知识
安卓知识一般电面时考,onsite时有的也会考。之前有帖子总结android.jlelse.eu很有帮助的。如果时间充分,还是建议平时多积累下安卓的各种知识,每次面完总结下哪些安卓知识需要补下,到最后面试时,你会发现一切都水到渠成。我推荐对于那些常考的知识点,最后看深一点,百度一下源码分析,因为安卓是开源的,你也不用深挖源码,网上有很多现成的源码分析,面试时提一下面试官会觉得你很有经验。比如
1. Activity继承context,但fragment不是,为什么application context和activity context不同
2. RecyclerView的所有都很重要,常考。RecyclerView和ListView什么区别,RecyclerView的pool和cache什么区别,RecyclerView的performance优化
3. 多线程的各种方法都很重要,常考。有哪些多线程方法,优缺点什么。看下源码会发现AsyncTask是SerialExecutor实现的,每个intentService只有一个handlerThrea,所以两个同时都只能执行一个任务。
本帖隐藏内容需要登录后才能查看。
如果觉得有帮助

求大米!求大米!
求大米!
  • 80
26条回复