写点什么

我曾经用了 3 天面试 7 家公司,拿到了 4 个 offer!记录一段搞 Android 开发黄金五年

用户头像
Android架构
关注
发布于: 5 小时前
  1. 提前准备,技术 QQ 群,通过关键字就能查到很多,找同行提前了解。这让我更快的找到了第一份工作;

  2. 初入职场想要成长的更快的方式就是积极主动的做更多的事情,这个阶段缺的就是实践经验。这让我学习到更多技术的实践经验;

  3. 还有就是当时负责人对我的指导方式,让我有了独立开发的能力。这让我拥有了自己解决问题的能力。



成为小组负责人


<2014-2015>


因为我一直在小型公司,挺喜欢研究技术,但是通常来说你在小组中技术不错,态度积极主动就会被提拔成小组长。


刚被提拔上来的时候,还是保持着之前的风格,做事情快而且喜欢多做,做完了就帮别人做。但是这个时候就出现问题了。


我把别人不会的事情都做完了,小组成员没有成长,然后还养成了小组成员依赖的情况,不会做就让我来做。随着团队人员的不断增加(从最初 3 个人到 5 个人),自己变得非常忙。


后来通过自己的反思和调整,把业务开发的功能都分配出去了,自己写了一些底层基础模块,如:网络请求,公共工具包,等。要是遇到不会的就给予思路,观察过程,要求给予反馈,保证不会影响到项目进度。


这样小组成员每个人都能独当一面了,然后基础库也比较稳定了,自己也越来越轻松了,自己的时间也越来越多了。


于是开始想着帮助其他小组,因为当时 iOS 小组人员比较不稳定,开发人员较少,进度也相对滞后。于是我就自费购买了一台 macbook(花了 1w 多,还了几个月)学习了下 OC,然后就去帮 iOS 小组开发。


最后上级看我 Android 小组负责的不错,然后还会 iOS 开发就让我做了移动端负责人。我清晰的记得,那天是 2015 年 4 月 1 号愚人节。


我认为,在这个阶段有两点对我成长帮助很大。


  1. 角色转化,从原来的技术开发到小组负责人,工作内容和思维方式要及时变化。这让我学会了,要培养小组成员能力,一个人的时间和精力都是有限的。这个时候应该是做更重要的事情,而不是做更多的事情;

  2. 稳定 Android 团队后,自费购买设备学习 iOS,帮助公司解决 iOS 进度慢的问题,因为当时看到了团队的问题,每次都是 Android 端先上线,然后 iOS 进度晚半个月,所以想帮助公司把这个问题解决。这让我学会了,解决上级的问题,上级自然后给予你更多。



成为技术负责人


<2015-2018>


由于上家公司经营不善,打算从上海搬家到成都去,我不想去成都,所以我选择了跳槽。出去面了很多家,拿到了还不错的 offer,于是我提出了离职。


当时我所在公司的 CTO 首先挽留我聊了很多,知道留不住之后,他推荐我去了一家他认为还不错的创业公司。那个时候公司一共就 30 多人,一个开发也没有,大部分都是销售,业务是做高端婚礼会馆,老板想做自己的系统,觉得系统能赋能业务。我的想法就是试一试,大不了重新找工作,于是拿着身份证就办理了入职手续。


当时办公场地在南京步行街和公司租的婚礼场地在一个地方,于是老板随便找了一个小办公室,搞了网线,我自带了电脑。这就是我的办公场所了。


初期最难的是招人,最开始就是叫朋友过来看看聊一聊,前几个人都是朋友叫朋友的,开发圈子里面都有些熟人。花了一个多月团队也初步成型,移动端,后端,设计都有 1-2 人了(早期只做 App 所以没有招聘前端人员)。


由于没有产品经理就自己每天和老板沟通需求,自己找了个原型图绘制软件把想法画出来,然后不断的和老板探讨。开始开发,由于团队刚开始磨合花了不少时间,所以开发时间也评估少了,只能加班搞。花 1 个月的时间,做出了系统的第一个版本。上线后天天加班改功能,因为需求只和老板讨论过,而没有和实际使用的业务讨论过,很多功能与业务场景不符合,想法过于美好,考虑不完善。在没有招到产品之前,我承担了产品的角色,前往业务一线天天和业务人员一起讨论,最后也做出了业务人员满意的产品功能。


过了两年后,公司从原来的 30 多人到了 300 多人。开发团队也跟着不断扩大,从原来的几个人变成了三十多人,管理难度也大幅度提升了。从原来的几个人都坐在一张桌子上,一起吃饭聊天到现在坐满了一个办公室。这个时候制度就很重要了,所以开始制定了一些制度,还有一些奖惩机制,以及找老板要了每个月都活动经费。这个时候我开始看很多管理方面的书籍、还上了很多管理到课程(线上、线下都有)、以及还请身边带团队的朋友吃饭,请教一些带团队的问题。


老板也给了我了足够大的自由空间,让我搭建了整个研发团队的制度、流程、福利。打破了我固有的技术思维,让我学习了商业思维,带我去上线下管理课。


我认为,在这个阶段有两点对我成长帮助很大。


  1. 自己当产品的经历。一定要去了解业务一线,老板看到是方向。业务一线才能提出真实需求。要学会提取符合业务产品的需求然后往老板的方向去做,这样才是对的。否则做出来业务人员不用,就是白做了。

  2. 思考问题的思维的转化。我的思考维度从“如何做,能不能做?”到“为什么做,带来什么样的价值?”让我从技术人员的思维转换成了管理者思维,带我思考产品的商业价值。



总结


这 5 年,我经历了三次的角色转变,Android 开发到 Android 负责人,再到技术负责人,每一次转变都经历了痛苦,经过自己的反思与适应,不断跳出自己的舒适区。


总结一下 6 点,希望对大家有帮助:


  1. 做任何事情都可以提前准备,模拟会让你更加快进入状态。

  2. 做事情不要想着划不划算,做更多的事情,成长是自己的。

  3. 做负责人应该思考如何提高将团队战斗力,而不是自己的。

  4. 站在公司角度去解决问题,就是为自己获得更多发展机会。

  5. 想要系统赋能于业务,需求必须和业务人员反复讨论才行。

  6. 所有事情都需要先思考,为什么做,能带来什么样的价值。


不断学习交流




以下分享一下我近八年抗战 Android 的具体学习路线及笔记文档,希望能让程序员放下自我,不断学习交流,帮助到有心提升技术的朋友!


以下完整学习笔记 PDF,点击这里免费下载获取!


而作为一名 Android 程序员,如何破局!构建属于自己的一套架构知识体系就显得尤为重要了!


一线互联网大厂 Android 架构进阶学习路线




  • 架构师筑基语言基础


目前 Android APP 开发主流语言就是 Java 语言,Java 语言最大的特性就是提高了软件的交互可能性,可以说安卓手机几乎所有应用程序都是利用 Java 语言来进行编写的。


知识要点:


1、深入理解 Java 泛型


2、注解深入浅出


3、并发编程


4、数据传输与序列化


5、Java 虚拟机原理


6、高效 IO



  • 设计思想解读开源框架


随着互联网企业的不断发展,产品项目中的模块越来越多,用户体验要求也越来越高,想实现小步快跑、快速迭代的目的越来越难,插件化技术应用而生。如果没有插件化技术,美团、淘宝这些集成了大量“app”的应用,可能会有几个 g 那么大。


所以,当今的 Android 移动开发,不会热修复、插件化、组件化,80%以上的面试都过不了。


知识要点:


1、热修复设计


2、插件化框架设计


3、组件化框架设计


4、图片加载框架


5、网络访问框架设计


6、RXJava 响应式编程框架设计



  • 360°全方位性能调优


在不同层次的开发工程师手里,因为技术水平的参差不齐,即使很多手机在跑分软件性能非常高,打开应用依然存在卡顿现象。


另外,随着产品内容迭代,功能越来越复杂,UI 页面也越来越丰富,也成为流畅运行的一种阻碍。综上所述,对 APP 进行性能优化已成为开发者该有的一种综合素质,也是开发者能够完成高质量应用程序作品的保证。


知识要点:


1、设计思想与代码质量优化


2、程序性能优化


启动速度与执行效率优化


布局检测与优化


内存优化


耗电优化


网络传输与数据储存优化


APK 大小优化



3、开发效率优化


分布式版本控制系统 Git


自动化构建系统 Gradle



4、项目实战


启动速度


流畅度


抖音在 APK 包大小资源优化的实践


优酷响应式布局技术全解析


网络优化


手机淘宝双十一性能优化项目揭秘


高德 APP 全链路源码依赖分析


彻底干掉 OOM 的实战经验分享


微信 Android 终端内存优化实践



  • Android 框架体系架构


Android 框架体系架构(高级 UI+FrameWork 源码) 这块知识是现今使用者最多的,我们称之 Android2013~2016 年的技术。


Android 开发者也往往因为网上 Copy 代码习惯了而导致对这块经常“使


《Android学习笔记总结+最新移动架构视频+大厂安卓面试真题+项目实战源码讲义》
浏览器打开:qq.cn.hn/FTe 免费领取
复制代码


用”的代码熟悉而又陌生:熟悉的是几乎天天在和它们打交道, 天天在复制这些代码 ;陌生的是虽然天天和这些代码打交道,但是并没有深入研究过这些代码的原理,代码深处的内涵。


知识要点:

用户头像

Android架构

关注

还未添加个人签名 2021.10.31 加入

还未添加个人简介

评论

发布
暂无评论
我曾经用了 3 天面试 7 家公司,拿到了4个offer!记录一段搞Android开发黄金五年