Java学到什么程度才能叫精通?
精通:透彻理解并能熟练掌握
看了精通的意思,可能很多人都不敢说自己真的精通Java!原因有2点:
- 精通这个词是不能乱用的,因为行业里总有你不会的。想想在自己的工作中,你没有问过他人Java相关问题吗?我相信工作中肯定都问过!
- 学无止境,何来精通?Java作为一门编程语言,它也在不断的变化,比如说从Java9-Java10,这不都是在不断的变化吗?
学无止境!
学习并不是一蹴而就的,在工作中我们肯定会遇到问题,这就需要我们去认真的学习,毕竟不学就不会,升职加薪神马的都说枉然!我们随意看看Java开发工程师的任职要求,就会发现要求会的还是蛮多的!
来看看这两个招聘信息,其实就涵盖了大部分Java开发工程师需要掌握的技能。
- Java开源框架:spring、springmvc、mybatis、hibernate等等
- 熟悉常见的数据库,并且有基本的应用能力,比如说:MySQL、oracle等
- 熟悉Eclipse、Tomcat、JDK、SVN运行环境的配置;
- 熟悉Maven的使用,理解Maven的原理与使用技巧
如何自学Java?
有多少小伙伴想自学Java或者是正在学Java的路上?你有一整套的学习方法吗?如果没有,这个肯定能帮到你!
这个学习线路图把每个知识点都涵盖进去了,可以查看大图!下面说分阶段的,配合视频学习!
第一阶段:
第二阶段
第三阶段:
第四阶段
第五阶段
希望能帮助到你呦。
很多人都会问:到底Java学到什么程度才能叫精通?
我只想说,码农千千万,你凭什么说自己精通Java?
自学Java的人不少,科班出身的也很多,但是到什么程度才有资格说自己精通Java?个人觉得至少需要经历以下几个阶段:重视代码品质,精益求精,这是技术开发的本质,也是程序员的立足之本
对处于还没工作或者工作1年左右这个阶段的人来说,看书是比较好的提升方式,推荐《Java编程思想》、《effective java》等。
需要注意的是,在看书的过程中一定要思考能否运用书中的经验来改善自己写的代码,运用到实处,比如看到final和static,想想自己代码中用的是否合理。
此外,还可以看些常用的开源框架,下面知识图谱可以借鉴:
打好基础后,主动跳出舒适区,不断扩大自己的技术视野
这一步比较难,因为很多人会被公司的技术和业务牵着走。比如公司当前的业务规模决定了技术上不需要分布式技术,很多人就不会去思考规模大了之后如何利用分布式技术来解决问题。这种时候,除了寻找更大规模的业务外,要时刻保持跳出当前层级和环境来思考的习惯。
比如,你只用了关系型数据库,有没有想过数据一直产生,到达TB级别的时候该如何快速检索与保存呢?
高性能架构技术栈
一切的一切,都要用到你的实战中去
有了互联网热点技术,一个真实的互联网项目可以让你把所学的热点技术由点到线,由线到面,将所有技术聚集到实战的环境,最终将技术点和项目实战真正变成自己的本领;享学课堂的老师们已经完成了B2C商城真实项目的设计与开发,课堂手把手带大家分析B2C项目的每一行源行及设计规范,让你对Nginx、 Redis、Docker、Mq等技术学而致用,用而不忘,具备独立的架构设计与开发能力。
高并发电商系统开发实战
扩展了知识宽度,还要加强自己的技术深度
很多人信奉“不去造轮子”,看似性价比很高的一句话,却不知道这句话是有前提的,那就是“你得知道轮子的内部结构”,否则就是自我麻痹。
接下来需要选择某一个或几个方面深入研究下去,构建自己的核心竞争力。一个有技术深度的程序员才是有灵魂的。而大厂也愿意为有趣的灵魂买单,这个时候看的就不仅仅是工资水平,更多的在于晋升和发展前景的广阔性。
技术的突破需要依赖业务场景的需求和自身刻意的规划学习,二者缺一不可。但前者是机会,往往不是自己能完全把控的,如果在工作中没有实践场景,最好的办法就是系统的学习与梳理,待机会来临时才能一展身手。
PS:
需要清晰系统图的可以关注我的主页!
希望我这些分享可以帮助在这个行业发展的朋友和童鞋们,在论坛博客等地方少花些时间找资料,把有限的时间,真正花在学习上,我的很多文章都有分享各种架构资料,相信对于已经工作和遇到技术瓶颈或者写博客码友,在我的主页一定都有你需要的内容。
四个阶段:
了解 掌握 熟悉 精通
了解是懂皮毛,停留在认知层次,不会用。
掌握是会用,也仅局限于应用,背后的原理可能不清楚,同类问题换个场景就搞不定了。
熟悉是会用但也清楚背后的原理,相关知识点能很快串联起来,但知识的深度和广度都有局限性。
精通就是至高境界了,深度和广度兼具,能够举一反三,基本没有这方面解决不了的问题,甚至可以创造性的解决。
无论哪个层次,都离不开两个字,就是基础!曾经总结过夯实基础系列的文章,可以参考下:
工作2年还是只会增删改查,Java程序员如何进阶?
做JAVA开发的三年一个坎,你应该庆幸你还有一年的时间可以用来提升,让自己不要后悔!
不过话说回来,在平时的工作中其实90%的工作量都是增删改查,或者是对增删改查的改进,那些所谓的高并发,多线程,高可用系统,分布式系统,负载均衡,缓存,数据库读写分离,分库分表等等全部都是围绕增删改查来做改进的!
比如说缓存是因为数据库的读写压力大的时候,为增加读写效率而引进的,使用缓存的内存读写代替了数据库的硬盘读写!
比如说数据库的读写分离或者分库分表都是在单点数据库的压力过大,性能低的时候引入的无论架构怎么设计都是为了得到更好的读写效率!
再比如说,高可用,分布式都为了避免单点服务出现异常,导致读写服务不可用,从而引入的集群部署或者分布式部署!
由此可见,增删改查是我们最核心的功能,只不过我们引入了其他的架构,完善我们的功能,让我们的增删改查更加的快速!
在实际的开发过程中,要多思考系统的瓶颈在哪?增删改查的压力在哪?怎么改进?不要网上搜一堆乱七八糟的,觉得很屌的东西,学完之后发现他根本不知道是做什么的,一切的开发围绕我们的业务来展开,然后才是增强体验性,搭建快速稳定的架构!
那我们应该怎么来进阶呢?
1,大局观:不要只是盯着自己开发的功能,要知道整个系统的整个架构是什么?使用什么技术?服务之间怎么通信?整个服务的性能怎么优化?全面的来考虑,不然晋升的肯定不会是你!
2,不要一心扑在公司的工作上,要有自己的时间去学习最新的技术,去拓宽自己的知识,明白别的公司用的是什么?主流开发技术开发是什么?
3,一定要多总结,不管是平时的工作中或者学习中都能学到很多有用的东西,要把它转化成demo记录在自己的技术文档里面,方便以后自己查阅和使用!不是做过就算了,一定要记录下来!
我晚上加班的时候,除非有急事,不然都学习自己的!然后才能感觉自己有很大的提升!我自己记录了很多做过的,学过的JAVA相关技术,以后会一直分享,需要的话请关注!

