1.写在前面
今天是2021年10月24日,在这里呢,首先祝天下万千程序员节日快乐啦!!!希望今天的程序员可以更加轻松、没有加班,同时也希望万千程序员的代码没有bug(em....你在说屁呢???)。哈哈哈,张起灵再次祝——全世界——程序猿/媛——节日——快乐!!!😄😄😄
2.这一年感谢有了你们!!!
好了,下面我们言归正传,来聊聊这篇文章想和大家分享点什么。
首先呢,走到2021年10月24日,回顾2021这一路走来,自己成长了很多、进步了很多、学到了很多。从今年2月份开始学习Java在企业中热门的技术,到现在不知不觉已经半年多了(大概就7个多月吧。。。),在这段时间中,我在学到Spring AOP的时候有想过放弃、在学Docker的时候心比较乱、在学Spring Cloud的时候感觉整个就学废了。。。唉,但是回过头想想,既然坚持要走这个方向(计算机👉 IT编程👉软件开发👉 Java后端),就不要那么轻易的去放弃,你以为刚上来月薪过万是很容易的嘛?
真的要去坚持、要敢于去拼去战斗,毕竟易大师说过:集中起来的意志可以击穿顽石;宝石骑士也告诫我们:我曾踏足山巅、也曾跌落低谷,二者都使我受益良多。在我想要放弃、要退缩的时候,为了平复心态、改变自己,就会去打打LOL、选择了这些英雄听到了他们的台词,内心真的被触动了。还有就是,每当我发布了一篇新的文章,都会有一定的浏览量、也会有很多朋友关注我、为我点赞、收藏我的文章,我想我的文章或许能够帮到你们学习Java中的一些技术,同时你们的关注点赞则是对我的肯定和鼓励!!!这里真的由衷的感谢你们💖💖💖、由衷的感谢你们💖💖💖、由衷的感谢你们💖💖💖
3.学到了什么?
上面说说说,,,说的有点煽情了,看不下去的朋友们估计已经点了返回了,哈哈哈。。。下面我就给大家分享一下我这半年多都学到了Java中哪些知识!!!
· 在此之前,大家要有数据库的知识储备,因为Java中操作数据库太频繁了,一般来说就是MySQL啦!!!这里你肯定要掌握CRUD的编写方式、连接数据库、建库建表、连接查询、字符集设定等等,关于这个,大家可以参考我的这个分类专栏:张起灵学MySQL
· 然后大家就可以学JavaSE了,这个就是Java的标准版(Java数据类型、OOP三大特性、抽象类、接口、常用API、String、泛型/集合、I/O流、内部类、JDBC、多线程、反射等等),学好这部分,走下面的阶段会更加的稳固,关于这个,大家可以参考我的这个分类专栏:张起灵学JavaSE
· 这个时候推荐大家可以去学一下Web前端三兄弟:HTML、CSS、JavaScript,因为到后面是少不了写前端代码、和前端页面做整合的。关于这个,大家可以参考我的这个分类专栏:张起灵学HTML/CSS/JavaScript
· 搞定了JavaSE,下面要学一个东西叫JavaWeb,它其中主要就是Servlet、request/response请求响应对象、重定向/请求转发、监听器、过滤器、JSP、Ajax、jQuery、MVC等等,这部分其实是为后面的框架学习打基础的,关于这个,大家可以参考我的这个分类专栏:张起灵学JavaWeb
· 学完JavaWeb之后,我们都知道当下比较火的一个东西叫框架,而框架其实可以说是在JavaWeb开发繁琐、不便的情况下,又做了新的、更强大的整合,但是在学框架之前,我们要先学另外一个东西:Maven,它是一个项目管理工具(管理jar包、管理依赖版本号等),能够帮助我们更快速搭建项目整体架构,关于这个,大家可以参考我的这个分类专栏:张起灵学Maven
· 拿下Maven之后,下面就开启框架之旅了,我们都知道很早以前有一个牛逼的框架组合体叫SSH(Spring + Struts + Hibernate),具体的我也没详细了解,只是听说目前企业里基本不用了,用的更多的就是SSM、SpringBoot、SpringCloud这些,那么在Maven之后要学的就是SSM(Spring + SpringMVC + MyBatis)了,它们分别对应了JavaEE开发中的三层架构:业务逻辑层、界面/视图层、持久层。关于这三块内容,大家可以参考我的这几个分类专栏:张起灵学MyBatis、张起灵学Spring、张起灵学SpringMVC
· SSM完结之后,按理说应该走向分布式、微服务了,但是在此之前,我觉得应该先学两个东西:Linux、Git,随着我们学的东西越来越多、开启的服务也会越来越多,这些服务如果都部署在Windows端就会造成压力过大、性能堪忧、效率低下等问题,那么我们能不能考虑将一些服务部署(Redis、RabbitMQ、Nginx等等)在另一个操作系统中呢?答案是肯定的,首先其实就是Linux了。而Git则是一个分布式的代码管理工具、做版本控制、是一个代码托管中心,到了这个阶段,我们要知道随着代码量的不断增多,能不能想个办法将其放在某个远程服务器上,当我们用的时候将它拿过来、更新的时候也对远程同步、不用的时候就放在那里,解决此问题的就是Git了。关于这两块内容,大家可以参考我的这几个分类专栏:张起灵学Linux、张起灵学Git
· 铺垫完成,开启SpringBoot,SpringBoot为简化开发而生、一个快速构建Spring项目的脚手架,去除大量xml繁杂配置、减少过多的Maven依赖、自动装配、起步依赖、集成Redis、RabbitMQ等热门技术,这些都说明了SpringBoot的王者地位。关于这个,大家可以参考我的这个分类专栏:张起灵学SpringBoot
· 搞定了Maven、Git、Linux、SpringBoot这些,可以说我们彻底跨进了分布式、微服务的大门,入坑可就别想出去咯(嘻嘻嘻)。下面就可以学一个热门、重要且牛逼的技术——Redis(NoSQL、缓存中间件),Redis可以说无所不能、项目中离不开它,其中包括数据类型、事务机制、持久化、集群配置、缓存问题、分布式锁等等。关于这个,大家可以参考我的这个分类专栏:张起灵学Redis
· 继Redis之后,再来一个重要且牛逼的技术——RabbitMQ(消息队列、消息中间件),常用来实现异步处理、应用解耦、流量削峰,其中包括核心概念(交换机、队列、Binding、RoutingKey、生产者、消费者、事务机制、死信队列、延迟队列、集群部署等等)。关于这个,大家可以参考我的这个分类专栏:张起灵学RabbitMQ
· 然后呢,可以再来学一个高性能的Web服务器——Nginx,这个东东是可以帮助Tomcat减轻压力的,它是一个反向代理服务器,可以做到负载均衡、请求转发、动静分离、集群部署等等。关于这个,大家可以参考我的这个分类专栏:张起灵学Nginx
· 这个时候,我们可以学一下MyBatis的兄弟:MyBatis-Plus,MyBatis-Plus就是在MyBatis上只做增强、不做改变,为简化而生、为提高效率而生,减少了xml的映射文件的编写,甚至可以达到不用编写xml就可以实现CRUD操作,很是方便,极大的提高了开发效率。关于这个,大家可以参考我的这个分类专栏:张起灵学MyBatis-Plus
· 到了这里,大家可以去学SpringCloud了,这个玩意其实就是分布式、微服务的一站式解决方案,其中由多个组件构成(Feign服务接口调用、Hystrix服务降级/熔断、Gateway服务网关、Nacos服务注册/配置中心等等)。关于这个,大家可以参考我的这个分类专栏:张起灵学SpringCloud
· 我在学完SpringCloud之后,又学了两个东西(说实话,学到这里真的已经懵逼了,,,不知道自己学了点啥):Docker、Elasticsearch。Docker就是解决了运行环境和配置问题的软件容器,方便做持续集成并有助于整体发布的容器虚拟化技术。(一次构建、随处运行);而Elasticsearch是一个开源的高扩展的分布式全文搜索引擎,能够安全可靠地获取任何来源、任何格式的数据,然后实时地对数据进行搜索、分析和可视化。关于这两块内容,大家可以参考我的这几个分类专栏:张起灵学Docker、张起灵学Elasticsearch
· 然后呢如果说还能肝,大家可以顺带着学学JUC、JVW、数据结构与算法这些进阶大厂的技术,反正我真的已经。。。(大家懂我意思吧?),关于JUC入门内容,大家可以参考我的这几个分类专栏:张起灵学JUC
· 学的多,忘的多,懵逼的更多(真的是懵逼树上懵逼果,懵逼树下Java和我,但问题是Java好好的,我懵逼了啊。。。),到这里也就接近尾声了,我也要着手准备面试/笔试了,时间过的真的好快,大家不知不觉中都已成了大牛级别的任务,而我却还在原地踏步、不知道自己学了点啥。那么关于Java面试这块内容,大家可以参考我的这个分类专栏:张起灵学Java面试
4.完结撒花~~~
张起灵最后再说一句:1024程序员节,属于我和未来的你!!!