不愧是Github疯传的腾讯Java进阶笔记,总结太全了,Java研发技术学习成长路线

移动互联网时代,IT 系统变得愈加复杂,对我们程序员的要求也是越来越高,技术不断更新,我们还不能停止学习,停下来了就会被打上一个‘不合格的程序员’的标签,如何成为一位「不那么差」的程序员?「不那么差」的程序员又需要掌握一些什么知识呢?这篇文章就与大家聊一聊这个话题。
以下内容仅代表我从业以来所积累的相关经验,不对不全的地方还请大家海涵,下面我会从硬技能、软实力这些方面尽量阐述我所认为的 “不那么差的程序员” 应当做到哪些技能。
作为一名码代码的程序员,怎么说干的还是技术活。既然是技术活那专业实力就得过硬,下面我会按照相关类别谈谈我们应该掌握哪些东西。
计算机基础
主要需要掌握网络与操作系统方面相关的知识(这些知识前期是比较枯燥的)但只要你还在做计算机相关的工作,这些都是绕不开的,当哪天这些知识不经意的帮助到你时你会庆幸当初正确的选择。
数据结构与算法
数据结构与算法
这块当初在大学时也是最不受待见的一门课程,也是我唯一挂过的科目。
记得当时每次上课老师就让大家用 C 语言练习书上的习题,看着一个个拆开都认识的字母组合在一起就六亲不认我果断选择了放弃。这也造成现在的我每隔一段时间就要看二叉树、红黑树、栈、队列等知识,加深印象。想学习交流HashMap,nginx、dubbo、Spring MVC,分布式、高性能高可用、MySQL,redis、jvm、多线程、netty、kafka、的加尉xin(同英):1253431195 扩列获取资料学习,无工作经验不要加哦!
这一块内容可能会在应届生校招时发挥较大作用,在工作中如果你的本职工作是 Java Web 开发的话,这一块涉猎的几率还是比较低。不过一旦你接触到了模型设计、中间件、高效存储、查询等内容这些也是绕不过的坎。
Java 基础
Java基础则是走向Java高级的必经之路。
实际工作中高频次的东西有以下几点
基本容器
IO、NIO
常见的设计模式
Java多线程
良好的单测习惯
多线程并发内容
有了扎实的基础之后就要了解多线程、并发相关的内容了。
会用了之后也要考虑为啥多线程会出现的问题,这时就需要理解内存模型、可见性之类的知识点。同样的解决方式又有哪些?各自的优缺点也需要掌握。
JVM 虚拟机
想要深入 Java ,JVM 是不可或缺的。对于大部分工作 1~3 年的开发者来说直接接触这一些内容是比较少的,到了 3~5 年这个阶段就必须得了解了。
JVM内存划分,知道哪块内存存放哪些内容;线程安全与否;内存不够怎么处理等
不同情况的内存溢出、栈溢出,以及定位解决方案
分代的垃圾回收策略。
线上问题定位及相关解决方案
一个类的加载、创建对象、垃圾回收、类卸载的整个过程
以上问题都是我们需要掌握的
数据库
做WEB应用开发的老哥肯定要和数据库打不少交道,而且通常来说一个系统最先出现瓶颈往往都是数据库,说数据库是压到系统的最后—根稻草—点也不为过。想学习交流HashMap,nginx、dubbo、Spring MVC,分布式、高性能高可用、MySQL,redis、jvm、多线程、netty、kafka、的加尉xin(同英):1253431195 扩列获取资料学习,无工作经验不要加哦!
所以对数据库的掌握也是非常重要。以MySQL数据库为例,这三点必须知道:
索引的数据结构及原理、哪些字段应当创建索引
针对于一个慢SQL的优化思路
数据库水平垂直拆分的方案,需要了解业界常用的MyCAT、sharding-sphere等中间件
分布式技术
随着互联网的发展,传统的单体应用越来越不适合现有场景。因此分布式技术出现了,这块涵盖的内容也很多很广,至少一些像CAP定理什么的这些基本理论还是要知道。
最后当然就是要懂一点架构了
相信程序员都有一个架构师的梦想。
要成为一个架构师,就上面列举的样样需要掌握,底层到操作系统、算法;上层到应用、框架都需要非常精通。(PPT 架构师除外)
俗话说:种一棵树,最好的时间是十年前,其次是现在。如果你现在还不是技术大牛,就不应该停止学习,至少在这个技术不断更新的时代,不会让后浪拍的太惨,前段时间我在腾讯工作的老哥私下传我一份他们内部的程序员全栈知识点进阶笔记,里面的内容真的非常全面,市面上很少会见到这么全的笔记,差距不止一点点。

Java研发技术学习成长路线

作为一名Java研发者,深感Java技术的学习是一个漫长过程,从一名Java菜鸟开始,加之持之以恒的耐心和脚踏实地的精神,不间断理论的学习,不停止技术实践,终成为一名技术佼佼者。引用一句名言,就是:“古今之成大事者,不惟有超世之才,亦必有坚韧不拔之志。”

鉴于个人心得体会,把Java技术学习路线暂分成以下五个阶段,每一阶段会涉及到很多其他的相关技术,五个阶段学习顺序不一定完全遵循,但可根据自身学习进度进行相应调整。

不愧是Github疯传的腾讯Java进阶笔记,总结太全了,Java研发技术学习成长路线_第1张图片

在开始介绍五个阶段之前划定一下学习要求用词

**精通:**深入的研究和认识,很好的问题解决能力;

**熟练:**具备系统的知识和应用能力,较好完成相关工作;

**掌握:**具备基本知识结构,可以运用完成相关工作;

**理解:**初步认识,有相关学习经验。

第一阶段:JavaSE从入门到高级

这个阶段是所有Java入门学习者必经阶段,也是入门阶段,一定要多花时间,夯实基础。精通Java基础知识;精通面向对象;熟练常用工具API;熟练IDE工具使用;想学习交流HashMap,nginx、dubbo、Spring MVC,分布式、高性能高可用、MySQL,redis、jvm、多线程、netty、kafka、的加尉xin(同英):1253431195 扩列获取资料学习,无工作经验不要加哦!

掌握和理解Java高级。

不愧是Github疯传的腾讯Java进阶笔记,总结太全了,Java研发技术学习成长路线_第2张图片

第二阶段:JavaEE之JavaWeb

这个阶段是所有已经学习过Java基础知识,想要继续学习B/S应用开发学习者必经第2阶段,也是JavaWeb入门与深入阶段,更加需要花大量时间,夯实基础,才能在后续开发框架的学习中如鱼得水,本阶段学习要求:掌握JavaWeb前端基础HTML,CSS;熟练JavaWeb前端基础JavaScript、jQuery;精通JavaWeb基础Servlet相关技术;精通JavaWeb进阶Jsp相关技术;掌握JavaWeb高级相关技术;精通JavaWeb之JDBC相关技术。

不愧是Github疯传的腾讯Java进阶笔记,总结太全了,Java研发技术学习成长路线_第3张图片

第三阶段:JavaEE之主流开发框架

这个阶段是所有已经学习过Javaweb基础技术的开发者,想要继续学习B/S应用开发主流框架学习者必经第3阶段,只有能够熟练运用这些开发框架,才能够更好的胜任日常工作中的开发,当然也是对自身技术实力的一种扩充,可以说是Java后端开发者的必备技能。本阶段学习要求:熟练运用Struts2;精通Spring;精通SpringMVC;熟练Hibernate;熟练Mybatis;熟练Maven;熟练SSH框架和SSM框架;想学习交流HashMap,nginx、dubbo、Spring MVC,分布式、高性能高可用、MySQL,redis、jvm、多线程、netty、kafka、的加尉xin(同英):1253431195 扩列获取资料学习,无工作经验不要加哦!

不愧是Github疯传的腾讯Java进阶笔记,总结太全了,Java研发技术学习成长路线_第4张图片

第四阶段:JavaEE之其他开发框架与技术

这个阶段中提到的其他框架技术,是日常工作所进行的项目中会用到的一些技术框架,虽说学习技术在精,但是在精通常规技术的同时能够熟练运用一些开发的框架,会让自己有更加充实的感觉。这阶段的要求是熟练运用Mongdb,Oracle,Bootstrap,Easy Ui,其他技术框架能够掌握即可,在使用的时候多查资料。

不愧是Github疯传的腾讯Java进阶笔记,总结太全了,Java研发技术学习成长路线_第5张图片

第五阶段:JavaEE之高级进阶篇-分布式框架

这个阶段一般是针对参加工作2-3年以后,想要在技术上继续深造,可以选择1-2个方向深入研究下去,切记只浮于表面,要知道想要某一门技术成为你的技术优势,你对这门技术的掌握程度要超过绝大部分人才行,要想与众不同,体现出与别人的差异性,你要选择一个感兴趣或者擅长的领域深入钻研下去,成为该领域的专家,那时的你才算是优秀的,不可替代的。想要成为分布式缓存框架的专家,你就应该先研究国内外主流的缓存框架,这一般需要较长时间,最终能够推出自己的缓存框架作品,独挡一面,这才是领域专家。想学习交流HashMap,nginx、dubbo、Spring MVC,分布式、高性能高可用、MySQL,redis、jvm、多线程、netty、kafka、的加尉xin(同英):1253431195 扩列获取资料学习,无工作经验不要加哦!

不愧是Github疯传的腾讯Java进阶笔记,总结太全了,Java研发技术学习成长路线_第6张图片

技术研究的道路漫漫修远,合理规划自身的发展路线,有较清晰明确的人生规划,我相信每一个坚持不懈,积极进取的人都可以实现自己的梦想,成为赢家。

你可能感兴趣的:(java,github,spring,spring,boot,intellij-idea)