奔三女程序员不禁三思,“中年危机”的到来成了攻城狮不可承受之重,中年程序员该如何生存?

Posted Android-until

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了奔三女程序员不禁三思,“中年危机”的到来成了攻城狮不可承受之重,中年程序员该如何生存?相关的知识,希望对你有一定的参考价值。

事件经过

一个普通女程序媛眼看就要 27 岁了, 又到适婚的年纪,还没结婚, 其实还挺喜欢码代码的,没有抵触过。想考证,没有长远职业规划,求助v站引发了热烈讨论。

网友回复评论五花八门,我们挑选了一些高赞回复。

上述列出了部分网友对女程序员职业规划的建议,有建议考证、进外企、考公务员、攒钱、买房、出国等。

但真正引发热议的还是这些评论!

喔,对了,还有网友向楼主毛遂自荐的。

大部分网友认为在中国避免中年危机的方法就是避免结婚。

搞得有些网友看到将来可能面临的危机都害怕结婚了。

事件逐渐演变成关于中年危机的一场辩论。

甚至网友跟风回复,避免中年危机,如果喜欢写代码,技术自己感觉能继续精进并保持持续的学习,那继续走技术路线!

程序员是怎样一种职业?

程序员有三种境界:工人、匠人、艺术家

工人:

关键词:加班、久坐、听话、重复劳动

这一类程序员就如流水线上的工人,每天主要工作就是完成老板布置的各种任务,每做完一个任务,就意味着迎接下一个任务。永无休止,循环往复。

匠人:

关键词:完美主义、责任心、享受突破

这一类程序员热爱编程,追求将每一件任务都做到最好。他们会为每一个变量、每一个方法的命名绞尽脑汁。对他们来说,每一段写出来的代码都是一件艺术品。他们看到丑陋的代码会愤怒,在带学徒时会非常严格。

艺术家:

关键词:快乐、沉浸、高技术、创意

这是程序员的最高境界,这类程序员对于软件的构架、模块设计都有独到的想法,他们不仅仅思考软件本身的稳定性、功能是否强大,还追求代码、构架是否优美。他们通常会有自己开源软件,用自己的库、框架或者插件来满足世界的需求,帮助他人提高效率。他们享受关于程序、逻辑的一切,即便写出无法带来任何经济收益的软件,也乐在其中。

中年危机幕后的第一推手

绝大部分人印象中的程序员一定是第一类。的确,这是市场最需要的一类程序员:能像机器一样大量产出代码,能加班加点,用高于市场平均水平的速度完成一套软件,能快速上手,无需过多培训费用,能熟悉多种技术,最好是有最优秀的学习能力。最后,工资嘛,最好是市场平均水平或者低于市场平均水平。

这么描述完,你们大概已经注意到了,上哪儿去找这么好用的工人呢?大学毕业生,或者更好的是,有那么几年工作经验,年龄又不大(市场潜规则,35 岁以下)。

程序员中年危机的第一幕后黑手呼之欲出:市场!!!

曾经看到过一段很有意思的话:母亲生子还要怀胎十月,国内投资人对于创业公司的期望却是最好三个月 IPO 上市。投资人的期望和市场的竞争将这条生产线逼到了极致,甚至出现 " 程序员激励师 " 这种奇葩职业。

然而,当市场上充满了工人型程序员并不是一件好事。众所周知,我们正期望从“中国制造”向“中国智造”转型,就是因为靠低价、重复劳动、批量生产并不是长久之计,这些只靠产量、订单生存的程序员,正是在用青春和健康换取“中产阶级”收入。

令人意想不到的是,这个市场上其实是非常缺乏具有匠人精神和艺术家气质的程序员的!只有有他们,才会产出高质量的软件。在世界顶级的 IT 企业如微软 、谷歌 中,具有大量拥有匠人精神和艺术家气质的软件工程师,而这些工程师是一定不会在乎 35 岁、45 岁的,只要他们还热爱这个行业,就会一直做下去,学习下去。不过,这样不靠批量生产、而是靠有技术专利或者平台存活的 IT 公司毕竟是少数。绝大多数程序员注定会成为市场竞价的牺牲品。

中年危机幕后的第二推手

杀死中年程序员的,其实是欲望

大家都知道,软件工程师在社会众多职业中,绝对算是收入不错的职业。虽然有的行业,如金融业也有不少高净值人士,但是 IT 行业整体薪水较高是有目共睹的,尤其是大学毕业的起薪。

在我看来,起薪高并不是一件好事。

高起薪意味着两件事:第一,它是打开欲望的潘多拉盒子。第二、高收入背后一定有隐形的成本,很多年轻的程序员们并没有清醒意识到自己将为此付出的代价。

正因为程序员起薪高,家人(老婆)很容易成为家庭主妇,将经济压力完全转嫁到一人身上。他们也很容易形成高消费习惯,例如购买贵的房产、汽车等等。消费习惯一旦上去,就很难以下来。然而,高起薪背后本身就意味着对健康等未来成本的损耗。这不是一种可持续(尤其是持续 20 年及其以上)的资源。

《未来简史》中说,人类的欲望一旦打开就停不下来了,比如所谓的“升职加薪”。当人们习惯于升职加薪,某一天没有能力升职加薪将意味着什么:生活坍塌。

其实,有很多家庭的收入远远小于软件工程师家庭的收入,但是稳定的收入和没有过度的贪欲,让他们很幸福。反倒是不断的追求升值加薪,或者社会对程序员不切实际的期望(如“不转管理就是失败者”),让程序员这样一种原本应该是具有匠人精神的职业,变成了和保险销售一样靠“画饼”或者“利益诱惑”升值的行业,实在是一种悲哀。

我相信,很多 IT 行业的创业者、领导者和招聘人员,其实是非常希望能够招到技术过硬、具有匠人精神的编程艺术家的,因为,他们很清楚,这样的资源有多么稀缺!那么,社会是不是应该更加宽容,不要期望每一个程序员都会成为巧舌如簧的管理者?塑造一个匠人、甚至是艺术家,是需要时间的沉淀的。

程序员如何生存

对于许多人来说,编程不仅仅是一份职业。最近,我在阅读一些相关的文章时发现,许多 50 岁以上,甚至 60 岁以上的开发人员仍在从事编程。

他们中的一些人也有其他的工作机会,但是他们都拒绝了,因为他们喜欢编程。

其实,能够从事自己喜欢的工作,是人生一大幸事!但是,无论你喜欢与否,如果想长期从事这个职业,就需要牢牢记住一些忠告。

无论你是年轻还是年长,所有程序员都需要记住:时刻努力学习新技术,否则就会被时代抛弃。

①紧跟年轻人的思想

除了便宜以外,各个公司喜欢招募年轻开发人员的原因还有两个:

  • 他们渴望学习。他们很好奇,喜欢学习新鲜的事物。他们学习的知识都很先进。

  • 他们可以激发很多新想法,并分享新的观点。

因此,请紧跟年轻人的思想。只要有年轻的心态,年龄无关紧要。

②放下“技术包袱”

许多程序员都有技术“包袱”。请放下包袱,对新技术保持开放的心态。

如果某个程序员长期从事某个特定的编程语言,而没有任何其他方面的工作经验,则一些招聘人员会视之为危险信号。

高龄开发人员都会担心工作的稳定性。他们往往会承担很大的心理压力。我认为如果提前做好准备,就可以避免这种情况。

新的编程语言、框架和库层出不穷,因此要不断地学习。有时技术人员常常会忽略这一点。但现实情况是,这些技术很快都会过时。

进阶之路

为何会想起写这么一篇文章呢,一方面很多程序员对于技术精进仍然十分困惑,不知道该如何学习进阶,以至于提前陷入中年危机的困惑之中。

作为一名android开发近十年的老码农或许可以分享一些自己的心得体会,刚好这几天工作需要,组内想规划 Android 技术路线,简单来说就是目前我们组处在什么样的水平程度,目前所做项目用的技术处在什么阶段,在未来一年内,项目技术迭代该如何走,走到什么程度。

最后是从事 Android 开发这几年,一直也没好好规划自己的技术路线,想认真整理下未来进阶之路。我们都知道 Android 技术体系一直很庞大,刚开始学的时候基本是从一个点一个点开始,没有系统全局观概念,同时也是学不过来,从做上层应用开始,到做 Framework 层,然后再到系统层做驱动开发各个层面的开发者都有,绝大部分开发者都是从应用层开发,往往做到 Framework 层就浅尝辄止了,一直以来,做Android 开发有这么两个说法,如果是做应用开发,往应用架构方向发展比较合适,如果是做系统层开发,往往底层驱动比较合适。

看张图:

挑些图中几个点简单来谈谈自己的一些想法。

移动架构:

移动架构是 2017 移动技术年度TOP5话题之一,从中就体会到架构是有多火,记得刚开始学 Android 时候,哪有现在那么框架,那时候谈架构的更多是在服务端开发,比如多层架构,有展示层、业务逻辑层、数据访问层这就是最简单的三层模式,Android系统则是基于事件驱动响应机制设计的单页面架构,其实跟浏览器中的窗口页面是一样的, 系统中一直有个消息轮询监听机制,哪个事件被触发了,相应的响应代码进行处理,这些处理操作是被提前注册到系统中。

最早开始的开发模式基本是基于Android 系统自带 MVC 模式,Activity 基本类似于Control 的作用了,View 和Mode 互相耦合,后来才演化出现在主流的 MVP、MVVM 模式,顺便提一句,MVVM 模式其实是在微软 WPF 技术体系中提出来。

图中显示两个方面:

  • 展示层: MVC、MVP、MVVM、Clean、Flux、Android Architecture Components

  • 架构层:模块化->组件化->插件化->沙盒/双开技术,比如可以双开微信,类似Docker, 每个页面都是插件,类似Vue.js中每个页面都是组件。

性能优化:

简单来说,一个APP 是需要从三个方面被关注的,业务功能、符合逻辑的交互、性能响应。如果我们在使用一个 APP 时候,经常滑动时经常卡顿、时不时崩溃、有些功能设计简直非常规,比如在 Web 网站有树层级等面包屑点击,你非要在手机也搞一个类似树级点击加载,那是不是有点强人所难了,我上拉下拉、左滑右滑不行吗,非要通过点击才行吗?那么性能优化核心是什么呢?追求快、稳、省、小,关注卡顿、内存泄漏和崩溃、代码质量和逻辑、安装包大小四个方面。

技能储备

Android学习是一条漫长的道路,我们要学习的东西不仅仅只有表面的 技术,还要深入底层,弄明白下面的 原理,只有这样,我们才能够提高自己的竞争力,在当今这个竞争激烈的世界里立足。

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

对于程序员来说,要学习的知识内容、技术有太多太多,要想不被环境淘汰就只有不断提升自己,从来都是我们去适应环境,而不是环境来适应我们!

对于一些不知道学习什么,没有一个系统路线的程序员,这里给大家提供一个大概的思路:

  • 架构师筑基必备技能:深入Java泛型+注解深入浅出+并发编程+数据传输与序列化+Java虚拟机原理+反射与类加载+动态代理+高效IO
  • Android高级UI与FrameWork源码:高级UI晋升+Framework内核解析+Android组件内核+数据持久化
  • 360°全方面性能调优:设计思想与代码质量优化+程序性能优化+开发效率优化
  • 解读开源框架设计思想:热修复设计+插件化框架解读+组件化框架设计+图片加载框架+网络访问框架设计+RXJava响应式编程框架设计+IOC架构设计+Android架构组件Jetpack
  • NDK模块开发:NDK基础知识体系+底层图片处理+音视频开发
  • 微信小程序:小程序介绍+UI开发+API操作+微信对接
  • Hybrid 开发与Flutter:html5项目实战+Flutter进阶

知识梳理完之后,就需要进行查漏补缺,所以针对这些知识点,我手头上也准备了不少的电子书和笔记,这些笔记将各个知识点进行了完美的总结。

接下来分享的系统学习资源以详解各大互联网公司的 Android 常见面试题为主线,从面试的角度带你介绍必备知识点,以及该知识点在项目中的实际应用

帮你在现在的基础上,重新梳理和建立 Android 开发的知识体系。无论是你短期内想提升 Android 内功实力,突破自己工作中的能力瓶颈,还是准备参加 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 编程
  • 底层图片处理
  • 音视频开发
  • 机器学习

7.Android源码解析

“编程语言是程序员的表达的方式,而架构是程序员对世界的认知”。所以,程序员要想快速认知并学习架构,读源码是必不可少的。阅读源码,是解决问题 + 理解事物,更重要的:看到源码背后的想法;程序员说:读万行源码,行万种实践。

主要内含微信 MMKV 源码、AsyncTask 源码、Volley 源码、Retrofit源码、OkHttp 源码等等。

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

以上是关于奔三女程序员不禁三思,“中年危机”的到来成了攻城狮不可承受之重,中年程序员该如何生存?的主要内容,如果未能解决你的问题,请参考以下文章

是什么让你感受到了中年危机,如何应对即将到来的中年危机

程序员在中年危机到来之前,是该努力提升自己竞争力还是提前谋划另谋出路?

程序员你所害怕的中年危机,恰恰是人生的转机!

IC攻城狮求职宝典 01 2018年IC设计企业 笔试题 01 英伟达(Nvidia)

毁掉一个中年人(测试工程师),就是让他相信“中年危机”

在大厂实习三个月后,我竟然迎来了“中年危机“