自学Java的人不少,科班出身的也很多,但是到什么程度才有资格说自己精通Java?个人觉得至少需要经历以下几个阶段:
1.重视代码品质,精益求精,这是技术开发的本质,也是程序员的立足之本。
对处于还没工作或者工作1年左右这个阶段的人来说,看书是比较好的提升方式,推荐《Java编程思想》、《effective java》等。需要注意的是,在看书的过程中一定要思考能否运用书中的经验来改善自己写的代码,运用到实处,比如看到final和static,想想自己代码中用的是否合理。
此外,还可以看些常用的开源框架,如果你用的是Spring框架等,那么下面知识图谱可以借鉴:
Spring框架知识结构
2.打好基础后,主动跳出舒适区,不断扩大自己的技术视野。
这一步比较难,因为很多人会被公司的技术和业务牵着走。比如公司当前的业务规模决定了技术上不需要分布式技术,很多人就不会去思考规模大了之后如何利用分布式技术来解决问题。
这种时候,除了寻找更大规模的业务外,要时刻保持跳出当前层级和环境来思考的习惯。比如,你只用了关系型数据库,有没有想过数据一直产生,到达TB级别的时候该如何快速检索与保存呢?
高并发和分布式技术脑图
3.扩展了知识宽度,还要加强自己的技术深度。
很多人信奉“不去造轮子”,看似性价比很高的一句话,却不知道这句话是有前提的,那就是“你得知道轮子的内部结构”,否则就是自我麻痹。接下来需要选择某一个或几个方面深入研究下去,构建自己的核心竞争力。
一个有技术深度的程序员才是有灵魂的。而大厂也愿意为有趣的灵魂买单,这个时候看的就不仅仅是工资水平,更多的在于晋升和发展前景的广阔性。
技术的突破需要依赖业务场景的需求和自身刻意的规划学习,二者缺一不可。但前者是机会,往往不是自己能完全把控的,如果在工作中没有实践场景,最好的办法就是系统的学习与梳理,待机会来临时才能一展身手。
欢迎工作一到五年的Java工程师朋友们加入Java高级架构:790147974
群内提供免费的Java架构学习资料(里面有高可用、高并发、高性能及分布式、Jvm性能调优、Spring源码,
MyBatis,Netty,Redis,Kafka,Mysql,Zookeeper,Tomcat,Docker,Dubbo,Nginx等多个知识点的架构资料)
合理利用自己每一分每一秒的时间来学习提升自己,不要再用"没有时间“来掩饰自己思想上的懒惰!趁年轻,使劲拼,给未来的自己一个交代!