往往我们为了尽快拿到一个结果,缩短了过程,却也拥抱了失败。
-
看几本书,就想要思维变得深刻。结果没有。失败。
-
跑几次步,就希望体重有所下降。结果没有。失败。
-
上几节课,就想掌握多一门技能。结果没有。失败。
在“结果”的驱使下,我们总是希望更快的做完一件事,更快达到某一个程度。
于是,我们陷入一种“紧赶紧赶”的状态,根本耐不下心来去做长期投入。所以,我们总是轻而易举地失败。
初级Android程序员,如何规避“内卷”?
当一个领域无法实现快速增长,总量一定的情况下,只能靠内部更激烈的竞争来争夺资源和机会,也就是过渡的内耗导致少数人获得更多的利益分配。
程序员之间的内卷
从行业总体环境来看,目前国内大概有400-700万程序员。其中80%是初中级岗位,大概100万是高级和资深研发岗位,还有小几十万是架构师/技术专家岗位,技术总监以上估计不到10万。随着数字化信息化的发展,技术本身的不断革新,目前市场上,高级开发以上的职位其实一直都是很紧缺的,目前面临的最大问题是,大厂招聘不到合适的中坚力量,初中级岗位人满为患。
每年还有几十万以上程序员涌入这个行业。这里面初中级岗位占了绝大部分,这些岗位不需要多高深的技能,也不需要付特别高的薪水,所以,这些职位和从事这些职位的人,没有核心竞争力,没有不可代替性,而是我们常说的,工作经验一年,然后重复十年。
从小团队和个人发展来看,如果一个团队本身没有特别大的发展机遇,团队里的程序员不能五年一个台阶上升,长期停留在初中级的开发岗位,不可避免的会跟后涌入的新人产生竞争。如果所做的工作又没有核心竞争力,那么在竞争在会逐渐处于劣势,进而导致内卷严重。
这种内卷,看起来是程序员/公司/行业的问题,其实都不是,核心因素就是各行各业、每个人可能都有的“中年危机”。 年纪大了一些以后,你的身体不如以前能加班,你家里老婆孩子老人都要照顾,你对钱更重视并且你的工资成本比新来的小伙子高。。。此时,如果你没有不可代替性,有比小青年后浪更大的价值,只能做最基础的工作,那么你肯定面临职业上的中年危机。
为什么程序员行业,内卷,青春饭,总会被提及:因为程序员行业技术更新发展快,知识陈旧的快,换一波技术,自然会换一大批人,,,平均工资水平比一般行业高1-2倍,一线城市程序员行业起手就是1万多,其他行业的资深经理可能才能拿1万多,互联网等行业业务发展变化也快,自然就要求程序员有更多的跟进业务和技术发展,持续创造价值。危机意味着,跟不上技术发展,业务发展,价值创造力降低。。。996加班,只是一种优胜劣汰的形式,跟大厂面试造火箭一样,同样的新老员工工资倒挂也是一个形式。
如果一直呆在舒适区,但是能力没有提升,不管技术的,还是管理的。随着年头增长,工资涨上去了,结婚生娃了,有老人小孩要管,加班自然不如十年前那么拼命了。
这些都导致了,这个层级的大龄程序员的职场竞争力不如每年加入到程序员大军的小年轻。而大龄程序员们所有对现状的妥协,安逸地待在舒适区,都是温水煮自己这个青蛙:从最开始你觉得你比周围的同层次的小伙伴更有经验和能力去应对日常工作,到慢慢的你发现你周围的年轻人越来越大,你需要跟比你小,比你更有精力,比你学习能力更快,比你更不需要考虑家庭压力的这些小朋友们竞争,,,这时候你的加班能力,你的适应能力,你的薪资水平,都成为了你的负担,导致你再职场上不再受欢迎。。。
如何摆脱内卷
出路只有一个,就是尽快的随着年纪的增长,不断上升到上一个层次,那个层次上竞争的人更少,被替代的可能性也更小。
-
**P3/4:**刚毕业的程序员,需要跟200万的同行竞争,虽然岗位多,但是竞争大,甚至过饱和了,薪水低。
-
**P5/6:**工作了3-5年,成为高级程序员,只需要跟50-80万同行竞争了,竞争压力小了,议价能力强了,薪水就上来了。这个层级,一般人都能随着年前增长而达到,最常见的一个瓶颈期,对部分人也是舒适区。也就是说,在这个层级上,可能是这辈子工作最舒服的时候,也是最为容易松懈的时候。俗话说,人无远虑必有近忧,不做长期打算,得过且过,就会陷入大龄危机问题。
-
**P6+/7:**如果能努力一把,跳出高级程序员的瓶颈,成为核心开发或者技术专家/架构师,只需要跟8-10万人竞争了,这时你的对手少了很多,这个层级现在市面上还是紧缺资源,能力够了,基本上都是各家公司给你发offer,想让你加入,高薪水(几十到100万)就是必然了。这个层级,是需要非常努力才能达到,很多人来说也是舒适区了,但是稍微好一些,努力一把可以拼更高层级,退而求其次,可以去小公司做中层。
往上,除了不但努力,还需要好的机会,但是不努力,有机会来了也抓不住。总之,打破魔咒的办法,只有不断学习,提升能力,到下一个层级。
看完了上面这些鸡汤和干货,下面来分享一个跳槽成功的面经:
Android开发三年程序员,成功跳槽到阿里的面试经验分享
工作三年,你可能会迷茫,要么觉得自己怀才不遇,要么觉得自己迷失方向,也可能觉得自己意气风发,不管怎么样,自己已经开始思考自己的人生了,事实上,很多工作三年的人就第一次做出了自己的选择,也就是换一份适合自己的工作。
面试分享
2017年毕业,从事android方面的工作已经3年多啦,前段时间刚完成一次跳槽,面试了几家公司,终于拿到了心仪大厂offer,下面将一些面试经验分享给大家,希望对大家有所帮助。
在这次面试之前,我根据阿里招聘的岗位要求投了很多其它公司类似的岗位进行面试积攒经验,像华捷艾米、信雅达、小米、美团等,有些被虐的很惨,也拿到了几个offer,犹豫了一下还是决定继续冲击阿里!
可以看到阿里学历一般都要求本科、计算机相关专业;对底层原理的要求较高
我自己总结了一下,能拿到这次offer原因主要有两点,一是多面试多总结,二是要想办法和面试官成为朋友。
面试失败,好的面试官会指出你的不足,提出一些针对性的学习建议。这种面试官,一定要留个联系方式!我一般当天晚上会发一条消息表示感谢;自己能力有所提升之后,再给面试官发一条消息感谢。几乎所有再次收到消息的面试官都愿意邀请我去面试,就算他们部门不招人,也会主动把我的简历推荐给其它部门。
接下来给大家分享一下我面试阿里的面试真题吧,希望对准备找工作的朋友有所帮助!(这些题目的相关答案大都可以在文末的资料中找到)
阿里一面:
1.apk启动流程
2.你刚讲到了handler,那你说一下你对handler的理解,怎么用java实现一个handler?
3.内存优化了解多少,什么情况下会发生内存泄漏。
答到(四种引用链关系),再深入就是java内存模式,类的内存分布
4.说一下断点续传和多线程下载怎么实现。
5.类的动态加载;classLoader的双亲委托机制
6.让你设计一个图片加载框架你会怎么设计
7.你做的应用商店技术指标和业务指标是哪些
8.对下载和安装指标提高做了哪些优化
阿里二面:
1.为什么选用Fresco作为图片加载框架
2.你用CC框架组件化,为什么不选择阿里的Arouter框架,CC有什么好处。使用过程中用到什么问题。
3.你平时怎么做性能优化的?你用到哪些工具做性能优化,冷启动怎么优化
4.插件化你懂吗?热修复、插件化与组件化的区别是什么?
5.各大插件化框架有什么不同?
6.在加载阶段,虚拟机做了哪些事?
7.你平时怎么自己学习新技术
阿里三面
1.你觉得你做的项目最有挑战性的是什么
2.你是怎么做技术选型的,说一下为什么选用CC而没有选ARouter,你在用组件化框架的时候有没有遇到什么问题
3.MVC和MVVM,MVP说一下你的理解
4.你对你负责的项目在性能优化上做了哪些努力
5.你对自己的未来职业规划是怎么样的
从阿里面试官提的这些问题,可以看出,现在面试问的很多东西,都是原理。
要想成为高级工程师,认真学习真的很有必要。
Android开发者如何提升技能?
作为一名移动开发者,很多人也都陷入过看不到未来的境地。对此我针对Android程序员,这边给大家整理了一套学习宝典,特别适合有3-5年以上经验的小伙伴深入学习提升。
主要包括腾讯,以及字节跳动,华为,小米,等一线互联网公司主流架构技术。如果你有需要,尽管拿走好了。
下面我提供一下我多年工作以来收集整理的学习路线,给大家做个参考:
学习一线大厂的各项技术:
大厂是我们的技术先驱,不仅仅是各种技术,还有很多令你大开眼界的使用方法,学习这些有利于自己竞争力的提高,深入理解后也可以提升你的学习效率。
现在竞争这么激烈,只有通过不断学习,提高自己,才能保持竞争力。
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 最全上手指南
![](https://img-blog.csdnimg.cn/img_convert/be3f9b77caf09
d5558b1581703f0076f.png)
3.Framework精编内核解析
主要内容包含:
-
深入解析Binder
-
深入解析Handler
-
Dalvik VM 进程系统
-
深入解析 WMS
-
PackagerManagerService
4.Kotlin强化实战(附Demo)
-
第一章 Kotlin入门教程
-
第二章 Kotlin 实战避坑指南
-
第三章 项目实战《Kotlin Jetpack 实战》
-
从一个膜拜大神的 Demo 开始
-
Kotlin 写 Gradle 脚本是一种什么体验?
-
Kotlin 编程的三重境界
-
Kotlin 高阶函数
-
Kotlin 泛型
-
Kotlin 扩展
-
Kotlin 委托
-
协程“不为人知”的调试技巧
-
图解协程:suspend
5.Android设计思想解读开源框架
-
热修复
-
插件化