程序员的现状
知乎上有一个很热门的问答:明明是技术流,为什么现在的程序员那么卑微,以前的程序员也这样吗?
程序员,明明是掌握技术的一类人。怎么现在好像成了全社会被压榨得最狠的人呢?
- 以前的程序员也这样吗?
- 从什么时候开始的呢?
- 怎样才能改变这种现状呢?
先回答一下这几个问题:
1、现在的程序员是技术流吗?不全是。 2、现在的程序员卑微且被压榨的狠吗?不卑微!
程序员是技术流吗?
这个看你怎么理解技术流这个词的定义。
在我这里,有比较强的可被替代性的都不算技术流。
因此,并不是所有 coding 的都叫技术流。技术 coding 只不过是针对于他们的工作内容而言的讲法。按这个逻辑其实只要是独特行业的都是「技术」。举个不恰当的例子,对于不擅长和人打交道的研发面前,HR 的面试、谈薪、沟通技巧能力,针对 ER 关系的处理能力都算是技术流。
记得看过霍华德博士
的一个回答里提到,程序员更像是雇佣兵。
首先,很多人没有理解程序员的本质,虽然程序员自黑自己是码农,但程序员性质并不接近农民,而是更接近雇佣兵。
尤其是普通的业务研发工程师,他们并非掌握核心技术的技术流,无非就是一个用计算机编程语言完成代码指令实现软件交互功能的工种而已,不能算是所谓的技术流。包括一些互联网公司里的调参的算法工程师、做质量检测的测试开发工程师、管理系统稳定的运维工程师..... 其实都是一个产品运转上的齿轮而已
那什么叫技术流?
国产智能芯片、无人驾驶技术、医学、高分子材料、5G6G 技术等网络等的科研工作者...这些所谓的有高护城河、有技术复杂度、有社会影响力的人我理解才叫技术流。
现在的程序员卑微且被压榨的狠吗?
如果你觉得他们卑微,那国内大多数人都挺卑微的。
随便翻了下拉勾的招聘薪酬(虽然的确 JD 上的薪酬不准确),这个薪资吊打多少人?
这已经是互联网行业内薪资收入偏低的了。光年薪几十万,吊打多少人?
再说其他待遇,互联网行业的福利待遇拿出去不知道羡慕多少传统行业从业者:
我随便截了快手官网上的一些内容,管三餐、下午茶、健身房、休息区、多数天的年假、打车报销、租房补贴、商业保险、租房补贴、入职配 MacBook 电脑....
所以说卑微这个词严重了,至少如今无论在哪家互联网高科技公司,程序员的薪资依然是吊打其他工种的。
你可能想问的是作为程序员这样的核心工种,为啥现在话语权不行了,为什么现在这么焦虑了。
直接上结论,之所以程序员焦虑,是三个原因:
- 蛋糕小了;
- 分蛋糕的人多了;
- 你抢蛋糕的能力在退化。
加班、996和压榨,和是否技术流没啥必然关系。
1、蛋糕小了——互联网行业陷入瓶颈
一个行业好的时候,你会看到大量的新生初创企业冒头。
你会看到不少优质的中型企业在招人。
我一个互联网行业朋友在跳槽时遇到困难,和我吐槽: 2014-15年,你在市场上能看到很多有趣的,小而美的互联网公司,如今这些公司都消失了。好的机会只有去巨头,尤其是在打仗的巨头那里。
而在2021年的今天,即使是中国最好的互联网行业,在持续大量招聘的也就是快手、字节这些还在激烈打仗的企业。
2010年以来移动互联网带来的红利已经消耗殆尽,但是新的增长点,还没有被发现。
没有增长,就只好内卷了。
2、分蛋糕的人多了——供需结构改变了
程序员已经过了最享受红利的时代。当年专科生培训一下,就能做程序员。月薪好几万。
现在反过来,现在是国家和企业享受「程序员红利」
因为程序员太赚钱,所以大量学生开始学计算机,大量职场人开始转型学Java,Android,Python。
人才市场就是这样,人才多了,人才的价格也就下去了,人才的话语权也弱了——你不干,有人干啊。
3、你抢蛋糕的技术在退化——程序员的不可替代性弱了
这就延展到第二个话题:为什么现在程序员焦虑,内卷?
因为程序员的不可替代性弱了,科技不断发展,未来的不确定性又高。
所以程序员会焦虑,总担心35岁之后怎么办。
现在的程序员角色被拆分成前端、后端、IOS端、安卓端……
是不是越来越像工厂的产线了?
工作细分,对于企业来说是更高效的;每人只用做自己最熟悉的一部分,但是这对职场人的发展是限制很大的。
- 你的部分好学,新人也能很快上手——你可以被替代;
- 你只会一个部分,随着年龄上升想学其他环节的难度大了,很难转型——你很难替代别人
这么一看,当然焦虑。
但实际上,程序员中也有牛逼的角色 ,比如架构师,比如首席工程师。
焦虑:程序员是吃青春饭的,年纪大了怎么办?
我是做Android的,就以Android开发为例吧
除了程序员,还有新媒体运营、设计……很多行业都是青春饭
他们年纪大了怎么办?难道集体下岗吗
程序员是吃青春饭的,但高级开发、资深开发、技术专家、架构师、技术管理,都不是青春饭。
大家都说程序员是吃青春饭的,我相当认可,如果始终不想着提升技术,永远待在初级层次,或许还不到30岁就已经将青春饭吃完了。
不断地也听见很多人在谈做Android是否还有前途、Android研发在走下坡路了、Android的工作太难找了,对于这些其实我的看法很简单:
- Android确实不是当年盛况,已经不再像前几年前那么火爆。一个新行业如果经历过盛极一时,那么必然有这样的一条曲线,像我们学的正弦曲线先急速上升,然后到达顶点,然后再下降,最后再趋近一个平稳的值。
- 那么这一两年就已经是在一个饱和值之间浮动,因此在这样的形式下,对于个人开发者相应的要求就要高一些。
- 以前是只要你会Android四大组件的都是个香饽饽,那样的时代已经过去了,随着人机交互的体验要求,App的用户体验的要求、流畅度等等,已经不可同日而语。在这样的大环境下,那么对我们的Android开发工程师也是同样的改变。
- 在这样的情况下,由于饱和,随处都能招到初级的工程师,公司有了选择的余地,所以肯定会去选择更加优秀的,这就必然导致了我们经常说的,Android开发者已经烂大街了,其实不然,只是公司的要求变高,市场饱和,门槛变高而已。
说白了,其实吃青春饭的不是程序员,而是初级程序员!
不是Android开发没有前景,而是初级Android开发没前景!
而他们被优化后面试碰壁、转行、送外卖……怎么惨怎么来的故事经过很多媒体的炒作后,竟然还被大家认为是理所应当?
现在各大公司其实都很缺Android研发(中高级),不断的在招人,就拿很多一线互联网来说,别说来面试的人了,就简历都拿不到太多,需要花很多时间去找简历,一度让各大公司争抢也招不到合适的人,造成了很多岗位空缺。
越来越多的急招岗位都涌现出来…
所以,对于有Android开发经验的同学,更多应该想想怎么往深探索,而不是一味想着换方向,不管换到哪个方向,都会面对从初级到高级到资深再到专家的时间点。
正确的职业规划应该是金字塔形,核心竞争力一定要扎实!
不管在任何行业,任何岗位,初级技术人才总是供大于求,都是不好找工作的,Android开发只不过是其中之一。
所以,不用老想着Android凉了或是每天说要转行,与其焦虑不安,不如努力提升技术水平,毕竟在这时代,有硬技术的人到哪都吃香。
Android未来的趋势:
移动开发是不局限于App开发的,比如 逆向、物联网、音视频、边缘计算、VR/AR,很多新的技术浪潮其实都已经融入到移动开发的体系里。
在可见的未来,推荐大家选择 NDK 作为未来学习的重心,5G 物联网是风口,一旦涉及硬件交互就一定避不开 NDK 开发。另外伴随着5G时代的来临,音视频也会迎来一波爆发,如果大家现在能够把握住机会,当一只风口上的“猪”岂不是美滋滋?
程序员如何走上快速提升技术走上财富自由之路?
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精编内核解析
主要内容包含:
- 深入解析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,岂不是更赚?
多看大佬的学习笔记,学习大佬的设计思想:
只要是程序员,不管是Java还是Android,如果不去阅读源码,只看API文档,那就只是停留于皮毛,这对我们知识体系的建立和完备以及实战技术的提升都是不利的。
真正最能锻炼能力的便是直接去阅读源码,不仅限于阅读各大系统源码,还包括各种优秀的开源库。