【面试】零基础自学Java路线及课程推荐,适用各阶段人群

news2024/9/23 11:15:05

目前各个平台上都有着各种各样的教程,给我们带来了更多选择的同时,也为新手小白带来了一丢丢的麻烦:如何系统学习Java?选择什么样的方式学习?本篇就来解答这些问题。

一 学习方式的选择

学习计算机的主流方式主要是视频课程、书本、源码、博客等个人平台这几种。如果是纯小白,那么最推荐的就是视频课程,这种方式相比于博客来说更加系统,相比于直接去啃书本来说也更加易于理解(毕竟有老师的讲解,会相对通俗一点)。需要注意的是,这里的课程并不包括学校的课程,大多数本科院校学习的内容都较为基础,不够深入,想要只靠本科学习到的东西从事这个行业很困难,而且大家也都知道计算机更新迭代速度很快,暂不提学校课程与现在企业所用的技术是否存在脱轨现象,单就论我们大四毕业后才参加工作,大一大二所学的课程已经是四年前的了,肯定不够用。其实,学校老师的工作更像是一个领路人,“师傅领进门,修行在个人”,门已经进了,能走多远就看我们私下花多少功夫了。

当我们有一定基础后,就可以着手去读一些比较经典的教材了,比如Java程序员基本都知道的《Java核心基础》、《Java并发编程的艺术》、《深入理解Java虚拟机》、《Redis设计与实现》等,可以进一步的深入理解相关知识,并且有之前视频课程的铺垫,理解起来也更加容易。

对于博客,我更喜欢用它来查漏补缺,或者学习一些晦涩难懂的知识点,因为博客上的作者会把这些很难理解的知识点结合自己的理解,用各种通俗方式把它掰开、揉碎了讲解清楚,一篇看不懂就多看几篇,总有适合我们的。

至于源码,可以在我们学完基础后,深入学习并发编程、JVM等内容时进行参考,虽然大多数时候读源码是个很痛苦的事情,但是有些问题十行代码就能解释清楚好几页纸才能讲明白的事情。

以上就是我个人关于选择学习方式的一些心得,大家也可以结合自己的情况,选择适合自己的方式。但是不管选择什么方式学习,实践是必不可少的,学习编程最重要的就是敲代码!只有自己动手才会发现会自己存在哪些问题,有哪些没有掌握的内容,也只有多写多练,才能避免走到“背代码”的误区里。

二 Java基础

学习Java最开始学习的自然是Java基础,对Java这门语言有一个初步的了解。大多数同学的入门语言都是c,有了c的基础,学习Java也会很快,大多数内容大同小异,主要的要理解“面向对象”这个概念。

在这个部分我们主要要学习基础语法、封装继承多态三大特性、接口、泛型、反射、注解、集合、异常与调试、 Java I/O这些内容。学习完这些之后,我们就可以学习一下进阶内容:网络编程、并发编程、JVM

这里推荐一个b站上的课程:黑马程序员Java零基础视频教程_上部(Java入门,含斯坦福大学练习题+力扣算法题和大厂java面试题)_哔哩哔哩_bilibiliicon-default.png?t=N7T8https://www.bilibili.com/video/BV17F411T7Ao/?spm_id_from=333.999.0.0&vd_source=209879771cd07d6dc85c0a82b27b2898

虽然课程将近100个小时,但是非常的全,不但涉及到了所有的知识点,而且有非常非常多的练习题目(可能这也是时长这么长的原因),所有练习都来自于美国斯坦福大学Java习题、力扣算法题或者大厂面试题,练习也是由易到难,在学习到不同阶段时也会有练手的小项目。可以说跟完这套课程,基本Java入门就已经搞定了,超越99%同龄人(小小夸张一下嘿嘿)。我也有在整理更新这门课程的课程笔记,目前刚刚更新到结构体部分,同样包含了所有的练习,但是还是推荐时间充裕的同学去看视频哈~

【核心笔记】Java入门到起飞,小白都能看懂的Java教程——1.基础入门-CSDN博客

【核心笔记】Java入门到起飞,小白都能看懂的Java教程——2.运算符(附练习)-CSDN博客

【核心笔记】Java入门到起飞,小白都能看懂的Java教程 (三)——结构体(含练习及答案)-CSDN博客

【核心笔记】Java入门到起飞,小白都能看懂的Java教程 (四)——结构体 练习-CSDN博客

除此之外,还可以阅读《 Java 核心技术 卷I》这本书。这本书更注重实用性,广度和深度都恰到好处,非常适合作为Java学习的教材。

电脑上没有安装Java环境也不怕,可以使用菜鸟教程在线编辑器 (runoob.com)进行在线编译(不过还是要尽早配置好环境)。

 最后推荐几个文档教程

菜鸟教程:Java 教程 | 菜鸟教程 (runoob.com)

廖雪峰教程:Java教程 - 廖雪峰的官方网站 (liaoxuefeng.com)

Java在线中文手册:Overview (Java SE 11 & JDK 11 ) (runoob.com)

学完这部分,就可以上手做一些类似管理系统或者贪吃蛇、飞机大战这样的小项目了。

三 数据库

数据库包括MySQL、redis、MongoDB等等,不过现阶段空考虑到实用性和难易度,我们优先学会MySQL就可以了。主要包括增删改查基础操作、JDBC、数据库连接池等内容。

这里推荐Mosh老师的付费课程,全程大约十个小时左右,但是贴心的我也已经帮大家找好了免费的、中文字幕的版本,依旧是在万能的阿b上:

【中字】SQL进阶教程 | 史上最易懂SQL教程!10小时零基础成长SQL大师!!_哔哩哔哩_bilibiliicon-default.png?t=N7T8https://www.bilibili.com/video/BV1UE41147KC/?spm_id_from=333.999.0.0&vd_source=209879771cd07d6dc85c0a82b27b2898这门课程的相关资料和笔记还在整理中,有需要的小伙伴可以直接问我要~

教材的话依旧推荐的是大家都熟知的《MySQL必知必会》(实际上没有图片看起来那么厚,全书也就二百多页)。


这本书同样更注重实践,适合快速入门。

四 Java web

Java web就不再单纯是后端的内容了,也包括了许多前端的知识,首当其冲的就是前端三剑客: Html、CSS和 Java Script,学习完Java之后学这些简直爽翻,超级简单,一天速成都不在话下。学习完这些之后我们就可以写出简单的页面了,想要学更深一些的可以再学习一下Vue和React等前端技术。此外,还有后端 Java 技术如Servlet、Filter、Listener、Session、Cookie等。

课程这里推荐尚硅谷的Java web教程,大概40天就可以刷完:

尚硅谷最新版JavaWeb全套教程,javaweb零基础入门完整版_哔哩哔哩_bilibiliicon-default.png?t=N7T8https://www.bilibili.com/video/BV1Y7411K7zz/?vd_source=209879771cd07d6dc85c0a82b27b2898课程包括了Servlet程序、Filter过滤器、Listener监听器、jsp页面、EL表达式、JSTL标签库、jQuery框架、Cookie技术、Session会话、JSON使用、Ajax请求等内容,更加贴近企业开发的需求,并会在课程最后带领我们做一个书城项目,让我们彻底学透Java web。

五 主流框架

提到主流框架,大家自然会想到SSM,即 Spring、Spring MVC 和 MyBatis。但在学习SSM之前,还要先学习Maven和Git

Maven是一个项目管理工具,可以帮助我们管理jar包,我们只需在项目的 pom.xml 中配置相关依赖,就可以直接从远程仓库同步到本地,解决了我们寻找jar包的烦恼。Maven的学习很简单,随便找一个课时最短的刷完,简单了解一下就OK~

【IDEA版胎教级】都学这么久编程了你Maven是什么都不知道嘛?太丢人了吧?_哔哩哔哩_bilibiliicon-default.png?t=N7T8https://www.bilibili.com/video/BV1YL411t7Ak/?spm_id_from=333.337.search-card.all.click&vd_source=209879771cd07d6dc85c0a82b27b2898Git是一个开源的分布式版本控制系统,最大作用就是对文件进行版本管理,可以在不同版本进行切换修改,还支持协作开发,基本所有的企业开发都要用到Git。和Maven一样,找一个课时短的,简单了解一下使用就可以。 【狂神说Java】Git最新教程通俗易懂_哔哩哔哩_bilibiliicon-default.png?t=N7T8https://www.bilibili.com/video/BV1FE411P7B3/?spm_id_from=333.337.search-card.all.click接下来进入正题,也就是SSM的学习,这个课程大概40小时左右,大家有其他觉得不错的课程也可以选择:

2020最新(idea版)SSM框架全套教程-spring-springmvc-mybatis_哔哩哔哩_bilibili2020最新(idea版)SSM框架全套教程-spring-springmvc-mybatis共计323条视频,包括:1-1 MyBatis-MVC架构模式回顾、1-2 MyBatis-三层架构、1-3 MyBatis-三层架构中使用的框架等,UP主更多精彩视频,请关注UP账号。icon-default.png?t=N7T8https://www.bilibili.com/video/BV1Tv411b7Dp学习完SSM后还没有结束,学习完的小伙伴可以发现,整合SSM框架非常非常麻烦,所以我们更多时候会使用Spring Boot。当然,如果只是为了使用 Spring Boot,我们完全可以跳过SSM的课程,毕竟 SSM 配置真的很麻烦也很少用,但是不推荐,因为面试的时候你会发现,面试官问的全是Spring的底层原理问题,如果不学SSM,完全听不懂他在问什么=.=。

这里的课程推荐黑马的这套课程,虽然只有24h,但是包含了基础、项目、面试三大模块,可以说一套顶三套,非常值得一学。从后端打通了Springboot3+jdk17,前端采用的也是最新的技术vue3,非常详细的讲解就后端接口处理数据,唯一的小缺点在于组件使用不是很多,但也不是什么大毛病。

黑马程序员SpringBoot3+Vue3全套视频教程,springboot+vue企业级全栈开发从基础、实战到面试一套通关_哔哩哔哩_bilibiliicon-default.png?t=N7T8https://www.bilibili.com/video/BV14z4y1N7pg/?spm_id_from=333.337.search-card.all.click&vd_source=209879771cd07d6dc85c0a82b27b2898

五 服务中间件与项目实战

学到这里基本我们就可以自行开发项目了,但是在企业中,还会出现许多复杂的业务场景,这就要求我们学习一些中间件,例如Redis、MQ、Elasticsearch同时,我们也要多可以一些项目,一方面巩固我们所学的知识,另一方面也可以以练带学,在实践中查漏补缺。

Redis在实际业务中运用很多,也是面试时的高频考点,大家可以多看看《Redis的设计与实现》这本书

也可以参考Redis的中文教程:

Redis中文教程

关于项目的教程网上非常多,大家可以自行寻找课程,也可以到Java 教程 | 菜鸟教程 (runoob.com)上找一些大佬的项目进行学习,多研究思考优秀项目的业务逻辑和功能设计,将它们内化为自己的经验。

六 微服务和分布式

对于校招的同学而言,学会并学好以上内容就够了,但是对于深入学习Java开发的同学,还需要再了解一下微服务和分布式的内容,例如Spring Cloud ,Dubbo,ZooKeeper等。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1436603.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

22.HarmonyOS App(JAVA)位置布局PositionLayout使用方法

不常用 在PositionLayout中,子组件通过指定准确的x/y坐标值在屏幕上显示。(0, 0)为左上角;当向下或向右移动时,坐标值变大;允许组件之间互相重叠 布局方式 PositionLayout以坐标的形式控制组件的显示位置,允许组件相…

小白买新电脑保姆验机教程

目录 前言: 正文: 7,查看硬件信息 8,检查硬盘 9,检查屏幕 10,烤机检测 总结: 前言: 最近因为学习的需求,购入了一台新的笔记本,正巧趁这次给身边的朋友…

《动手学深度学习(PyTorch版)》笔记6.2

注:书中对代码的讲解并不详细,本文对很多细节做了详细注释。另外,书上的源代码是在Jupyter Notebook上运行的,较为分散,本文将代码集中起来,并加以完善,全部用vscode在python 3.9.18下测试通过&…

显示器校准软件:BetterDisplay Pro for Mac v2.0.11激活版下载

BetterDisplay Pro是一款由waydabber开发的Mac平台上的显示器校准软件,可以帮助用户调整显示器的颜色和亮度,以获得更加真实、清晰和舒适的视觉体验。 软件下载: BetterDisplay Pro for Mac v2.0.11激活版下载 以下是BetterDisplay Pro的主要…

没有联合和枚举 , C语言怎么能在江湖混 ?

本篇会加入个人的所谓‘鱼式疯言’ ❤️❤️❤️鱼式疯言:❤️❤️❤️此疯言非彼疯言 而是理解过并总结出来通俗易懂的大白话, 我会尽可能的在每个概念后插入鱼式疯言,帮助大家理解的. 🤭🤭🤭可能说的不是那么严谨.但小编初心是能让更多人能…

代码随想录算法训练营DAY14 | 二叉树 (1)

一、二叉树理论基础 1.存储方式 链式存储: 顺序存储: 2.二叉树标准定义(Java) public class TreeNode {int val;TreeNode left;TreeNode right;TreeNode() {}TreeNode(int val) { this.val val; }TreeNode(int val, TreeNode left, TreeNode right) {…

带你实现用自己域名打开Tomcat

文章目录 Tomcat1.1、Tomcat 下载1.2、Tomcat 文件图解1.3、 启动或关闭 Tomcat1.3.1、 启动1.3.2、 关闭程序2.1、 修改端口号2.2、修改主机名称Tomcat 1.1、Tomcat 下载 首先去Tomcat 官网下载找到我们需要下载的版本 1.2、To

SpringBoot:多环境配置

多环境配置demo代码:点击查看LearnSpringBoot02 点击查看更多的SpringBoot教程 方式一、多个properties文件配置 注意:创建properties文件,命名规则:application-(环境名称) 示例:application-dev.proper…

c#cad 创建-点(六)

运行环境 vs2022 c# cad2016 调试成功 一、代码说明 创建一个点的命令方法。代码的主要功能是在当前活动文档中创建一个点,并将其添加到模型空间块表记录中。 代码的主要步骤如下: 获取当前活动文档、数据库和编辑器对象。使用事务开始创建点的过程…

Java设计模式大全:23种常见的设计模式详解(二)

本系列文章简介: 设计模式是在软件开发过程中,经过实践和总结得到的一套解决特定问题的可复用的模板。它是一种在特定情境中经过验证的经验和技巧的集合,可以帮助开发人员设计出高效、可维护、可扩展和可复用的软件系统。设计模式提供了一种在…

Leetcode第123场双周赛

Leetcode第123场双周赛 本人水平有限,只做前三道 一、三角形类型 给你一个下标从 0 开始长度为 3 的整数数组 nums ,需要用它们来构造三角形。 如果一个三角形的所有边长度相等,那么这个三角形称为 equilateral 。 如果一个三角形恰好有两…

【lesson11】高并发内存池性能优化

文章目录 高并发内存池性能问题基数树优化性能代码一层基数树两层基数树三层基数树 一层基数树替代mapPageCache.hPageCache.cpp基数树线程安全的原因 高并发内存池性能问题 我们知道,我们实现的高并发内存池存在大量的申请锁和,释放锁,而这…

【RL】Basic Concepts in Reinforcement Learning

Lecture1: Basic Concepts in Reinforcement Learning MDP(Markov Decision Process) Key Elements of MDP Set State: The set of states S \mathcal{S} S(状态 S \mathcal{S} S的集合) Action: the set of actions A ( s ) \mathcal{A}(s) A(s)…

奚梦瑶何猷君香港共度佳节,幸福全家福彰显深厚亲情。

♥ 为方便您进行讨论和分享,同时也为能带给您不一样的参与感。请您在阅读本文之前,点击一下“关注”,非常感谢您的支持! 文 |猴哥聊娱乐 编 辑|徐 婷 校 对|侯欢庭 从奚梦瑶父母与赌王家族的全家福中,我们可感受到两…

图灵之旅--二叉树堆排序

目录 树型结构概念树的表示形式 二叉树概念特殊的二叉树二叉树性质二叉树的存储二叉树的遍历前中后序遍历 优先级队列(堆)概念 优先级队列的模拟实现堆的性质概念堆的存储方式堆的创建 堆常用接口介绍PriorityQueue的特性PriorityQueue常用接口介绍优先级队列的构造插入/删除/获…

【Linux笔记】文件系统与软硬链接

一、文件系统概述 1.1、先来聊一聊“磁盘” 在讲解文件系统之前,我觉得有必要先聊一下“磁盘”,因为我觉得如果弄懂了磁盘的存储原理,大家可能更容易理解文件系统是怎么管理数据的,并且理解计算机是怎么将磁盘抽象到文件系统的。…

SpringBoot多模块项目proguard混淆

SpringBoot多模块项目proguard混淆 前言整活项目目录混淆后的效果图混淆配置混淆配置规则keep相关通配符和关键字keep说明常见问题解决办法效果前言 proguard 是压缩、优化和混淆Java字节码文件的免费的工具。 它可以删除无用的类、字段、方法和属性。可以删除没用的注释,最大…

156基于Matlab的光纤陀螺随机噪声和信号

基于Matlab的光纤陀螺随机噪声和信号,利用固定步长和可调步长的LMS自适应滤波、最小二乘法、滑动均值三种方法进行降噪处理,最后用阿兰方差评价降噪效果。程序已调通,可直接运行。 156 信号处理 自适应滤波 降噪效果评估 (xiaohongshu.com)

【Linux工具篇】调试器gdb

目录 releaseVSdebug模式 使用命令 NO1运行 NO2查看 NO3断点 总结 releaseVSdebug模式 程序的发布方式有两种,debug模式和release模式Linux gcc/g出来的二进制程序,默认是release模式Linux gcc/g要使其debug模式编译,加上-g选项要使用g…

Kuberntes权威指南

一、目录 二、Kubernetes入门 三、Kubernetes核心原理 四、Kubernetes开发指南 五、Kubernetes运维指南 六、Kubernetes高级案例进阶 七、Kubernetes源码导读