赞
踩
36岁生日这天,我失业了。
前年,我从华为外包辞职,去了一家深圳一家创业公司。公司主营项目是借贷app开发。本想着能撑两年,结果一年不到,国家管控金融,资金链断裂,公司倒闭。
记得去创业公司时,我的朋友觉得这个选择有风险,外包更加稳定,“基本跟事业单位一样。”
但也是源于稳定,让我感到了不安。
来华为外包前,我同样在一家小型科技公司做了6年。和大部分频繁跳槽的程序员相比,我其实还算是“定力很强”。
小公司团队氛围好,工资待遇也不差,但技术焦虑一直裹挟着我。六年里,他写代码全靠网上自学,缺少技术交流氛围,“没人告诉你写的怎么样。”
我觉得可以用这一种具象的表达来描述自己的代码水平,“别人去南山,可以直达,我可能要绕到龙岗和福田,再到南山。”
来华为外包,原本是希望解决技术焦虑的一根稻草,“做大项目,学新技术。”
可现实是,我在公司过着朝九晚九的生活,偶尔新版本需要测试,还需要通宵赶工。
“技术一点没学到,就学了一堆办公室政治。”
上文就源于我的一位网友和我沟通的真实案例。我开通自媒体账号这几年来,接触到的一线开发可谓数不胜数。这些人向我提过很多问题,技术问题有之,职业规划有之,撩妹脱单有之(虽然我都解答不了…),但出现频率最高的,却还是这些问题:“我可以写代码一辈子吗?”、“我已经三十多了,依旧只能写代码,还要继续下去吗?”、“某司程序员 34 岁就被下岗了,我马上就三十了,怎么办?”
作为一个同样即将迈入中年,我来分享我的经验,以飨读者朋友。仅代表个人观点,如果你有不同看法,欢迎评论留言,特此声明。
在我还是 25 岁的时候,我和很多程序员一样,其实有同样的担心,老了以后怎么办?写代码难道还能写到 30 岁?
当我 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接口原理解析
JsonJava虚拟机原理篇
垃圾回收器机制
内存分配策略
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 ServiceAndroid组件内核篇
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 & 第三方内核
FlutterAndroid项目学习篇
实战项目学习
Kotlin部分:
基础部分
- 基本数据类型
- 数组
- 集合
- 函数
- 类 & 接口
- 扩展方法
- 空类型安全
- 智能类型转换
- …
高级部分
- 泛型
- 反射
- 注解
- 协程
计算机网络部分
- 五层网络模型
- http[请求头,响应体,三次握手,四次挥手等]
- https
- DNS
- Socket & WebSocket
- 浏览器访问一个url的过程
- Android技术应用【Andorid中能运用的网络知识点】
**如果觉得看起来比较麻烦,需要PDF版本,或是需要更多学习资料(大厂面试真题解析),都可以点击快速入手通道领取。希望我们每一位有追求的Android开发同胞都能进构建属于自己的知识体系!**也欢迎和我们一起学习交流!
35 岁以后:了解自己,把自己变现
毋须讳言的是,35 岁以后你的一线 coding 能力一定是下降的,你写代码绝对不如 25 岁的程序员快,效率高。但是这不重要,因为编程只是你整个武器库当中相对最不重要的了,你的经验,你的视野,你的架构能力,你的管理能力,你分析和解决问题的能力已经远远不局限于技术这个领域。
30-35 岁这个阶段,最关键的是了解自己。知道自己擅长什么,自己的优势在哪里,怎样才能够最大化自己的价值,同时也知道自己有什么缺陷,怎样避开做自己不擅长的事情,不勉强自己,不让自己处于对自己不利的环境,这是人生的智慧。
一个人能够客观的认识自己是非常困难的,很多人终其一生都没有活明白,既不知道怎样发挥自己的天赋,也拒绝承认自己的缺陷。在 35 岁以后,要接受一个不完美的自己,知道怎样扬长避短,最大化个人价值。能够做到这一步的程序员,人到中年完全不是程序员生涯的终结,反而会走向个人事业的巅峰。
成长为核心业务的核心骨干?
成长为技术管理层?
转型业务专家,转型做业务咨询顾问?
转型产品经理,产品总监,走产品线?
这些都可以,都是一些具体的职业发展道路的选择问题。然而无论选择,只要你始终保持开放的学习心态,不断积累知识和经验,构建个人的知识体系,磨练自己的思考能力,并且时常自省,中年对你来说完全不是危机,而是巅峰。
「程序员能纯靠技术渡过中年危机吗?」这个问题,我和很多程序员交流过大家的看法,绝大多数程序员都认为纯靠技术渡过中年危机不现实,有这样技术实力的人永远都是少数。至于怎么用常人能落地的手段去做一些尝试,我在上面的经历可以作为参考。当然你有好的建议和想法,欢迎在评论区分享交流!
有一位程序员从前辈那得到的点拨我觉得非常有见地,最后再 share 给大家:
“你思路要开阔点,一个项目成功可不仅仅是写代码这么简单。你也做过很多项目效益分析,你自己想想,有几个项目是真的死于技术不行的。如果老板期望过高呢?如果给的资源不够呢?如果其他部门不配合你呢?你做精准营销,人家一线销售根本不鸟你,你怎么精准?如果你能从结果出发,倒推做成项目需要什么。用这些分析去影响业务部门,岂不是比别人挖好了坑,自己边骂边填更好?”
本文在开源项目:https://github.com/Android-Alvin/Android-LearningNotes 中已收录,里面包含不同方向的自学编程路线、面试题集合/面经、及系列技术文章等,资源持续更新中…
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。