Android程序员心酸历程:毕业3年换了4份工作实在看不到未来,我不知道要提高层级才能打破“魔咒”吗?但哪有那么容易!

Posted Android-until

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Android程序员心酸历程:毕业3年换了4份工作实在看不到未来,我不知道要提高层级才能打破“魔咒”吗?但哪有那么容易!相关的知识,希望对你有一定的参考价值。

 

背景

前两天看到一个网友的分享,让我感受很深:

朋友最近又辞职了,可他毕业这三年,已经换了4份工作,感觉他在排斥每一份工作。他说自己看到了这份工作的局限,身处外包公司又不愿加班,技术得不到提升。觉得实在是没有未来。

网友感到费解:一份工作才做不到半年,怎么就知道没有未来?

我不知道那个程序员朋友,他的工作是不是真的没有未来,但是我知道,很多人已经没有耐心去等待未来的到来。

关于一些程序员学习的坏习惯

01 倍速生活

前段时间,#倍速生活#的话题引发了热议。

《中国青年报》调查显示,76.5%的受访者认为自己正过着“倍速生活”。

所谓“倍速生活”,就是一分钟想看完两分钟的视频,一个星期想赶完一个月的进度,一两年的时间就想走上人生巅峰。

在“倍速生活”下,很多人都活在一种悬浮状态中:只忙着追求未来,却不肯站在当下。

我在学习新技术的过程中,经常能看到这样的“悬浮人”,他们兴致高昂地买了书,查阅各种资料,甚至报了班,立志要在不久的将来成为热门新兴技术的领军者,结果学了一段时间后觉得自己似乎没啥进步,就想放弃不学。

有的“悬浮人”好不容易咬咬牙让自己沉了下来,可看到身边同学进到一线互联网企业,自己却还是在小公司,先不说钱多钱少,感觉事业上的差距也已经越来越明显了。内心有了一丝心慌。挣扎一段时间后,发现自己还是没有别人优秀,就认定自己在现有公司没有未来的,就再没有耐心继续学习新兴技术了。

这个时代有太多这样的“悬浮人”,他们愿意做很多尝试,却不愿意付出相应的时间。

为什么放弃?

因为“看不到未来”。

其实,哪有那么多“看不到未来”,多数情况下,是我们没有耐心去等待未来的到来。

02 耐心,是一切成长的刚需

最近的关于程序员的新闻不断,“网易绝症员工被裁”、“华为251事件”、“熊猫TV倒闭,大龄员工无法再就业”等等。先不管这些新闻的真真假假,这批文章高点击率背后至少说明一个问题:程序员们焦虑了

程序员们为什么会焦虑?因为怕,怕摆在面前的年龄过滤器---40岁这个槛。40岁前程序员如果不能完成一定的积累,那么随着年龄的增大,职业竞争力是在降低的。如果说人妖是提前透支40岁后的生命的话,那么程序员高收入的背后,是提前透支40岁后的职业生涯。

李笑来说:只有活在未来的人,才有真正的耐心,而耐心和时间是一切成长的刚需。

年龄是制约我们职业发展的因素,但绝不是唯一的因素。分享一则小故事

83岁的Masako Wakamiya是一位独居的日本老人,同时也是一个手机应用程序的开发者。

Wakamiya说自己的生活从60岁才开始,她对未来充满了希望。

她说:“人们都说我个积极的人。即使年老了,我也在做我喜欢的事情。”“有些人不愿意承认变老,但是这就像是和夕阳赛跑,我觉得很累。”

与其对抗它,“不如和太阳一起沉下去,好好享受日落。”

正确的事情,就是一切让自己变得更好更值钱的事情。

  • 如果你耐心看一年书,你会有不错的思维深度和知识储备吗?
  • 如果你耐心写作一年,你会有稳定的内容创作能力和变现能力吗?
  • 如果你耐心健身一年,你的身材和气质会比朋友圈里的大部分人好吗?
  • ……

我相信,越有耐心,你就越能看到坚持做一件正确的事情带来的好处,就越能看到你的未来变得越来越好的样子。

因为,通过正确的方法去做正确的事情创造更好的未来,这是一件必然会发生的事情。

03 结果的前提,是过程

我们总说,要以结果为导向,却忘了取得结果的那条路,叫做过程。

往往我们为了尽快拿到一个结果,缩短了过程,却也拥抱了失败。

  • 看几本书,就想要思维变得深刻。结果没有。失败。
  • 跑几次步,就希望体重有所下降。结果没有。失败。
  • 上几节课,就想掌握多一门技能。结果没有。失败。

在“结果”的驱使下,我们总是希望更快的做完一件事,更快达到某一个程度。

于是,我们陷入一种“紧赶紧赶”的状态,根本耐不下心来去做长期投入。所以,我们总是轻而易举地失败。

初级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 最全上手指南

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设计思想解读开源框架

  • 热修复
  • 插件化
  • 组件化框架设计
  • 图片加载框架
  • 网络请求框架
  • RXJava 响应式编程框架设计
  • IOC 架构设计
  • Android架构组件Jetpack

6.NDK模块开发

  • NDK 模块开发
  • JNI 模块
  • Native 开发工具
  • Linux 编程
  • 底层图片处理
  • 音视频开发
  • 机器学习

定期面试:

光学习了大厂的技术还不够,如何了解当下Android市场需要哪些技术呢?

定期的面试足以让你了解当下市场需要哪些技术,也更加容易确定自身的短板在哪,同时,也可以督促自己学习提升(小伙子,你了解的技术有点落伍了呀…)

万一拿到了高薪Offer,岂不是更赚?

《379页Android开发面试宝典》

多看大佬的学习笔记,学习大佬的设计思想:

只要是程序员,不管是Java还是Android,如果不去阅读源码,只看API文档,那就只是停留于皮毛,这对我们知识体系的建立和完备以及实战技术的提升都是不利的。

真正最能锻炼能力的便是直接去阅读源码,不仅限于阅读各大系统源码,还包括各种优秀的开源库。

《486页超全面Android开发相关源码精编解析》

以上这些内容均免费分享给大家,需要完整版的朋友,点这里可以看到全部内容。或者点击 【这里】 查看获取方式。

以上是关于Android程序员心酸历程:毕业3年换了4份工作实在看不到未来,我不知道要提高层级才能打破“魔咒”吗?但哪有那么容易!的主要内容,如果未能解决你的问题,请参考以下文章

毕业四年换了3份软件测试工作,我为何仍焦虑?

毕业四年换了3份软件测试工作,我为何仍焦虑?

毕业四年换了3份软件测试工作,我为何仍焦虑?

毕业四年换了3份软件测试工作,我为何仍焦虑?

毕业五年换了3份软件测试工作,我为何仍焦虑?

2023年找工作的心酸历程