Java后端开发:完整的学习指南

发表时间: 2023-12-07 13:36

关于这个问题,我之前也是回答过好几遍了,当然也给很多知友带来了帮助~

虽然目前互联网行情不是太景气,但是对于求职找工作的朋友来说,Java可能仍然是后端工程师的优选,虽然Golang和Python一直在追赶,但是Java作为老牌语言,在企业中的地位很重要,它的市场空间仍然是很难撼动的特别是对于小白而言,java可以是作为以后工作的工作语言!

我们先看一下最近一则招聘需求:

1、熟悉Springboot常用框架及相关技术,如:springboot dubbo rocketMQ,SpringCloud

2、熟悉至少一种分布式开发框架,有基于Dubbo大型分布式系统研发经验优先;

3、熟悉各种Java应用服务器的使用;

4、熟悉Oracle、MySQL关系型数据库,以及NoSql数据库;

5、 熟悉HTTP协议、restful WebService协议、Memcached协议、Redis协议;

6、4年以上工作经验,有一定的高并发处理能力 ,具有互联网、金融行业经验背景者优先。

有人要问了,要求这么高,能找到工作吗?

目前从招聘需求来看,java开发人员的需求量还是排名靠前的,如果你说java招聘的就很少,那基本上其他的更没的说的,但是这个需求招聘是有前提条件的,就是需要有工作经验。所以在学习中,积累项目经验,多做项目,在项目中积累解决各种问题的能力,从而扩展自己的开发能力!

另一方方便,Java对数学,英语要求不高,并不需要多高的门槛,有些人甚至是没上过大学,也能学好java,但是现在你最好是本科毕业,喜欢计算机,喜欢编程,要不很难坚持下去,java本身学起来简单,但也是个大工程,最怕的就是三天打鱼,两天晒网,半途而废!

不难发现,这个招聘对于主流技术栈要求还是蛮高,后台以微服务和容器化,mysql为主,想要达到入职的要求你要学习的东西还是蛮多的

不错的java后端学习路线

1、必学语法基础

第一是JDK集合、并发包以及它的核心类库(collections、serialization、streams、networking、multithreading、reflection、event、handling、NIO、localization以及其他)

第二对面向编程,多线程,类的加载机制,锁的运用

  1. 数据结构与算法

这一块没啥好说的,就是靠平时积累以及leetcode刷题。我刷了几十题这样,加上平时积累的一些数据结构也是比较够用的。对于java初学者来说,数据,list,Linklist,HashMap,TreeMap等,我个大家整理了一些相关的算法与数据结构:性能分析、基本数据结构(列表、树等)、排序、查找、图等

3、数据库

Mysql服务器的安装与配置 、数据表的的新建、查询等CRUD、事物的使用以及其ACID特性,特别是作为Java开发者来讲,常用的sql语言,ddl语言,数据的优化,建索引,视图,触发器,存储过程啊,数据库备份啊,游标啊,等等,很多要会的。

4、网络原理

网络编程学什么:比如,么是socket套接字、套接字选项、TCP/UDP 套接字编程、

Unix domain 协议和编程、原始套接字编程、IO多路复用:select 、poll、epoll、queue、序列化技术、零拷贝技术、开源网络库:muduo、libevent等等。

学完以上内容你大概可以写一个类似QQ一样的网络聊天小工具。

5、操作系统

  • linux如何统计文件中某个字符串出现的频率
  • linux启动的第一个进程
  • linux查看端口占用
    linux查看CPU和内存使用
  • Linux查看系统负载命令
  • Linux调试程序
  • Linux硬链接和软连接
  • core dump
  • cmake和makefile
  • Shell脚本基本语法和使用
  1. 主流技术栈

比如JavaWeb,SSM,Linux,Spring Boot,MyBatis, Nginx,Git,GitHub,Servlet,多线程,集合,JVM,DeBug, Dubbo,Redis等等。

7、云原生开发

此处的网络编程主要指的是具体Linux系统上的网络编程 API和 IO函数的编程实践。

包括:

1、分布式架构,比如, 浏览器、流媒体开发、,设计模式等等,

2、海量日志处理和并行计算开发

3、分布式技术框架、中间件等 Dubbo、Spring Cloud 、Zookeeper 、Kfaka

流媒体分发技术CDN,当然你可以可参考一些Java常用库,造一些轮子或者做些有趣的小工具。

8、熟悉技术方案的开发和解决

分库分表、微服务实战、单点登陆、支付宝支付、微信登陆、微信支付、QQ登陆对接、前后端分离、权限控制、短信发送等实战等等。

9、其他

对于学习的过程,除了要坚持以外,还要注重实践和交流,交流就包括要去思考和总结,并且将其输出出来。特别是对于最近流行的技术,比如前几年的容器技术(如Docker、K8S)的出现,革命性的改变了整个运维体系。如今前景最大的技术流就是AIGC了。

如果你对Java感兴趣那么点赞+关注111找我拿全套学习资料,


针对技术深度,我的建议还是系统地学习,包括看书和研究源码。例如,研究 Java 虚拟机可以看《深入理解 Java 虚拟机》、研究 MySQL 可以看《MySQL 技术内幕:InnoDB 存储引擎》、研究 Memcache 可以去看其源码。si我111都可以领取的哦

关于学习的书籍:

1、《Java核心技术 卷1》

书里面详细讲解了JavaSE所有内容的原理,如果你能把这本书研究透,以后会有很高的技术造诣。


java基础非常重要,《Java核心技术》据说曾获Jolt大奖,是每个Java工程师案头必备的技术手册,阅读时可以跳过图形界面程序设计、Swing、以及部分日志章节。并发的知识比较深入,在基础阶段大致了解即可。

2、《Java编程思想》

Java编程思想是一本经典著作。在大学的时候,我就买了一本来看看

这本书可谓是Java程序员入门必读的书,本书是一本介绍齐全的Java学习参考书。如果你不喜欢《Java核心技术 卷1》类似小人书那样的讲解,可以尝试这本书。本书的内容讲解详细,成熟(相对Head First有种教科书的感觉)。

3、Java并发编程实战

本书并非聚焦于核心Java代码的实现,而是关注并发引起的问题,比如死锁,饥饿,线程安全,竞争条件,然后提供可行的方法来解决这些问题。

最后介绍了一些高级主题,如显式锁、原子变量、非阻塞算法以及如何开发自定义的同步工具类。此外,还有两本书籍,你一定要去学习的:

1、《深入理解Spring Cloud与实战》微服务架构进阶书籍

2、《Spring Cloud微服务:入门、实战与进阶》是一部从技术原理、工程实践和进阶提升3个维度讲解Spring Cloud微服务架构与开发的著作。

看完这5本书籍,基本上已经可以对完成的去开发项目了,你可以利用Java++配合Springboot做个博客学习系统

最后的阶段就是找工作了!

当你完成开发框架的学习以后,你就该找工作了,无论你是再选还是有工作经验的不能停下学习。如果你不能跟上节奏的话,若干年后,如果不是程序猿市场还不错的话,你很可能不仅仅是工资比别人低,公司没别人好,而是根本就找不到工作。

以上9条学习流程和5本书籍,对于java后台开发岗而言,做到以上我说的几点内容经历,就已经能够满足各大公司的要求了。当然如果有在基础架构分布式开发等方面的经验,比如分布式,容器,高并发设计,那也绝对是各个大厂争抢的对象了!

个人建议

你可以先学习基础语法, 然后就是数据结构与算法,再去学习 Mysql,紧接着就是计算机网络,操作系统,在接着就是Spring全家桶相关,在过程中可以结合上述书籍的知识点多去做一些小项目, 只要你对技术的热情以及持续不断地投入,包括学习、实践、思考、总结,时刻准备,找工作应那就很随意了!