程序员不断晋升的年薪
工作 3 年这个阶段的同学, 差不多是高级程序员了, 提升已经是很难了, 而且这个阶段的学习往往会比较多样化.
因为在前 3 年的过程中, 你肯定或多或少接触过一些其它的技术, 比如大数据, 分布式缓存, 分布式消息服务, 分布式计算, 软负载均衡等等. 这些技术, 你能精通任何一项, 都将是你未来面试时巨大的优势, 因此如果你对某一项技术感兴趣的话, 这个时候可以深入去研究一下. 这项技术不一定是你工作所用到的, 但一定是相关的.
而且在研究一门新技术时, 切忌朝三暮四. 有的同学今天去整整大数据, 搞搞 Hadoop,hbase 一类的东西. 过不了一段时间, 就觉得没意思, 又去研究分布式缓存, 比如 Redis. 然后又过不了一段时间, 又去研究分布式计算, 比如整整 Mapreduce 或者 storm.
结果到最后, 搞得自己好像什么都会一样, 在简历上大言不惭的写上大数据, 分布式缓存, 分布式计算都了解, 其实任何一个都只是浮于表面. 到时候面试官随便一问, 就把你给识破了.
因此在这个阶段, 你就不能再简单的去学习前 3 年的内容了, 虽然前面的学习如果还不够深入的话依旧要继续, 但这个时候你应该更多的考虑建立你的优势, 也可以称为差异性. 你前面三年的学习足够你成为一名基本合格的 Java 开发者, 但你离成为一名优秀的 Java 开发者还有很大的距离.
为了让自己有差异性, 你就需要另辟蹊径, 找一个方向深入研究下去, 以期在将来, 你能够成为这个领域的专家, 比如分布式计算领域的专家, 大数据领域的专家, 并发领域的专家等等.
此外, 你除了建立你的差异性之外, 还要去弥补你基础上的不足, 如果你的基础本来就非常强, 那么恭喜你, 相信你在之前的工作中已经充分体会到了这些基础对你的帮助. 但我相信大部分人的基础都很薄弱, 哪怕是科班毕业的人, 很多人也不敢说自己当初的基础学的多么强大, 比如算法, 计算机系统原理, 编译原理这些.
有了基础, 有了前面的工作经验, 你就可以去开拓属于你的领域了.
掌握系统化的学习方法
如果学习到的知识不成体系, 那么遇到问题时就会非常难解决. 有些同学会出现这些情况, 比如编码时遇到问题百度搜索, 如果百度上找不到答案, 这个问题就解决不了. 再比如, 在开发中要用到某个技术点, 就学习下 API, 程序调通后就不再深入研究, 浅尝辄止, 如果程序遇到其他问题也不知道如何解决.
如果你也想在 IT 行业拿高薪, 可以参加我们的训练营课程, 选择最适合自己的课程学习, 技术大牛亲授, 7 个月后, 进入名企拿高薪. 我们的课程内容有: Java 工程化, 高性能及分布式, 高性能, 深入浅出. 高架构. 性能调优, Spring,MyBatis,Netty 源码分析和大数据等多个知识点. 如果你想拿高薪的, 想学习的, 想就业前景好的, 想跟别人竞争能取得优势的, 想进阿里面试但担心面试不过的, 你都可以来, 群号为: 71859
以上情况我认为叫 点状学习 . 遇到一个问题, 解决一个问题, 需要一项技术, 学习一项技术. 那么如何由点到面, 由面到体, 形成系统化学习呢.
首先要确定学习的知识领域, 需要达成的学习目标, 针对目标制定学习计划, 就像你要写一本书一样, 先把目录写出来, 然后根据目录上的知识点逐步去学习, 最后把这些知识点关联起来, 形成一个系统化的知识体系. 学习的时候, 可以制定一个计划, 以周为单位, 比如第一周学什么, 第二周学什么.
比如我前几年在系统学习, 学习步骤是:
源码分析
高并发 / 高性能
高可用性 / 可扩展)
性能优化专题
团队协作效率
双十一电商项目实
来源: http://www.jianshu.com/p/9baf90edfed0