有一类 java 程序员是这样的, 每天增删改查, 坐吃等死状态, 每天就期待下班. 但是心里总觉得这样下去要完, 不知道怎么改变这种情况? 想学点东西, 比如看 jvm, 并发这些书, 看了一部分就放弃了, 过段时间又忘记了, 好迷茫. 专注力不够. 平时工作就是改改 bug, 做做公司产品. 公司用的是很老的技术并且源码被加密(想看源码都不行), 一些大牛我刚混熟他们就跳槽了.
那么如果你在这种环境下呆了很久, 终于意识到自己这样待下去会毁了自己. 环境, 团队氛围, 和跟对一个老鸟都很重要, 现在都不敢去跳槽(自己以前会的东西都忘了), 不断审视自己, 很想改变自己, 那么请看完这篇文章, 望大家能从中收获, 改变自己(希望不晚).
改变第一
你是否有强烈的想要改变现状的欲望, 看了前面, 显然你已经有了, 然后你就要付诸行动, 工作 2 年, 年龄比我还要小, 而且你计算机知识积累也一定是比我好的; 然后你想要达到多少的薪水你就要知道这个薪水的人具备那些能力, 你可以去看看招聘信息, 也可以去尝试先去面试, 这样你就知道自己还差什么, 然后你就要针对性的努力, 加油!!!
改变第二
你已经意识到每天增删改查, 这样不会进步, 这已经是一种觉醒, 是改变的开端了.
1. 我一直认为编程这一工作, 如逆水行舟不进则退. 技术不断更新, 题主可以设想一下, 万一公司遇到危机裁员, 你是不幸中枪的那一个, 你之后的工作该怎么找?
2. 因为你混日子的状态已经持续了三年, 身体和思维也许已经形成惯性. 所以想短期内迅速改变是非常困难的. 不要给自己定非常宏大的目标, 妄想几个月内突破自我.
3. 既然不能迅速改变, 那你能做的只有循序渐进. 在一开始给自己定一个小任务, 完成之后及时对自己精神鼓励. 比如, 今天开始看十五分钟书, 达成目标后需要告诉自己已经实现了一小步, 继续保持并且让自己享受成就感. 此后每天逐渐增加看书的时间, 劳逸结合也非常重要.
4. 千万千万不要和别人比较, 因为和特别优秀的人巨大差距给你带来的落差和失落感会让你备受挫折, 此时你选择的就是逃避现实, 继续混下去.
5. 偶尔没有达成目标也不要气馁, 因为人不是机器, 都是会懈怠的. 你只需要知道, 你需要战胜的是昨天的自己, 过去的自己, 而不是其他任何人.
6. 因为不知道你现在的水平如何, 所以没法在学习内容上给出更多的建议. 如果题主有补充的话我觉得可以邀请一些水平高的 java 程序员来回答.
树立一个系统的学习路线!
据不完全统计, 截至目前为止, 中国 Java 程序员的数量已经超过了 100 万. 而且, Java 程序员面临的竞争压力越来越大. 那么, 作为一名 Java 程序员, 怎样努力才能快速成长为一名高级的程序员或者架构师, 或者说一名优秀的高级工程师或架构师应该有怎样的技术知识体系, 这不仅是一个刚刚踏入职场的初级程序员, 也是工作三五年之后开始迷茫的老程序员, 都必须要面对和想明白的问题. 为了帮助大家少走弯路, 我总结出一个 Java 程序员的工作 2-5 年成长路线图.
框架源码解读
我认为有三个维度来说明: 这个框架是为了解决什么问题而诞生的? 这个框架的核心思想是什么? 这个框架适合应用到哪些场景? 说到思想, 我觉得编程的灵魂就是思想, 没有思想的编程和咸鱼没什么区别."不要重复造轮子", 当时听了赶脚这句话挺高大上的, 现在我认为这句话只能在某一方面是正确了.
首先我来说一下为什么要学会造轮子 -- 因为你会造轮子后, 用别人的轮子时才会明白其原理, 用的时候才会得心应手, 如果你对一个框架的理解只是停留在用, 用的多熟练的阶段的话, 那么你就是一个 "码畜", 别人随时可以替代你. 或许有人会说, 项目时间紧根本不允许你写一个轮子, 你写的还有那些大牛们写的好吗等理由反驳. 但我想说的是: 我没说项目中非得用自己写的轮子, 自己写的轮子不一定要和别人比, 因为造轮子的目的是要理解这些轮子的思想.
说这么多其实就是想告诉大家学习框架要理解框架的底层的原理, 要掌握的就是最常用的原理.
JVM 与性能优化
JVM 作为 Java 语言的基础, 虽然平时工作中真正运用到的时候可能并不多, 一个程序员想要上升到高级层次, 那就必须知道 Java 到底是怎么运行的, 这就逃不开 JVM. 想要告别增删改查和简单开发, 而是去做 Java 性能分析和调优工作, 那么, Java 虚拟机绝对是一把助力的利剑. 学习 Java 虚拟机的原因, 本质是让你了解 Java 程序是如何被执行且优化的. 这样一来, 你才可以从内部入手, 达到高效编程的目的. 同时, 你也可以为学习更深层, 更核心的 Java 技术打好基础.(缩略图, 文末有源文件笔记领取)
分布式架构
近年来随着服务体系的不断庞大以及用户量的迅速增长, 传统单一应用架构已经无法满足我们系统的需求, 尤其是大型互联网系统的快速发展, 各种灵活多变的系统架构模型层出不穷. 分布式的处理方式越来越受到业界的青睐 -- 计算机系统正在经历一场前所未有的从集中式向分布式架构的变革. 同时分布式也成为 Java 程序员面试不可缺少的一部分知识, 尤其是对现在工作 2 到 5 年的工程师来说分布式无疑不是一项加分技术.
微服务架构
虽然很多文章都说微服务架构是复杂的, 会带来很多分布式的问题, 但只要我们了解这些问题, 并找到解法, 就会有种拨开云雾的感觉. 微服务架构也不是完美的, 世上没有完美的架构, 微服务架构也是随着业务, 团队成长而不断演进的. 最开始可能就几个, 十几个微服务, 每个服务是分库的, 通过 API Gateway 并行进行服务数据合并, 转发. 随着业务扩大, 不断地加入搜索引擎, 缓存技术, 分布式消息队列, 数据存储层的数据复制, 分区, 分表等!
总结
不管是学什么技术, 最终都需要你进行归纳, 整理, 才能把所学的东西变为自己的. 工作为什么要写日志, 平时学习为什么要写博客, 其实就是在构建自己的知识体系. 在学习的过程中多做笔记, 多做总结, 习惯一旦形成, 久而久之, 便会印在你的脑海里, 你下次再被问到这一问题时, 你就可以用自己之前总结过的内容来回答.
读者福利(学习分享)
对于很多初级 Java 工程师而言, 想要提升技能, 往往是自己摸索成长, 不成体系的学习效果低效漫长且无助.
整理的这些架构技术希望对 Java 开发的朋友们有所参考以及少走弯路, 本文的重点是你有没有收获与成长, 其余的都不重要, 希望读者们能谨记这一点. 同时我经过多年的收藏目前也算收集到了一套完整的学习资料, 希望对想成为架构师的朋友有一定的参考和帮助.
下面是部分资料截图, 诚意满满: 特别适合有 1-5 年开发经验的 Java 程序员们学习.
资料免费领取方式: 加入合作 Java 架构交流 Qqun:935692859, 管理员处免费领取资料.
而针对以上面试技术点, 我在这里也做一些技术知识面试专题资料 (包括 Dubbo,Redis,Netty,zookeeper,Spring cloud, 分布式, 高并发等架构技术资料) 免费分享, 希望能更好的帮助到大家.
资料免费领取方式: 加入合作 Java 架构交流 Qqun:935692859, 管理员处免费领取资料.
来源: http://www.jianshu.com/p/e1e40c38bd3a