当我 30 岁的时候,我发现自己创业去了,虽然非常苦逼,但是苦中作乐,还挺有挑战的。当然创业是没有退路的,创业要是失败了,估计更加没人要了。所以还是先想创业的事吧,35 岁的大龄程序员问题还是 5 年以后再说。
一晃我就 35 岁了,创业公司卖给 CSDN 了,我在 CSDN 当 CTO 了。话说这个 CTO 其实也很苦逼,操心的事太多,每天各种杂事,压根没空想中年危机的话题。
然后我马上就 40 岁了,不算有钱,但养活自己完全没问题,想着趁自己还能蹦跶几年,再做点什么吧,就到丁香园了。
现在回想 25 岁的时候,当初的担忧真的是杞人忧天了。我现在写代码也完全没问题,偶尔也会写点代码练练手,自娱自乐一下。但是从 2010 年我 34 岁开始,工作上我已经不适合写代码了。不是我不愿意亲自写代码,我反而觉得写代码很有成就感,而是我不写代码对公司的价值更大,我需要把时间和精力放在规划产品方向、决策技术架构、培养团队,提升公司战斗力上。
那些 70 后的程序员都消失了吗?
如果你现在去一家互联网公司看看,你会发现程序员的主力都是 90 后了,80 后都很少,至于 70 后几乎绝迹。那么一个有趣的话题是:「70 后的程序员都消失了吗?」
其实没有消失,而是 70 后的程序员已经成为各个互联网公司,各个 IT 公司的高层了。那么你会问:「一个公司就几个高层职位,哪有那么多职位给 70 后呢?」
答案是:「20 年前根本就没有多少 IT 公司,70 后的程序员也没有现在动辄上百万的规模」。这 20 年来,整个 IT 和互联网行业扩大了 100 倍都不止,创造了海量的就业机会,无论是高层还是一线岗位。
那么还有 70 后程序员奋战在 coding 第一线的吗?当然有!比我还大一岁的高春辉,中国互联网的活化石啊。老高身为一家公司的老板,仍然不肯放下 coding 的乐趣,至今坚持亲自写代码。
所以看起来,到了 40 岁,无论自己写不写代码,似乎都不至于年老色衰,程序员这个职业的保鲜期似乎没有娱乐圈短。作为一个年轻程序员的你来说,应该怎样延长自己的保鲜期呢?
20-27 岁:技术积累
假设本科 22 岁毕业,那么工作的前 5 年对你来说是打基础的阶段。在这 5 年时间里面,你要积累足够的代码量,打磨自己的技术实力,成为某一个技术细分领域的牛人。
而我自己当年在这个阶段的努力程度是如饥似渴的,春节都不回家,蹲在出租房里面啃技术文档。刚参加工作的时候,曾经连续一个月在公司打地铺睡觉。
28-35 岁:形成思维方法论和知识体系
当你积累足够的代码量,例如超过 10 万行代码以后,你应该形成了自己的思维方法论和自己独立的学习技巧,任何新的技术在你眼中都能迅速的看到技术的本质,快速吸收成为你的知识体系的一部分。
到了这个阶段,你会发现你所完全不了解的新技术新知识是非常少的,新技术对你来说也不过是几天时间就把玩的很好的玩具,学习越来越轻松,掌握的知识储备越来越多。
你开始逐渐的不再满足于纯技术领域的探索,而是思考更多的问题:如何将技术转化为生产力;什么技术在什么样的场合能够发挥最大的价值;技术团队应该怎样构建;在一家公司里面,我怎样才能将自己的技术能力最大化的发挥出来?
在这个阶段,积累技术对你来说简直是小菜一碟,你更需要磨练的是思考能力,形成自己的思维方法和知识体系,这将是你帮助你一生的武器。就拿我们Android开发举例:
一线互联网移动架构师成长知识体系大纲包括:
Java部分:
- 深入Java泛型篇
泛型的作用与定义
通配符与嵌套
泛型上下边界
RxJava中泛型的使用分析
Json解析泛型与Bean强转原理实践
- 注解深入浅出篇
Fragment
自定义注解
注解的使用
Retrofit中的注解原理项目实战
自定义注解实现 ButterKnife项目架构实战
- 并发编程篇
线程共享和协作
线程深入理解
操作CAS
并发原理和大厂相关面试题
Android AsyncTask原理解析
- 数据传输与序列化篇
Serializable原理
Parcelable接口原理解析
Json
- Java虚拟机原理篇
垃圾回收器机制
内存分配策略
Dalvik虚拟机
- 反射与类加载篇
反射基本概念与Class
ClassLoader与类加载器
热修复类加载项目实战
- 动态代理篇
基本原理
动态代理之RxJava与Retrofit应用实战
- 高效IO篇
JavaIO体系
File文件操作
APK加固
…
Android高级UI与FrameWork源码:
- 高级UI篇
WebView交互架构项目实战
布局ViewGroup原理解析
Material Design设计的App
京东自定义view流式布局项目实战
今日头条文字渐变特效项目实战
- Framework内核解析篇
Binder
Handler消息机制
Dalvik VM进程信息系统
深入理解WMS
插件化项目实战
增量更新项目实战
PackageManager Service
- Android组件内核篇
Activity与调用栈
Fragment的管理与内核
Service 内核原理
组件间通信方案
…
- 数据持久化篇
Android文件系统
轻量级Kv持久化
嵌入式Sqlite数据库
性能优化:
- 设计思想与代码优化篇
数据结构
算法
设计模式
六大原则
- 程序性能优化篇
OOM问题原理解析
ANR问题解析
Crash监控方案
启动速度与执行效率优化项目实战
布局检测与优化
内存优化
耗电优化
网络传输与数据存储优化
APK大小优化
屏幕适配
- 开发效率优化篇
分布式版本控制系统Git
自动化构建系统Gradle
- Android职业方向篇【这是笔者新加入的,对于Andorid开发者而言非常重要,要有自己的职业规划】
资深UI工程师\[自定义控件,源码方向\]
Android底层开发工程师\[C++音视频/图像算法/智能家居\]
Android资深架构师\[造得一手牛逼的好轮子,熟悉Framework,Java高级知识等等\]
全栈工程师(以Android为核心技术)
- Android工作工具篇
Git/SVN(代码版本控制)
调试工作
测试
- Android工作必备技能篇
玩转Gradle
打包 & 多渠道打包
加固 & 混淆
- Android跨平台开发篇
WebView & 第三方内核
Flutter
- Android项目学习篇
实战项目学习
Kotlin部分:
基础部分
- 基本数据类型
- 数组
- 集合
- 函数
- 类 & 接口
- 扩展方法
- 空类型安全
- 智能类型转换
- …
高级部分
- 泛型
- 反射
- 注解
- 协程
计算机网络部分
- 五层网络模型
- http[请求头,响应体,三次握手,四次挥手等]
- https
- DNS
- Socket & WebSocket
- 浏览器访问一个url的过程
- Android技术应用【Andorid中能运用的网络知识点】
**如果觉得看起来比较麻烦,需要PDF版本,或是需要更多学习资料(大厂面试真题解析),都可以点击快速入手通道领取。希望我们每一位有追求的Android开发同胞都能进构建属于自己的知识体系!**也欢迎和我们一起学习交流!
35 岁以后:了解自己,把自己变现