java技术路线
第一阶段:Java基础
学习Java基础知识,可供选择的书很多,但它们大都有着一个缺点,那就是内容庞杂,有些内容脱离实际,甚至是过时。对此,在这一阶段,我精选了Java的基础知识,核心原则就是“有用”。并调整了章节顺序,从而有利于读者循序渐进的学习。关于学习资料,我建议阅读《Java核心技术 卷I》,并辅于上网搜索。
基础知识包括深入掌握计算机基础、编程基础语法,面向对象,集合、IO流、线程、并发、异常及网络编程。
当你掌握了这些内容之后,你就可以做出诸如:电脑上安装的迅雷下载软件、QQ聊天客户端、人事管理系统等桌面端软件。
第二阶段:数据库
目前各大公司最具价值的就是数据,而数据的保存基本上都是使用数据库技术。MySQL和Oracle都是广受企业欢迎的数据库管理系统。Java程序和数据库通信的最常见技术是JDBC,Druid 和 C3P0。
学习这些数据库技术后,可以应对日常工作的增删改查、复杂业务表结构设计规范、使用Java语言和数据库打交道。
第三阶段:前端技术
你可能会问作为Java程序员还需要学习前端? 其实目前各大公司基本上确实已经前后端分离了,但是想成为一名优秀的程序员前端技术你还是要了解的,避免和前端对接时埋下一些坑以及设计更优的解决方案等。
前端有三大基础技术分别为Html、CSS、JavaScript,这些学完后,为了做出更好、更炫的交互式体验效果,我们还需要学习jQuery、ElementUI、Vue、Ajax,以及打包工具webpack。
学完这些技术后,我们可以开发微信小程序、个人博客网站、移动端网站、开发类似淘宝天猫这样的网上商城简单版。
第四阶段:JavaWeb动态网页
掌握前端技术只能做静态网站,但它页面数据不会因业务而动态变化,而动态网站可以根据后端数据库中存储的数据实现不同的内容展示,应用更广泛,因此程序员必须要学会做动态网站。
使用Java做动态网站,我们需要学习Servlet、Filter、Session、Cookie、JSP、EL表达式、JSTL等做动态网站的完整知识体系,学完可研发出OA系统、内容网站、BBS等。
第五阶段:Java编程强化
前面学了JavaSE基础,但它在企业级应用中程序处理业务的效率并不高、扩展差,我们还要针对性的提高程序处理业务的执行效率、增强程序扩展性。就要学习设计模式、Java并发包原理、线程的内存模型、JVM调优等。
学完以后,能增加一个中级程序员的知识储备,无论在面试过程中还是将来技术的深入打一个良好的基础。
第六阶段:软件项目管理
公司开发都是团队协同开发,为更好的掌握实际开发,我们还需要学习常用的项目管理工具、版本控制工具、项目构建工具以及自动化部署工具。项目开发一定是有版本升级的,管理好项目进度和版本需要Git、Maven、Gradle、Jenkins、Sonar这样的系统平台。
学习完软件项目管理后,将掌握整个项目实际开发过程以及整个项目开发过程中所使用协同开发工具。
第七阶段:热门技术框架
Javaweb掌握后,已经具备企业中实际项目的开发能力了,但它开发效率低,代码量大,开发周期长、开发成本高。企业中广泛使用一些优秀的框架技术来解决上述问题,因此我们还需要学习框架技术,项目开发中主流的Java框架技术有SpringMVC、Spring、MyBatis、MyBatis Plus、SpringData等。
这些框架技术都是一个优秀程序员所必备的技能。
第八阶段:分布式架构
企业发展过程中,业务量和用户量逐渐增加,为了保证系统的可用性,系统越做越复杂,研发人员增多,大家很难共同维护一个复杂的系统,往往修改部分内容,导致牵一发而动全身,所以我们需要升级系统架构,需要用到分布式微服务的技术。
学习完该阶段内容,可以具备大型SOA架构和微服务架构能力,能掌握大型微服务项目必备技术和实际经验。
第九阶段:服务器中间件
在分布式系统架构中,服务与服务之间的异步通信,是非常常见的需求之一,消息中间件的诞生正是为了解决这类问题。目前市面上的主流消息中间件有RabbitMQ、RocketMQ、Kafka,我们将学习这3个消息中间件,实现分布式项目中的异步通信。
学习完这些后,可以实现分布式项目的异步通信、分布式应用日志收集、分布式事务等。
第十阶段:服务器技术
程序开发完成后,我们把它们打包部署到服务器中运行,所以我们需要学习常见的服务器技术,常见的服务器有Linux和Window server,Linux性能高,是当前主流。
我们写好的项目需要用一个软件运行起来,这个软件叫web容器,我们需要在服务器上安装web容器来发布项目,当前主流的web容器有tomcat、jetty、nginx、undertow。
第十一阶段:容器技术
具备了服务器操作系统及web容器,我们就可以部署单机的站点,在分布式系统中,几十上百的服务,如果使用单机这种部署方式,会投入很高的人力,同时出错的几率也大。所以服务器虚拟化技术Docker也称为如今的必备技术了,Docker可以帮助运维人员实行快速部署,批量维护.使用Kubernetes实现自动化部署、大规模可伸缩、应用容器管理。
第十二阶段:企业业务解决方案
企业开发中会遇到一些通用的业务场景,诸如:搜索引擎、缓存、定时任务、工作流、报表导出、日志管理、系统监控等,那么这些通用的解决方案也有现成优秀的免费开源中间件,可供使用。
诸如:ElasticSearch、Lucene、Solr、redis、MongoDB、slf4J、ECharts、Quartz、POI等。业务解决方案课程的业务方案和技术难点,解决了企业开发中90%以上的痛点和难点。
---------------------------------
---------------------------------
---------------------------------