励志22岁Android程序员小伙高中学历,现上海拿到25K offer,不迭代升级还等着被取代吗?

Android开发—12K(2017/10-2018/5)

2018年入职了一家医疗行业的小公司,做Android开发,比较偏传统。做了差不多半年左右的时间,因为公司拖欠工资、资金链断裂问题,选择了离职,但在这半年的时间里,技术提升了很多,同时也收获了一些技术上的朋友,从最开始的领导,慢慢到现在变成了朋友,一直到现在都保持技术上的交流,包括工作方面的,我们都属于特别热爱的技术的那种,聊技术能聊一晚上,说的可能有点夸张,但在Android这个领域里面算研究的比较深的了。

Android开发—17K(2018/6-2019/4)

然后接着之后做了一年左右的外包,法本外派到微软,就类似于人力外包,然后帮微软的客户做房地产相关的项目,当时去微软也是抱着一种学习的心态去的,因为当时对外包这个也不知道是一个什么样的情况,没有体验过,做了一段时间明白了网上对外包的一些不好的看法,项目不稳定,代替性强,只要项目已结束,PM觉得你的作用不是很大,随时都有可能把你裁掉。工作地点不稳定,像我当时做完一个项目,接着又去另外一个客户现场做,这样长期下来,跑来跑去,就感觉自己特别的累,但是也有好的地方,上班的时间比较自由,不太被控制,同时项目结束一批换一批,接触到的人也比较多,这样也能提高融入团队的能力、交流能力。在这一年的左右的微软外包时间里,也学到了很多组件化相关的技术、另外对Android更深的技术也有了一定的认知与了解。也为后面的工作,做了铺垫。

Android高级开发—23K(2019/4-2020/7)

2019年4月,刚满了二年工作经验的我,也收获了一些offer。最终选择了一家互联网公司,旅游行业,待遇也比较的可观,虽然没有大厂的offer,但当时对于我来说已经算比较不错的了,毕竟技术栈也是我比较感兴趣的。这一年的时间里,基本上每天都是晚上10点左右下班,但在这样的高强度工作下,感觉自己对NDK的理解、设计能力、与一些中间组件的使用和研究都提升了很多, 也接触了很多比较新的技术,Kotlin、Jetpack、Flutter、等。但由于当时的疫情,公司受到了很大的影响,正因为这次疫情,技术相关的部门裁了很多人,我也在其中,但赔偿还行,3个月,8月份开始找工作,到现在也收获了一些比较不错的offer。

关于面试


一个好的面试,往往需要做很多的准备,我6月份离职的这段时间,两个月里,基本上都是在家学习,但也会和朋友一起出来吃饭阿啥的。我面试之前会找人来模拟面试,然后根据模拟面试的一个情况,梳理下说话的节奏、项目介绍、技术点的回答的流畅性,然后简历修改完之后,最好找一个你认识的技术或者HR,帮你看下,这样简历投递后反馈率还是比较高的。

还有一点就是每次面试完,最好把面试中一些回答的不是很好的问题或者是没回答上的,记下来,然后针对的去学习,下次面试遇到了会提高面试的一个通过率,投递简历的话,如果是没有工作经验的,或者没有一个目标的,可以选择批量投,我刚出来找工作的时候,就是批量投,自己也没有一个明确的目标,只要能找到工作就行,如果是有工作经验了,哪就针对的去投,还有就是投的一些公司,最好做下调查,比如看下融资情况,做什么业务的等等…, 4个月的时间里,前面两个月是在家学习,后二个月是在找工作,前前后后面试了大概15家公司左右。

这里说下我面试被问到一些面试题吧,这也是我自己的一个总结。

1、Handler 相关知识,面试必问!

  • Handler Looper Message 关系是什么?

  • Messagequeue 的数据结构是什么?为什么要用这个数据结构?

  • 如何在子线程中创建 Handler?

  • Handler post 方法原理?

  • Android消息机制的原理及源码解析

  • Android Handler 消息机制

2、Activity 相关

  • 启动模式以及使用场景?

  • onNewIntent()与onConfigurationChanged()

  • onSaveInstanceState()与onRestoreInstanceState()

  • Activity 到底是如何启动的

  • 启动模式以及使用场景

  • onSaveInstanceState及onRestoreInstanceState使用

  • onConfigurationChanged使用以及问题解决

  • Activity 启动流程解析

3、Fragment

  • Fragment 生命周期和 Activity 对比

  • Fragment 之间如何进行通信

  • Fragment的startActivityForResult

  • Fragment重叠问题

  • Fragment 初探

  • Fragment 重叠, 如何通信

  • Fragment生命周期

4、Service 相关

  • 进程保活

  • Service的运行线程(生命周期方法全部在主线程)

  • Service启动方式以及如何停止

  • ServiceConnection里面的回调方法运行在哪个线程?

  • startService 和 bingService区别

  • 进程保活一般套路

5、Android布局优化

  • ViewStub、include、merge

  • 什么情况下使用 ViewStub、include、merge?

  • 他们的原理是什么?

  • ViewStub、include、merge概念解析

  • Android布局优化之ViewStub、include、merge使用与源码分析pi的。

6、BroadcastReceiver 相关

  • 注册方式,优先级

  • 广播类型,区别

  • 广播的使用场景,原理

  • Android广播动态静态注册

  • 常见使用以及流程解析

  • 广播源码解析

7、AsyncTask相关

  • AsyncTask是串行还是并行执行?

  • AsyncTask随着安卓版本的变迁

  • AsyncTask完全解析

  • 串行还是并行

8、Android 事件分发机制

  • onTouch和onTouchEvent区别,调用顺序

  • dispatchTouchEvent,onTouchEvent,onInterceptTouchEvent 方法顺序以及使用场景

  • 滑动冲突,如何解决

  • 事件分发机制

  • 事件分发解析

  • dispatchTouchEvent,onTouchEvent,onInterceptTouchEvent方法的使用场景解析

9、Android View 绘制流程

  • 简述 View 绘制流程

  • onMeasure,onlayout,ondraw方法中需要注意的点

  • 如何进行自定义 View

  • view 重绘机制

  • Android LayoutInflater原理分析

  • Android视图状态及重绘流程分析

  • Android视图状态及重绘流程分析

  • Android自定义View的实现方法

10、Android 的核心Binder多进程 AIDL

  • 常见的 IPC 机制以及使用场景

  • 为什么安卓要用 binder 进行跨进程传输

  • 多进程带来的问题

  • AIDL 使用浅析

  • binder 原理解析

  • binder 最底层解析

  • 多进程通信方式以及带来的问题

  • 多进程通信方式对比

11、Android ANR

  • 为什么会发生 ANR?

  • 如何定位 ANR?

  • 如何避免 ANR?

  • 什么是 ANR

  • 如何避免以及分析方法

  • Android 性能优化之 ANR 详解

12、Android 内存相关

  • 什么情况下会内存泄漏?

  • 如何防止内存泄漏?

  • 内存泄漏和溢出的区别

  • OOM 概念以及安卓内存管理机制

  • 内存泄漏的可能性

  • 防止内存泄漏的方法

13、Android 性能优化

  • 如何进行内存cpu耗电的定位以及优化

  • 性能优化经常使用的方法

  • 如何避免 UI 卡顿

  • 性能优化全解析,工具使用

14、OKHTTP和Retrofit

  • OKHTTP完整解析

  • Retrofit使用流程,机制详解

  • 从 HTTP 到 Retrofit

  • Retrofit是如何工作的

15、Android 组件化与插件化

  • 为什么要用组件化?

  • 组件之间如何通信?

  • 组件之间如何跳转?

  • Android彻底组件化方案实践

  • Android彻底组件化-代码和资源隔离

  • Android彻底组件化—UI跳转升级改造

  • Android彻底组件化—如何使用Arouter

  • 插件化框架历史

  • 深入理解Android插件化技术

  • Android 插件化和热修复知识梳理

关于学习


我的学习方法,看相关的视频教程,比如腾讯课堂、极客时间、慕课网这种平台都是比较不错的,里面有些视频是收费的,我觉得学习就是一个投资的过程,自己也花了不少的钱在这上面,然后就是体系化的去学习和实践,每学一个技术点,最好记录到笔记上,或者是记录在博客上,这样有利于加升印象,特别学的东西多了之后,不通过笔记记录,很难记住,主要还是找到适合自己的学习方法, 我自己特别适合看视频来吸收。

还有就是看相关的技术博客、比如博客园里面的博主,写的技术文章给我的影响还是蛮大的,看书也是不错的,然后就是给每周制定学习计划,这个计划时间,也不要控制的太死了,最好中间空一些时间出来,因为可能中间会插入一些其他的事情来,这样就会影响到后续的一个计划。

我觉得学习这个话题,对于程序员来说是很重要的,其他的领域也很重要,因为技术是一个不断迭代的过程,所以要保持一个学习的状态,以后对自己的一个职业发展是非常顺畅的,如果自己不迭代升级,长期这样的话,可能会被一些年轻努力的程序员取代,薪资也会跟着年龄下滑,所以趁着年轻而没有什么压力的情况下,把自己的技术功底学好,多投入一些钱花到学习上来,到一定时候,这些努力都会得到相对应的报酬。

如果是年轻的时候不努力,年龄大了而且有家庭了,这个时候可能会感觉自己很迷茫,不知道以后的路怎么去选择,因为我身边有这样的技术朋友,能感觉的到那种迷茫,一般到了一定年龄很难克制自己去学习了,因为来自家庭上、工作上的压力会让你分散这些精力和注意力,所以不要等到年龄大了再来学,那个时候已经晚了。

个人感悟


说下我的一个经历与状况吧,因为我本身没上过大学,也不知道大学的生活是一个什么样的状况,培训出来后是一个专科的学历,19年考了一个专升本,所以有那么一点点羡慕那些上过大学的同学吧,因为工作的原因,也认识了一些同事,他们的学历背景都比较的好,而且学习能力、与人相处都不错,以前我自己觉得学历没什么用,只是一块敲门砖,但现在看上去,有那么一点天真,特别是找工作的时候,找相当大一点公司,可能就会因为学历连面试机会都有没有,所以学历还是很重要的,像我目前的一个打算是2021年准备考一个硕士来弥补下学历,随便开阔下视野。

以前欠下的东西,只要选择继续走这一条路,迟早要还回来的,不然后面的路很难走,特别是到一定年龄和年薪的时候,再往上晋升领导或者是技术总监,这个时候学历可能会受到一定影响。趁着还是学生的时候,多读点书,考一个好一点的大学,尽量不要选择我这种半路出家的,不然后面的路会走的很累。

Android技能提升


程序员如何走上快速提升技术走上财富自由之路?

下面我提供一下我多年工作以来收集整理的学习路线,给大家做个参考:

学习一线大厂的各项技术:

大厂是我们的技术先驱,不仅仅是各种技术,还有很多令你大开眼界的使用方法,学习这些有利于自己竞争力的提高,深入理解后也可以提升你的学习效率。

现在竞争这么激烈,只有通过不断学习,提高自己,才能保持竞争力。

1.2020大厂面试高频知识点

  • 图片

  • 网络和安全机制

  • 数据库

  • 插件化、模块化、组件化、热修复、增量更新、Gradle

  • 架构设计和设计模式

  • 性能优化

  • Android Framework

  • Android优秀三方库源码

2.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 最全上手指南

3.Framework精编内核解析

主要内容包含:

自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数初中级Android工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则近万的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年Android移动开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。

img

img

img

img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Android开发知识点,真正体系化!

由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!

如果你觉得这些内容对你有帮助,可以扫码获取!!(备注:Android)

总结

其实客户端开发的知识点就那么多,面试问来问去还是那么点东西。所以面试没有其他的诀窍,只看你对这些知识点准备的充分程度。so,出去面试时先看看自己复习到了哪个阶段就好。

Android大厂面试真题全套解析

2017-2020字节跳动Android面试真题解析PDF
然而Android架构学习进阶是一条漫长而艰苦的道路,不能靠一时激情,更不是熬几天几夜就能学好的,必须养成平时努力学习的习惯。所以:贵在坚持!

《互联网大厂面试真题解析、进阶开发核心学习笔记、全套讲解视频、实战项目源码讲义》点击传送门即可获取!

对你有帮助,可以扫码获取!!(备注:Android)**

总结

其实客户端开发的知识点就那么多,面试问来问去还是那么点东西。所以面试没有其他的诀窍,只看你对这些知识点准备的充分程度。so,出去面试时先看看自己复习到了哪个阶段就好。

[外链图片转存中…(img-B1a9c1Tf-1713526573145)]

[外链图片转存中…(img-n7BRZIJG-1713526573145)]
然而Android架构学习进阶是一条漫长而艰苦的道路,不能靠一时激情,更不是熬几天几夜就能学好的,必须养成平时努力学习的习惯。所以:贵在坚持!

《互联网大厂面试真题解析、进阶开发核心学习笔记、全套讲解视频、实战项目源码讲义》点击传送门即可获取!

  • 16
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值