引言
自己今年 32 岁,2 年 iOS 开发经验,4 年 JAVA 开发经验,已迈入大龄程序员的标准了。iOS 可以忽略不计了,水硕毕业后(这也是经验不多,但年龄大的原因),一直在做 Java 开发,看上去 4 年挺多了,但前面 1 年基本只是入门,实际上自己对 Java 的底层了解并不多,而现在公司在从 Java 转 Go,如果下一份工作还是 Java 相关,这并不是件好事。
最近在反思自己,这些年的开发工作给自己带来了什么,仔细一想,亮点几乎没有,问题却有一堆:
- 投入精力做业务,技术深度不够,对原理的理解局限于较浅的层次;
- 视野不够开阔,局限于自己所做的营销业务线,对其它关联业务线(比如商品、交易等)了解不够;
- 思维不够开阔,大部分时间投入在开发和测试上,对运维、产品、业务、商业层面思考都思考极少;
- 缺乏管理经验,年龄偏大;这两项劣势我一度低估,但逐渐凸显出来。
职业竞争的基本法则是稀缺性和差异化。能够解决大型项目的架构设计和攻克技术难题,或精通某个高端技术领域,是稀缺性体现;而能够做事能做到缜密周全精细化,有高并发大流量系统开发经验,是差异性体现。
稀缺性是上策,差异化是中策,而降格以求就是下策了。
我缺乏【稀缺性】优势,但略微一点【差异化】优势:
- 对每一份工作都很踏实,有一点中厂光环,虽然不一定有用;
- 坚持写博客,时常思考记录开发中遇到的问题及解决方案;
- 做事认真严谨,能够从整体分析和思考问题,也很注重基础提升,虽然距离大牛还很远,但已经有很大的提升;
- 对工程质量、性能优化、稳定性建设、业务配置化设计有实践经验;
思想实验
做个思想实验,假如我是面试官,我会怎么去了解面试者呢?这样的目的是自己作为面试者,应该怎样才能让面试官了解自己。
人生或许很长,但面试的时间很短,大部分都在一小时左右。别人如何在短短一小时内,清晰地认识长达三十多年的自己呢?这就需要做大量细致的准备工作了,台上一分钟,台下十年功。
准备工作主要包括简历准备、个人介绍、公司了解、技术探索、表述能力、常见问题等。通过这些点,其实就能对自身和对外部世界进行一次全面深入的重新认知。
回顾
回想一下自己这 4 年来的工作经验,发现能拿得出手的闪光点几乎没有。前期处于学习阶段,注重在业务需求上,但完成业务需求只能说是分内之事;中期开始逐渐对系统进行优化,虽然每次优化效果都很好,但不成体系,优化点也比较零散;后期开始成为一些子模块的负责人,但现在转到商品组,又要重新开始。
再想想对整体项目的理解,例如目前是什么样的架构,能支撑多少的并发,核心接口的 QPS 是多少,为什么要用某个技术,为什么不用另一个技术等等,这些问题在工作中都遇到过,都见过,但能说出来多少呢?如果不是项目负责人,很少会从整体去看,每天都写代码,却不知道项目整体。只见树木,不见森林。这些都是作为大龄程序员的我,在我在公司所学到的,这可能是我为数不多的优势吧。
总结
整个过程反思过程,实际上也是学习的过程。持续的反思和提炼、学习新的内容、重新认识自己和过往经历等,时刻准备着,才能在机会到来时抓住机会。