前言
2020年毕业于一所普通的二本学院,向大厂扔过几次简历,就跟打水漂一样,最终沉底,从上海离职到杭州,对于一个应届生来说是一次艰难的选择,更稳妥的方式应该是在实习结束后,留在原公司再呆一年。话虽是这么说,但还是得视情况而定,我总是告诫自己,当周围学不到任何东西的时候,我们就该考虑离开这样的舒适区。
来杭州了一个礼拜,收到了4个offer,其中让我印象深刻的,就是技术主管对于应届生这个身份,在他们眼里,应届生是一群很高傲的人群,眼高手低,不愿意接受新技术,我觉得他们可能是对于这个身份太过于偏见,至少,我不是他所说的这种人,最后在技术面试结束后,也证实了我不是这种人,至少得到的回复是,确实是一个很特别的应届生。
我来说说着四个公司的情况,两个公司是A轮融资,一个是B轮融资,还有一个是从上市公司分离出来的一个创业公司,正准备pre-A,对于公司选择方面,我更倾向于价值回报的最大化,薪资是最后考虑的一个东西。
第一个A轮融资公司
接到这家公司先是来了个电面了解了一下双方,避免浪费双方的时间。
- 自我介绍
- 说说你做的这个组件化框架
- 什么是渐进式组件化
- Retrofit的实现原理
- GC机制和回收算法
- Glide实现原理
- 线程池的理解
- MVC、MVP、MVVM各自的特点
还有一些问题是关于项目的问题,大致面试过程面试官是被我牵着走,引导他往我自己知道的知识点上面进行阐述。
电面面试官面完对我很吃惊,问我“你确定你是应届生?面完感觉比我还要高一层次”
第二天现场面,现场面问的不多
- 做过哪些性能上的分析,说说自己是如何解决的
- 动态规划的问题
- 走台阶问题,其实就是斐波那契
其中还有很多琐碎的问题,我大致看了下他们的办公环境,偏随意,比较乱,接下来就是谈薪资,谈薪资是一个博弈的环节,当你的能力和技术表现的很强硬的时候,完全可以试着往高的要,因为,人事也会给你一个他们的心理价位,要的太低的话,也是在贬低自己的能力。
待遇:
- 薪资11k
- 五险一金按杭州最低基数缴纳,公积金入账一个月大致是400多
- 公司合理避税,到手基本有10k多
- 期权兑现,每个月都可以套
- 双休,没有加班
- 刚A轮融资,就是有钱
结果:
最后拒绝掉了这家公司,距离比较远,还有一个是不太符合自己的发展方向,面试结束后,人事还开车载我到地铁站,还是比较感谢的,7月的杭州是真的热,离地铁还有2.8公里左右,想想都怕。
第二个A轮融资的公司
这家公司是做p2p的,大家都知道现阶段p2p很多公司都爆雷了,但为啥我会去面试呢?主要还是好奇心的驱使,在去之前,我在网贷之家查了一下这家公司,前100名,资金池浙商银行托管,主要借贷于金融与汽车行业,老总是银行出身,大致看起来还比较靠谱,如果不靠谱的话,小公司早就被爆了,然后我就去面试了
- Retrofit的实现原理
- 说说MVC、MVP、MVVM的理解
- 并发下,对于一个值做减法操作
- 生产者和消费者问题
- 你知道偏向锁吗
然后乱七八糟的问了一些问题,因为是有个android要离职,急需招一位来弥补空缺,问的问题主要偏java的一些解决方案,问我在android工作闲暇的时候是否乐意参与后端的开发,他们后端有四个java开发,对于p2p移动端,业务非常简单,几乎可以说工作完全不饱和,我也很乐意接触后端,也算是自己想发展的方向。
其中有一段很搞笑的插曲,在技术主管面我的时候,说“你是应届生?我们这本来不招应届生的,应届生给不了这么高工资,你github是多少,我来看看”,面试结束后,技术主管被我说的服服帖帖,自己态度也比较强硬,就要的10k,以能力定夺,hr也想来压工资,最终被我三寸不烂之舌维持在了自己想要的薪资范围内
待遇:
- 10k
- 五险一金最低基数缴纳
- 不避税
- 中午有厨师做饭
- 双休,加班少
结果:
目前为止,我先做了个待定,因为离租房的地方近,技术主管也愿意给我时间去研究后端,中午还能省一个盒饭的钱。
B轮的公司
这家公司应该是我面的里面最喜欢的一家,只有这家,给我感觉到技术上面的深度,该公司主要偏Framwork层,业务方面比较少,先是来了一个电面了解了一下
- Activity生命周期
- Handler机制原理
- aidl和binder的理解
- ArrayList和LinkedList的优缺点
- HashMap、HashTable、CurrentHashMap
- okhttp原理
- 线程池的理解
- 谈谈你做的组件化
大致记住了这些面试题,后序就是通知我去公司面
到公司是下午2点,天是真的热,下地铁离公司还有2.3公里,来到公司,技术主管很贴心,给了一瓶苏打水,让我先放松放松,差不多休息了有一刻钟,然后Android和技术主管一块来面
- 说说你对项目的优化
- 屏幕适配
- MVP解耦
- 四大引用
- ActivityThread的作用
- 说说你在学校做的这个手机控制电脑的思路
- socket实现点对点聊天
- 如何利用socket实现群聊,并发问题,消息一致性问题
- 线程池问题
- 如何实现后台服务的保活
问题大多围绕着解决方案来开展,这家公司主要做社交电商,自己需要设计一套IM,而且是超流氓的那种,哈哈,不过,很体现技术,需要应聘者有深度的理解,大致给的发展方向是,希望我往深度的方向进行研究,结束后,得到了一致的肯定。接下来就是CEO和我聊了一下,问了下上个公司做的项目,然后自己的职业规划,大致就是了解一下价值观方面的东西,接下来就是人事过来面了,这家确实比较正规,技术团队有阿里、支付宝、百度的人,很适合学习,人事的自我介绍也比较牛,和我讲了很多现实的问题,公司有很多资源,能帮助你进大公司发展,浙大派系的一家公司。
待遇
- 8k、15薪,完全没有商量的余地,打算给应届生6k
- 不避税
- 五险一金正常缴纳
- 双休
结果:
最终还是拒绝了,因为太远了,薪资有点低,不过很喜欢他们对技术深度方面的追求,技术主管也特别的惜才,在我和hr表明拒绝的时候,主管还主动加我微信,希望能做个朋友,多多交流,也给了我很多的意见,主管还和我说“新的一轮融资进来了,公司打算换个地方,你确定不来?”,真的非常感激。面试那天下了场大雨,hr还贴心的给了我一把伞,怕我回去淋雨,真的万分感谢。
创业公司
这家公司是好友内推的,技术靠谱,所以就先电面了解了一下
- 谈谈你做的这个组件化
- 线程池的理解
- JMM模型
- volatile关键字
- 自定义view和事件分发机制
- gc机制
- 内存泄漏
- 热修复
- react-native和flutter的区别
- 然后就是彼此了解,谈谈自己
聊了有1个小时左右,感觉很投缘,就问我什么时候来公司见个面聊聊
到了公司,技术团队还没成型,经过了解,leader希望能找到靠谱的成员,宁缺毋滥,然后聊了下公司的项目,未来的发展,然后聊了下模块划分,和我探讨了组件化方面的优缺点,多个应用的情况下共用一套模块,然后也给了我很多意见,他深知我有一颗想去大公司的想法,也给我讲了很多好处和坏处,从10点聊到13点多,大致3个多小时,还是很受用的,技术方面,他也和我说,希望我往广度的进行发展,深度发展容易技术狭隘,他还和我描述了技术学习就跟“丁”字一样,先横向发展,然后再深度发展,很多技术都是想通的,有可能新学到的技术会给你这门技术带来新的灵感,我也很赞同,之前看过一个h5写的打方块小游戏,没试过用android去实现一下,后来一早醒来,突然有了灵感,刷刷的用kotlin写完,完美的实现,特别的有成就感。
薪资
- 9k
- 五险一金正常缴纳,不避税
- 季度考核奖金
- 双休
- 早上10点上班,19点下班
结果:
hr说给我发offer,还需要领导签字,过程很慢,目前还在等待中,leader希望我能试着弄后端,不过,我也要求他让我试试后端,年轻就应该多学点技术,在团队沟通中,能更好的选择技术方向,并解决问题。
关于我的学习方式
身为一名普通二本渣渣,学历上肯定是占不到优势的,只能拼命的刷题提升自己的技术,毕竟我也是有一个大厂的梦啊,自认为自己的技术其实还行,但是可能距离大厂还是有点距离吧,所有还得努力呀!
下面我会把自己总结的资料分享给大家,需要的可以下方获取
《高级UI》
UI这块知识是现今使用者最多的。当年火爆一时的Android入门培训,学会这小块知识就能随便找到不错的工作了。
不过很显然现在远远不够了,拒绝无休止的CV,亲自去项目实战,读源码,研究原理吧!
《Framework精编内核解析》
-
深入解析Binder
-
深入解析Handler
-
Dalvik VM 进程系统
-
深入解析 WMS
-
PackagerManagerService
《360°全方面性能调优》
1、设计思想与代码质量优化
2、程序性能优化
- 启动速度与执行效率优化
- 布局检测与优化
- 内存优化
- 耗电优化
- 网络传输与数据储存优化
- APK大小优化
- 3、开发效率优化
- 分布式版本控制系统Git
- 自动化构建系统Gradle
4、项目实战
- 启动速度
- 流畅度
- 抖音在APK包大小资源优化的实践
- 优酷响应式布局技术全解析
- 网络优化
- 手机淘宝双十一性能优化项目揭秘
- 高德APP全链路源码依赖分析
- 彻底干掉OOM的实战经验分享
- 微信Android终端内存优化实践
《Android第三方框架》
本篇内容要点(1042页)
-
热修复设计
-
插件化
-
组件化框架设计
-
图片加载框架
-
网络请求框架
-
RXJava 响应式编程框架设计
-
IOC 架构设计
-
Android架构组件Jetpack
《Jetpack架构组件从入门到精通》
- Android Jetpack - Navigation
- Android Jetpack - Data Binding
- Android Jetpack - ViewModel & LiveData
- Android Jetpack - Room
- Android Jetpack - Paging
- Android Jetpack - WorkManger
- Android Jetpack架构组件之Lifecycle
- Android Jetpack Compose 最全上手指南
《高级JetPack强化实战》
- 初识ConstraintLayout之实现登录页面
- Navigation实践之实现APP主框架以及Navigation的相关介绍
- 使用 Coroutines, Retrofit, Moshi实现网络数据请求
- 使用 TabLayout,ViewPager2 ,RecyclerView实现实现歌单广场页面
- 歌单页面MVVM架构改造及其ViewModel和LiveData的使用介绍
- Paging实现加载更多和下拉刷新,错误后重新请求
- vlayout嵌套横向RecyclerView和Banner 实现主页的展示,自定义Moshi的JsonAdapter
- Room数据库实现增删改查和事务处理
- Room数据库Migration
- ExoPlayer进行视频播放的实现
《Flutter技术进阶》
- 为什么Flutter是跨平台开发的终极之选
- 在Windows上搭建Flutter开发环境
- 编写您的第一个 Flutter App
- Flutter开发环境搭建和调试
- Dart语法篇之基础语法(一)
- Dart语法篇之集合的使用与源码解析(二)
- Dart语法篇之集合操作符函数与源码分析(三)
- Dart语法篇之函数的使用(四)
- Dart语法篇之面向对象基础(五)
- Dart语法篇之面向对象继承和Mixins(六)
- Dart语法篇之类型系统与泛型(七)
- Flutter中的widget、
《NDK模块开发》
主要内容包含:
-
NDK 模块开发
-
JNI 模块
-
Native 开发工具
-
Linux 编程
-
底层图片处理
-
音视频开发
-
机器学习
《深入理解Android插件化技术(附Demo)》
第一章 插件化技术的前世今生 第二章 插件化原理 第三章 Android插件化初探 第四章 架构演化(大厂篇)
- 360插件开发之DroidPlugin
- 滴滴VirtualApk实战
- 基于VirtualAPK Android重构之插件化
- 爱奇艺插件化原理分析之 Neptune框架
- 腾讯插件化框架 Shadow项目解析
《高级Android组件化强化实战(附源码)》
第一章 Android组件化初识 第二章 Android组件化初探目录 第三章 架构演化(大厂篇)
- 从智行 Android 项目看组件化架构实践
- 得到 App
- 微信 App
- 蘑菇街 App
- 爱奇艺 App
- 美团 App
- 携程App
- 支付宝 App
由于篇幅问题,详解资料太全面,细节内容太多。需要同学的下方领取。