这篇文章, 跟大家聊一聊很多很多很多人问我的一个问题: 中小公司的 Java 工程师应该如何规划准备, 才能跳槽进入 BAT 这类一线互联网公司?
80% Java 工程师都有的迷茫
国内 Java 工程师至少好几十万, 但是在国内互联网大厂里干过的码农可能也就十分之一, 或者五分之一的比例. 其实少部分人在大厂里干过, 发展的很好. 但是大部分人还是在中小型公司, 或者外包类传统 IT 公司里工作.
这些人可能对自己的技术成长, 职业发展感到非常的迷茫, 自己有点追求, 也想去一下大厂, 但是又不知道怎么规划.
我相信以下情形很多人应该都有类似体会: 一直徘徊在各种中小公司里开发一些没技术难度的 Java 系统, 主要就是 CRUD.
哪怕是用了用 MQ, 缓存, 分库分表, 但是也没什么并发量, 数据量也不算特别大, 自己的技术成长极为缓慢.
然后就是三五年, 七八年, 甚至十多年, 职业发展和技术水平都停滞在这个状态, 无法有更进一步的发展.
随着现在寒冬到来, 到处裁员, 中年码农的危机, 加不动班, 体力越来越差, 孩子压力越来越大, 对自己何去何从很迷茫.
有一些人是一直徘徊在那种中小型互联网公司里碰到上述情况, 有一些同学是在一些外包类的 IT 公司里碰到上述情况.
你的技术为啥十年八年都无法进步?
先来搞清楚一个问题, 你的技术到底为什么十年八年都无法进步?
拆解一下, 你的能力集中在哪几块:
技术广度
对 MQ, 缓存, NoSQL, 大数据, 高并发, 高可用, 微服务, 等一系列的相关技术都有一定的了解, 熟悉常见功能
在自己的项目里落地使用过, 有一定的技术使用经验, 这可以解释为技术广度.
技术深度
读过 Kafka 的底层源码?
对消息中间件的架构设计思想有深刻的理解?
对分布式事务框架 / 中间件的架构设计有过研究?
在每秒百万并发场景下做过底层系统的深入优化和故障处理?
如果你有类似这种过人之处, 那么你才能说你有某些技术深度.
项目经验
你有没有整体负责过几亿注册用户, 几千万日活用户的大规模, 高并发, 分布式, 高可用, 高复杂度的系统架构设计?
或者你负责的一直都是那种公司内部使用的, 几十个人用的 OA 系统, CRM 系统?
这些就是你的项目经验
团队管理
你在互联网公司里带过 20 的团队?
或者你在一个传统 IT 公司里带过 3 个人的小组?
这都是你的团队管理经验.
拆解过后, 再来看看, 如果你在一些小型互联网公司, 或者是做一些传统软件开发, 为什么技术无法进步?
其实道理很简单, 可能你的公司推出了一款 App, 但是不好意思, 用户量总共就 100 万, 日活用户就 10 万人.
来源: http://www.jianshu.com/p/ccc3e68fc3a9