从门外汉到腾讯Android高级研发——一个半路出家菜鸟的艰难逆袭之路

最后

分享一份工作1到5年以上的Android程序员架构进阶学习路线体系,希望能对那些还在从事Android开发却还不知道如何去提升自己的,还处于迷茫的朋友!

  • 阿里P7级Android架构师技术脑图;查漏补缺,体系化深入学习提升

  • **全套体系化高级架构视频;**七大主流技术模块,视频+源码+笔记

有任何问题,欢迎广大网友一起来交流

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化学习资料的朋友,可以戳这里获取

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

当时,我花了大概2个月时间,快速成长,当然这得益于我的勤学好问,碰到你无法理解的问题,一定要先尝试思考,然后再去求教他人。

当时如果项目非常着急的情况下,请立即把问题抛出来,求助他人,因为你是在为公司的项目负责,而不是个人的自我学习。

每天来回的一个小时里面,足够我看完一些技术文档。

当我想尝试其他语言基础知识,或者做点好玩的东西,这段时间对我来说非常重要。

因为我在回家后,就知道我应该做什么,怎么做。

会不会很枯燥无味?老实说,肯定会!曾经有一段时间,我在公交车上每天看的是“今日头条”,今日头条确实非常棒,他本身的算法太可怕,一直推送你喜欢的内容,以至于后来很长一段时间,我都没敢打开力扣学习。

好在我这人幡然醒悟的比较快,因为我很清晰的知道,我要的是什么,那就是让自己变强,因为你变强后,你才有资格得到你想要的。

有些人只会抱怨,怨天怨地,我想说的是,在那个过程,你已经浪费了很多时间,比如看完一篇python的爬虫文档。

一直保持海绵体的吸收知识,不仅让我自己看到自己的进步,也让我快速在职场里面脱颖而出。

我在第一家公司呆了大概2年后,我跳槽了。

那个时候的我,非常自信,我有有足够的资本自信,因为这两年,我一直在进步,kotlin、第三方开源框架、framework、高级UI、数据结构、NDK、flutter等等,还有其他编程语言我也有所涉略。

这边给各位小伙伴一个建议:

一定是中高级的Android开发,才有市场,一定要自己动手做点小项目,再去找工作。

另外,Android的职业规划之路有很多,全在于你是否愿意继续学习,因为后面可拓展的技术太多了,比如上面提到的flutter。

##(四)入职腾讯

我在跳槽后,进入一家很知名的网络公司,那个时候,我的水平,离进入腾讯的技术员,还有一定的差距。

主要的差距在于,基础理论知识!

越是大公司,越重视程序员的基础知识,这也是非科班出生程序员的致命痛点。

那么是否有办法补救,当然有,那就是:看书、刷题库。

看书和刷题库是最有效弥补基础知识的方式,我自己整理了一套面试题,里面有历年各大知名网络公司的面试题,百度、腾讯、阿里巴巴、美团、滴滴等等都有,其实这些公司的面试题,都是非常基础的知识。看到这些题,你就知道我花了多少精力了。

再跳槽到第二家公司,我是我们公司Android开发的小领导,在繁忙的工作中,每天我必定抽出时间继续学习。

有很多程序员容易满足,不会主动去学习,直到他们需要用到的时候,才开始翻书学习,这种态度不是说不行,只是在我看来,有点懈怠了。

程序员是一个需要不断学习的岗位,同时程序员也是一个高薪的岗位,所以这样容易滋生懈怠,其实这样未尝不可,只是如果你想站在更高的平台,那么不要停止学习,哪怕每天只是学一点点。

后面的事情,顺理成章,19年,我开始规划自己入职腾讯的计划。

除了刷腾讯公司每年的面试题之外,我还认真的了解腾讯技术部门的架构,以便清晰的知道,如果自己要进去,自己应该负责哪些事项,同时,这些事项需要拥有哪些技术的程序员。

在一切做好准备后,我去面试的那天,游刃有余,我丝毫不觉得我在面试一家多么厉害的公司。


下面分享我的面经:

一面(1h):

  1. 谈谈你学习过的架构模式 MVC MVP MVVM

  2. 一个Union类型,共有一个int类型、Float、Double类型的字段,请问在32位的CPU创建时需要占用多少字节?

  3. Union和Struct的区别

  4. 谈谈你所了解的C语言的内存管理

  5. 说说你了解的程序设计模式,知道多少说多少

  6. 说说TCP和UDP的区别,你认为QQ的实现是使用TCP还是UDP?

  7. 谈谈你了解的C语言的编译过程

8 . 进程和线程的区别

  1. 谈谈你对Viper架构模式的了解

  2. Fiddler的工作原理解释一下

  3. 死锁产生的原因以及解决办法

  4. 进程的调度算法有哪些,分别解释一下?

  5. Android程序共享数据的方式有哪些?

  6. Android的性能优化

  7. Handler和HandlerThread的区别

  8. 八皇后问题了解过吗?具体怎么实现的?

  9. 解释一下异步编程,说说它的应用

  10. Android应用的启动过程

二面(40Min):

1.  多线程了解吗?

  1. 多线程如何实现通信?

  2. 多线程如何实现线程安全?

  3. 多线程如何实现同步机制?

  4. 进程间的通信方式?

  5. 谈谈你对架构模式和设计模式的理解。

  6. 现在让你设计一个字典,说一下你的设计思路。

三面(3.5h):

  1. 请你画出MVP架构图,并解释一遍它的运作流程。比如网络操作

  2. 解释一下页面展示数据获取的数据来源。

  3. 多线程会导致什么问题,应该怎么解决?

  4. Android进程的优先级是怎样的?

  5. 说一下Activity的生命周期

  6. onStar和onResume方法的区别是什么?什么时候用onStart,什么时候用onResume.

  7. 说一下冒泡排序的区别?

  8. 冒泡排序最优的时间复杂度?

  9. 一棵没有特定顺序的二叉树,如何存放在文件中?

  10. 手写代码,给一个int的数组,将其移动k位(使用交换的思想)。如array = [1,2,3,4,5], k = 2, 则移动后的array为[4,5,1,2,3]

  11. 设计QQ传文件功能,并画出模块设计图。

  12. 说一下防火墙穿越的实现原理

  13. 加密算法和加密原理

  14. Https实现原理

  15. 手写代码,无限大整数转16进制

  16. 讲解一下登陆时密码加密过程

  17. 推理题

宴会上,人们都带着白色或者黑色帽子,其中至少有一个人带黑色帽子,每个人都能看到别人帽子的颜色,看不到自己帽子的颜色。假设每个人都足够聪明,如果在熄灯的时候你觉得你自己带了黑色帽子,就鼓掌。第一次没人鼓掌,第二次没人鼓掌,第三次有人鼓掌。请问有多少个人带了黑色帽子。

Hr面(20Min)

1.自我介绍

  1. 你认为你身上最显著的三大特征是什么?

  2. 产品、薪资、个人发展、平台、地域等等  选择你认为最重要的三个?并解释为什么?

4.你除了腾讯还有面试别的公司吗?为什么选择腾讯?

5.家住哪,倾向在哪个城市工作?

6.介绍一下你的社团活动经历,说说印象最深刻的一次。

7.说说你的实习经历

8.你对待加班的看法。

结语

看到这篇文章的人不知道有多少是和我一样的Android程序员。

35岁,这是我们这个行业普遍的失业高发阶段,这种情况下如果还不提升自己的技能,进阶发展,我想,很可能就是本行业的职业生涯的终点了。

我们要有危机意识,切莫等到一切都成定局时才开始追悔莫及。只要有规划的,有系统地学习,进阶提升自己并不难,给自己多充一点电,你才能走的更远。

千里之行始于足下。这是上小学时,那种一元钱一个的日记本上每一页下面都印刷有的一句话,当时只觉得这句话很短,后来渐渐长大才慢慢明白这句话的真正的含义。

有了学习的想法就赶快行动起来吧,不要被其他的事情牵绊住了前行的脚步。不要等到裁员时才开始担忧,不要等到面试前一晚才开始紧张,不要等到35岁甚至更晚才开始想起来要学习要进阶。

给大家一份系统的Android学习进阶资料,希望这份资料可以给大家提供帮助。

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化学习资料的朋友,可以戳这里获取

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

他的事情牵绊住了前行的脚步。不要等到裁员时才开始担忧,不要等到面试前一晚才开始紧张,不要等到35岁甚至更晚才开始想起来要学习要进阶。

给大家一份系统的Android学习进阶资料,希望这份资料可以给大家提供帮助。
[外链图片转存中…(img-VsLO5DL5-1715312797952)]

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化学习资料的朋友,可以戳这里获取

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值