一、缘起
关于35岁程序员“门槛”,“青春饭”诸如此类的话题,为什么从前没有听说过,而这两年突然火了这个话题?而且几乎已经成为行业内公认的“事实”了?
因为中国第一批程序员35岁了!!!
1999-2000年,两位马爸爸和一位李爸爸创建了如今的互联网三巨头:BAT。
因此,我们暂且认为,互联网是在2000年左右兴起,一个行业兴起后,要有几年的时间给大家反应进入这个行业。
当初和马爸爸们、李爸爸一起打拼的兄弟们,现在都是各个公司的顶层人物了,这种类型我们就不考虑了。
我们假设给普通大众几年的时间接受互联网兴起,也就是2005年左右,假设程序员22岁毕业进入互联网行业。
到2019年,这批22岁的程序员差不多36岁了!也就是说比较早的一批本科毕业就进入互联网行业的程序员,现在是36岁左右!
注意,很多人也是在后面的时间里慢慢加入互联网行业的,所以说,还有很大一批的程序员,才刚刚步入35岁左右的年龄。
最关键的是,我也要到35了!!!!
二、我所接触到的事实
一个朋友,前阿里人,37岁,离职后就职美团,今年想跳槽。投的是技术岗的简历,之前跳槽,因为有大厂经验,投一个面一个。今年,投十个,能有两个面试机会就不错了,最后索性又回了阿里,做了个技术专家,主要做架构。
他在面试的时候,也经常被出各种幺蛾子,碰见比自己大的面试官,态度和善,一般面试都能过。而如果碰到比自己小很多的面试官,能给你从天上问到地下,好像在说,就这?你也能不会?
按我一个做人事的朋友说法:凡管理人员,都讲究气场。他跟你能不能和得来,年龄是硬伤。除非有些大厂专门有架构师的岗位,你不写业务代码,他也不负责管理你,就无所谓。但凡你要在他手下干活,年龄又相差较大的话,他一般是不会要的,根本原因就是怕管不住。HR推来的人,不好直接推脱,总得找点理由,这时候就会出现面试不按常理出牌的情况。
另外几个朋友,都走的技术管理岗,也35、6了,有的在网易,有的在滴滴。据他们的话说,到了这个年纪,就不要想着跳了,找一家合拍的公司好好干吧,自己混个高点的职位,出去好要价,高不成低不就的,同样没人要。
三、35岁的真相
同样以某为裁员为例,你真的以为裁员裁的是年龄大、股票多的那些人?
当然毕业后同学朋友在华为的也有几个,据他们的说法:人家裁的都是工作十来年,考评普通职级一般,收入和股票都偏低的一群人。也就是:这部分人的工作具有可替代性。
华为裁员是为了优化结构,不是为了断臂求生。核心员工,不仅不可能被裁,而且会被重点关照,停止流失!!!
所以,裁员裁的是这三类人:
- 拿着远超三个应届毕业生的工资,但是能力最多顶一个
- 老油条,干活一般般,但是油油的
- 只会写代码,职业素养和情商一般般
总的来讲,就是性价比低、不可替代性弱的同学们。淘汰的就是这些。
但真正能有几个人的工作具有不可替低性,现在在敲代码的我们,终归有几人能逃过被挑选的命运?
四、35+的程序员都去哪儿了?
我搜遍全网,结合我身边的例子,给出下面几个程序员能走的路。
1. 走纯技术路线
根据舒伯的职业生涯阶段理论,31~44岁是安定期,程序员应该稳定于一项工作,发现适当的晋升通道,确立自己将来的保障。
结合35岁的门槛,大家应该在35岁前,尽量找到合适的下家,这些下家中有纯技术上升通道。
很显然,只有大公司才会有纯技术上升通道,比如阿里,中小公司是不太可能有的。所以,走这条路的同学,要想尽一切办法进到大公司中,并且稳定下来。
关于如何进到大公司,因为我自己是做Android开发的,身边也有很多在大厂多年,Android开发方面的大佬,所以我整理了如下的一套学习方向与方法,供大家学习参考!有需要具体笔记文档的同学,可以 点赞+评论 此文后,点击这里直接获取!
学习路线图
对应每一个知识点都整理了一套非常系统的学习笔记PDF
- 架构师筑基必备技能
目前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终端内存优化实践
360°全方位性能调优
- Android框架体系架构
Android框架体系架构(高级UI+frameWork源码) 这块知识是现今使用者最多的,我们称之Android2013~2016年的技术。
Android开发者也往往因为网上Copy代码习惯了而导致对这块经常“使用”的代码熟悉而又陌生:熟悉的是几乎天天在和它们打交道, 天天在复制这些代码 ;陌生的是虽然天天和这些代码打交道,但是并没有深入研究过这些代码的原理,代码深处的内涵。
本篇知识要点: 1、高级UI晋升 2、Android内核组件 3、大型项目必备IPC 4、数据持久与序列化 5、framework内核解析
Android框架体系架构
- NDK模块开发(音视频系列)
NDK(Native Development Kit缩写)一种基于原生程序接口的软件开发工具包,可以让您在 Android 应用中利用 C 和 C++ 代码的工具。通过此工具开发的程序直接在本地运行,而不是虚拟机。
在Android中,NDK是一系列工具的集合,主要用于扩展Android SDK。NDK提供了一系列的工具可以帮助开发者快速的开发C或C++的动态库,并能自动将so和Java应用一起打包成apk。
本篇知识要点: 1、NDK开发之C/C++入门 2、JNI模块开发 3、Linux编程 4、底层图片处理 5、音视频开发 6、机器学习
NDK模块开发
- Flutter学习进阶
2019 年无疑是 Flutter 技术如火如荼发展的一年。
每一个移动开发者都在为 Flutter 带来的“快速开发、富有表现力和灵活的 UI、原生性能”的特色和理念而痴狂,从超级 App 到独立应用,从纯 Flutter 到混合栈,开发者们在不同的场景下乐此不疲的探索和应用着 Flutter 技术,也在面临着各种各样不同的挑战。
本篇知识要点: 1、Flutter跨平台开发概述 2、Windows中Flutter开发环境搭建 3、编写你的第一个Flutter APP 4、Flutter Dart语言系统入门 …
Flutter学习进阶
- 微信小程序开发
微信小程序作为现在比较火的编程开发应用场景之一,深受市场的青睐,这让不少开发者眼馋不已。但是对于初学者来说,就完全摸不着头脑了,不知道微信小程序开发制作需要学习那些知识,有需要的朋友可以参考本篇。
本篇知识要点: 1、小程序概述及入门 2、小程序UI开发 3、API操作 4、购物商场项目实战
微信小程序开发
- Android相关源码解读 只要是程序员,不管是Java还是Android,如果不去阅读源码,只看API文档,那就只是停留于皮毛,这对我们知识体系的建立和完备以及实战技术的提升都是不利的。
Android相关源码解读目录
Android相关源码解读部分解析内容
- 历年大厂面试真题整理
在各平台收集整理的各大厂面试真题合集,附带解析答案。
历年大厂面试真题整理
有需要具体笔记文档的同学,可以 点赞+评论 此文后,点击这里直接获取!
2. 走技术管理路线
从小管理到大管理再到CTO,这条路。说点简单的,就是管理路线一路走到黑。
中国自古有官本位思想,觉得做了管理,就不得了了。但在技术性岗位上,真的是这样吗?
对于技术性岗位而言,如果你两年不碰代码,那基本上你的代码能力也就废了。想要立马找一份开发的工作,基本上没有可能了。
所以,技术性岗位可以向管理岗位转,反过来则不成立。
大家都经历过2018、2019的裁员潮,在2018年尤为严重,很多公司一个部门一个部门的砍,而有些部门仅留几个人运维。
而这些裁员中,首当其冲的就是纯管理,皮之不存,毛将焉附?
而技术人员可以直接找工作,虽然难找,但耐不住岗位多。管理层呢?相对则难了很多,因为管理本身就是软实力,而且岗位少,在裁员潮到来时,管理岗更少。技术岗通过技术面试,能直接了解你的水平,管理则不同。。它没办法通过面试了解你的实力,你所列举的各种成果,可能跟大环境和你所在公司有直接关系,而并不能体现你的价值。
所以,可以做管理,但无论如何不要放弃技术。无论何时,留一个保命的本领!!!
3. 转岗
开发做不了太久,其他行业能做很久?其实整个互联网行业都是有年龄限制的,如果说老程序员大部分人能干到35,那其他岗位撑死到45也不得了了吧。
但时间长,总是有机会,而且还是技术出身,对技术实现系列更了解,指不定还能实现事业第二春。
程序员能去的方向有,开发测试、产品、运营、项目经理。
【开发测试】: 因为有代码经验,转到开发测试岗,是有一定优势的,容易升到管理岗位。注意,开发测试岗跟测试岗是完全不同的,开发测试是有一定门槛的,涉及到测试工具开发、单元测试用例等,是针对代码层面的测试。而测试岗则完全不同,是针对软件功能的点检,根据测试用例一条条过,是不跟代码打交道的,门槛相对低。越低的门槛,竞争力越大!!!所以,要选就选开发测试。
【产品经理】: 应该转岗的程序员至少60%以上,都是选择这个岗位,首先,我们开发时都是跟产品打交道的,对他们做什么相对了解,其次,我们懂技术,能了解产品的表现形式,缺乏的只是产品思维而已,所以,转岗产品,相对容易,而且,产品线职业寿命长,经验能够积累,你就是干到40,也没啥问题。
【运营岗位】: 这个岗位就跟代码完全不搭噶了,你的代码能力是完全用不上的,程序员转运营的比较少,但如果你真的觉得这方面你有天赋,比如你自己弄的短视频账号流量很好,也是可以试试的。
【项目经理】: 项目经理主要是做项目管控,其实,如果你有这个能力,何必选择项目经理呢?直接做技术管理就好了。项目经理岗位比较少,因为中小公司是不需要项目经理的,直接技术领导直管。只有项目较多且涉及项目间合作沟通的,才会有项目经理,而且,一个项目经理是同时负责几个项目,没你想象的那么容易。最重要的是坑少,这就代表着找工作不好找。
比如我们说大龄程序员不好找工作,但耐不住人家坑位多啊,原来投十个面十个,现在投十个面三个,也是有的面,可你总共只有十个公司有这个职业,咋弄?所以,这个岗位慎重转。不信?boss直聘上搜搜。
4. 另找个能养老的工作
这类工作就是我们所说的铁饭碗了,有公务员、事业单位、老师等。没啥好说的,全看个人选择,能去也挺好的。不过对我来说,我的性格不适合,我喜欢闯,喜欢拼,不喜欢安定。
五、最后
关于35+的程序员都去哪儿了,相信看到这里的读者老爷或多或少都有了自己的答案,或是说有了自己35+后的方向。所谓程序员到底是不是一碗“青春饭”?在我看来是一个不愿意去承认的“事实”。但其实排除程序员这个行业,除了公务员、事业单位这些职业外,又有多少个职业是能从“青春”干到“残年”的呢?
大部分人到了一个年纪,因为一些事或是一个人,终归是要去做出变化。问题是当这个变化来临之前,你是否已经做好了计划或是足够的准备。作为一个程序员,留在代码里的不仅只有BUG,还有时光!当时光殆尽,你是否已有应有变化?与诸君共勉!
我总结了一些Android核心知识点,以及一些最新的大厂面试题、知识脑图和视频资料解析。
需要的小伙伴直接点击文末小卡片免费领取哦,以后的路也希望我们能一起走下去。(谢谢大家一直以来的支持,需要的自己领取)
Android学习PDF+架构视频+面试文档+源码笔记
部分资料一览:
- 330页PDF Android学习核心笔记(内含8大板块)
- Android学习的系统对应视频
- Android进阶的系统对应学习资料
- Android BAT大厂面试题(有解析)