前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >适合普通大学生的 Java 后端开发学习路线

适合普通大学生的 Java 后端开发学习路线

作者头像
帅地
发布于 2021-04-14 02:36:18
发布于 2021-04-14 02:36:18
6680
举报
文章被收录于专栏:苦逼的码农苦逼的码农

大家好,我是帅地。

接下来的一段时间,帅地会总结各种技术栈的学习路线,例如 Java 开发,C++ 开发,python 开发,前端开发等等,假如你没有明确的目标,或许可以按照我说的学习路线来学习一波,我写的每一份学习路线,不会很全面,因为我认为,东西列的太多,反而不利于新手的学习,所以我列举的,都是比较必要的知识,当你把这些知识学了的时候,我相信你不需要别人的学习路线,也能知道自己接下来需要学啥了。

下面我也总结了一套 Java 后端的学习路线,跟着这套学习路线,校招水个中大厂的 offer,概率还是挺大,所以你没有明确的学习路线,那么可以按照帅地说的学习。

下面推荐的所有书籍,都可以在这个 GitHub 上下载到,里面收集了挺多优质编程书籍:https://github.com/iamshuaidi/CS-Book

一、Java 技术栈的学习

1、Java 入门

注意,下面所有推荐的书籍,大家都可以在这里下载到:[【干货分享】计算机书籍很贵?别瞎找了,我发现了一个宝藏github,贡献给大家]:https://github.com/iamshuaidi/CS-Book

一开始肯定要了解一波 Java 语言的特性,很多人都关心一开始看什么资料,其实我不推荐入门阶段看的太多太杂,因为你不知道哪些是有用的,哪些是过时的,或者在目前阶段用不到的。

对于初学者尤其是没有一点编程基础的人来说,要渡过这个从零到一的过程,往其实是非常艰难的,挫败感会非常强。如果有人领路,或者选择一门优质的课程,效果会好的很多。没事,这篇文章就来当作你们的领路人!!!

下面这些学习资料都是我曾经读过或者看过的,没看过的我也不会介绍。还是那句话,资料和视频都是辅助,顶多领你入门,剩下的还是靠自己。

学习书籍推荐:《Java核心卷1》,这个算是入门书籍吧,入门书籍我看的不多,暂时介绍这一本,大家可以去网上搜索,但个人感觉看完这本书差不多了。

有一些基础的可以看《Java编程思想》,这本书也很好,解决了我很多疑惑,不过有点难度,我是选择性看的。建议看完核心卷再来看这本。

Java 编译器推荐用 IntelliJ IDEA,安装步骤自己百度去搜索。

视频推荐:这里推荐高琪 Java300 集,b 站搜索就可以了。讲的还是挺好,入门的话,感觉看前面 100 集就可以了。

2、Java 进阶

想要靠 Java 来吃饭,单单靠看书刷视频肯定是不够的,咱们还得深入学习一波 Java 语言的特性,为了让大家少走弯路,我总结了如下核心知识:

集合模块:主要是包括各种常用集合:例如 Set(包括HashSet,TreeSet), Map(包括 HashMap,HashTable),List(包括ArrayList,LinkedList)等等,上面列举的都得学习它的源码

多线程:synchronize,volatile,线程池,并发包(如lock等等),太多了,学了你们自然知道,我也不说的太详细了。

推荐看《Java 并发编程艺术》+《Java并发编程实战》,这两本就够了,《Java并发编程艺术》感觉得看三四遍才行,第一遍看了就忘光了,第二遍会有其他的收获,第三遍就可以吊打面试官了,书籍的下载方式我上面已经说了。

各种文件流:file,inputStream,outputStream等等,反正就是各种文件流,看书时你们自然会看到,必须多实践,再次强调,文件这块,得多代码时间,不详细介绍。

虚拟机:虚拟机是必须学习的了,重点是 GC 部分,推荐看《深入理解Java虚拟机:JVM 高级特性与最佳实践》,一本就差不多够了,多看四五遍就行了。

其他:还有很多,如反射,注解,异常等。

3、JavaWeb 入门

学了上面那么多,啥程序、网站也没写出来,有点难受?没事,这个时候,我们就要开始撸网站了,如果是以 Java 作为开发语言的,那么 JavaWeb 是必须学的了。这个时候你可以入门学习下这些(注意,不用深入,快速找个视频入门就可以了

1、mysql、html+css+js 、 tomcat、xml等。推荐看视频,自己去搜索 JavaWeb 的视频,那么哪里不会补哪里,这些知识,几个小时就可以入门一门的了。至于 msyql,入门推荐看《mysql不知必会》,进阶看《mysql技术内幕》,看完就差不多了。

2、servlet+jsp 系列。

不建议直接学习框架,也是应该先学习 servlet,这些底层才是最重要滴。servlet 可以跟着视频学,至于 jsp 其实很少用了,不过还是可以了解一下。

4、框架的学习框

Servlet 写太麻烦了,只有认真学过 servlet 的人才能吹框架的好处,所以必须先学 servlet 再来学习框架,主要有三大框架:Spring + SpringMVC + Mybatis,入门跟着视频学就可以了,B 站一搜一大堆。

其实 SpringMVC 也是属于 Spring 吧,MVC 只是一种思想,这里学习顺序是先建议学习 Spring,直接看视频入门学习就可以了,后面再买书,掌握到什么程度?最后是要能知道一些原理,例如IOC,AOP的原理,使用了什么设计模式等等。

不过现在搭 ssm 太麻烦,基本都是用 SpringBoot 了,所以 SpringBoot 也必须,不过我建议你先学 ssm,之后再学习 SpringBoot,这样你才能知道 SpringBoot 哪里好,之后有时间的话,也要学习下 SpringCloud,没办法,现在太倦了,不学点微服务,分布式,都不敢去面试了。

5、中间件的学习

必须学的中间件redis,Redis 基本面试必问,工作也基本的都会使用到,所以必须掌握,推荐书籍《Redis 设计与实现》、《Redis开发与运维》。两本书刷完,就差不多了,或者说第一本书刷完就差不多了。

其他的话,像消息队列啊,分布式等相关框架,有时间也可以学习一波。

6、一个完整的项目

把上面的 Java 基础以及框架学了,就要做个完整的项目了,我只能说,项目非常非常重要,这时候自学以及跨行业的劣势就非常大了,因为面试的过程,一定会问项目,而且必须是你自己亲自做过的项目,假如你只是看视频,没有动手实践,很容易就会被问懵。所以一定一定一定要亲自动手做一个项目。

当然不是说这个问题就成了死结了,大家可以选择实操课程去解决自己在项目经验上的缺失,个人认为,找个视频跟着学就可以了。

一定要至少做一个项目;一定要至少做一个项目;一定要至少做一个项目;

关于项目的推荐,楼主也正在总结收集中,后面应该会整理出来。

不过,作为应届生,单单只会 Java 是很难进大公司的,算法 + 计算机基础也是极其重要的,特别是大公司,这方面问的特别多

二、数据结构与算法的学习

大学第一学期你入门了某种语言之后,就要开始学习数据结构与算法L。当然,不一定是第一学期,对于非科班的也一样,也是建议这个学习顺序。当然,你有自己的目标,完全可以按照自己的来。

我的文章是主写数据结构与算法的,我秋招也是靠着这个优势拿到 offer 的,所以我认为数据结构与算法是非常非常重要的,可能你会听到工作都基本没用到这些知识啊,或者库函数都帮我们封装好了啊,我们干嘛要学。

如果你这样想的,那你就错了。对于想要找工作的来说,这方面的知识是必考的,所以你得学;对于已经工作的来说,这方面的知识,可以让你学习到很多设计思想,所谓 数据结构 + 算法 = 程序,而且你学了这个,你会发现学习其他知识,上手的特别快。综上,数据结构与算法必学。

好吧,上面扯了这么多,就是告诉你,数据结构与算法的重要性,好了,下面我介绍下入门数据结构必学的有哪些,不过你跟着书本的学习顺序来就是了。

1、基础数据结构的学习

1、时间复杂度、空间复杂度

2、链表、队列、栈

3、树(二叉树,查找二叉树、AVL树,红黑树等)

4、图(图有好多种算法,深度/广度搜索,最短路径、最小生存树等)

如果你是科班的,那么这些我觉得你大一第二学期都学完是最好的了,没学完也问题不大,有些人可能是先教《离散数学》这本课,为数据结构与算法做铺垫。

书籍推荐:《大话数据结构》、《数据结构与算法分析:C语言描述版》,学哪一本?都可以,问题不大,我当时学的是第二本。大家记得根据自己的语言去学,我上面列举的,都是用 c 语言来实现的。

视频:我只看过《小甲鱼的数据结构与算法》视频,你们自己看着办吧。

2、算法的学习

在大一大二,真心建议你们把算法基本功打好,后面就真的没啥时间刷题之类的了,因为无论你以后要学习哪个方向的,算法都是实用的,会一些算法,说话也都自信了。算法的学习,刷题是必须的了,但不建议盲目刷题,而是先学习一些算法思想,在找对应的题刷,要学的主要有:

1、十大排序算法

2、递归、贪心、回溯、动态规划、枚举等

推荐书籍:《阿哈算法》、《算法设计与分析基础》适合入门;《算法第四版》、《算法导论》、《编程之美》适合进阶

视频:这种还是挺建议看书,我没看过视频,,这里就不介绍了。

3、保持算法的学习

算法的学习,真的是靠积累的,而刷题是必须的。而且学校都会举办一些比赛,这里还是比较建议大家去参见的,这样也能让你更加有激情着去学习。当然,每年都会有很多 ACM 编程大赛,要不要参加呢?这个看你了,也不是说参加就一定好,看你自己吧,具体可以参考我之前一篇文章说的:普普通通,我的三年大学

大家可以在 leetcode 长期保持刷题,一天一两道,或者一个星期三四道都行。

这里给大家推荐一份刷题笔记,学完应付面试基本问题不大:

三、计算机基础的学习

看过我文章的都知道,我一直强大计算机基础的重要性,所以这里必须列举要学的有哪些。刚才说了选择一门语言深入,你在深入学习的过程中,肯定也在学习学校开设的专业课,包括:计算机网络 + 操作系统 + 数据库 + 汇编 + 计算机组成原理 + 编译原理 等等。

而这些,我认为是非常重要的,对于秋招的同学来说,只要你会这些,就算你是深入学习 Java的,然后你去应聘 C++ 岗,我觉得也问题不大,你和面试官说我不会 C++ 就可以了,大不了到时候转岗。我虽然是 Java 技术栈的,但是我面的公司,都不是 Java 技术栈的,例如 小米,Shopee,字节跳动,腾讯等。但是,这些都问题不大,你只要会这些基础 + 算法,而且,在秋招,特别是对于一些大公司,关于语言的,其实问的也不是很多,基础问的特别多,所以你会基础,面试会占很多优势。下面按照学习的优先级,给这些课程排个序。

其实给他们排优先级是不大好的,这样给他们排,感觉容易被大佬喷,不过没办法,对于小白来说,我还是想排以下顺序

1、计算机网络 + 操作系统

2、数据库 + 计算机组成原理(数据库相应你们可能已经先学过 MySQL 了)

3、汇编 + 编译原理

不过,如果你们还是在校的大一大二,那么可以根据你们课程的学习顺序来,但是,我建议有时间的可以提前学,不一定要等到学校教了才学,反正大部分老师讲的很一般,但时候你学过的话,可以当做复习,或者学其他。

书籍推荐

《计算机网络自顶向下》、《图解 http》、《深入理解计算机操作系统》、《汇编语言》(王爽写的)。具体要掌握到哪个程度可以看我之前的文章了。

大家都可以在这里下载到书籍:https://github.com/iamshuaidi/CS-Book

四、学习的顺序

对于Java,算法,计算机基础的学习顺序,假如你时间多,例如你大一或者大二,那么我觉得可以按照这个学习顺序:

1、先选一门语言入门,例如 C 语言或者 Java

2、之后学习数据结构与算法

3、之后一边学习我上面说的 Java 技术栈,一边学习计算机基础,并行学习并不矛盾

假如你很急,时间不多了,那么我建议你先说我上面说的 Java 相关的知识,然后做项目,之后再回过头来学习算法和基础知识。

五、总结

我觉得对于大学四年来学,上面这些是最核心的,也是必须学的。但是仅仅是上面这些还是不够的,上面的这些一两年就可以学完的。所以你还有很多其他时间,那么你可以学一些自己感兴趣的,多折腾,多抖鼓,而我上面学的,希望你都学。你也可以看我大学学过的一些核心基础知识:

【吐血整理】那些让你起飞的计算机基础知识:学什么,怎么学?

前两年都在折腾,特别是第一年,但是,我始终一直学习那些比较核心的课程。再次强调,这篇文章不是让你成为大神的,学完也不是多厉害,而是,给处于大学迷茫、不知道学啥的你,一个方向,无论你是否是科班,如标题所说,普通/大众。不过我相信,当你学完了这些,你应该会有自己的学习方向了。

最后,是希望各位还在校的学生,大一可以好好浪,但也要保持应有的学习时间,之后,就好好学习吧。不管你是名校还是非名校,我觉得你在只要这几年认真学,进大公司的几率,真的非常大,这绝对不是鸡汤。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-03-29,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 帅地玩编程 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
【小白成长】这几年看过的优秀书籍介绍
版权声明:本文为苦逼的码农原创。未经同意禁止任何形式转载,特别是那些复制粘贴到别的平台的,否则,必定追究。欢迎大家多多转发,谢谢。
帅地
2019/06/06
7660
【小白成长】这几年看过的优秀书籍介绍
Java自学方法和路线,我万字推荐你这样学
大家好,我是bigsai 好久不见,甚是想念,文章同时收录在回车课堂(文底阅读原文可达)。
bigsai
2021/04/26
1.3K0
校招| C++ 后台开发学习路线
之前一直没写的原因在于自己觉得自己懂得太少,还没成为一个大佬,还没成为一个精通某个领域的专家,怎么能教别人如何学习呢?
C语言与CPP编程
2021/03/25
1.5K0
校招| C++ 后台开发学习路线
大学四年Java学习路线规划,所有私藏资料我都贡献出来了,我要是早知道就好了
首先我不是来打广告的,此篇内容会涉及到很多产品,我只是贡献出来学习工具途径,读者自己衡量。
阿甘的码路
2020/08/17
9540
大学四年Java学习路线规划,所有私藏资料我都贡献出来了,我要是早知道就好了
肝了一个月的 Java/后端学习路线
自学/学习路线这样的一期我想写很久了,因为一直想写的全一点硬核一点所以拖到了现在,我相信这一期对不管是还在学校还是已经工作的同学都有所帮助,不管是前端还是后端我都墙裂建议大家看完,因为这样会让你对你所工作的互联网领域相关技术栈有个初步的了解。
敖丙
2020/09/01
7490
大三、研二的秋招备战路线(Java、大数据)
1.分享经验。从去年五月份到今年五月份,我面试了n家公司,也收了(n/2+10)家的offer,经历了两个春招一个秋招,其中有腾讯、今日头条、京东等offer。通过这篇文章分享一些经验,让后面的同学少走弯路。
Java团长
2019/06/03
7660
Java 后端开发学习路线(修订版)
接下来的一段时间,帅地会总结各种技术栈的学习路线,假如你没有明确的目标,或许可以按照我说的学习路线来学习一波。
帅地
2022/01/13
2.8K0
Java 后端开发学习路线(修订版)
写了很久,这是一份最适合/贴切普通大众/科班/非科班的『学习路线』
说实话,对于学习路线这种文章我一般是不写的,大家看我的文章也知道,我是很少写建议别人怎么样怎么样的文章,更多的是,写自己的真实经历,然后供大家去参考,这样子,我内心也比较踏实,也不怕误导他人。
全栈程序员站长
2022/09/13
6981
写了很久,这是一份最适合/贴切普通大众/科班/非科班的『学习路线』
不论你是大众,科班和非科班,我这边整理很久,总结出的学习路线,还不快卷起来
很多人对自我的学习路线没有清楚的定位,鉴于此,我就来写一篇适合普通大众的学习路线,就从大一入学那一刻开始入门说起,虽然不一定适合你,但或许能给没有明确目标的人带来一些学习的方向,那么这篇文章,我就觉得值了。
用户10216580
2022/12/06
4680
适合普通大学生的前端开发学习路线
接下来的一段时间,帅地会总结各种技术栈的学习路线,例如 Java 开发,C++ 开发,python 开发,前端开发等等,以下是以更新的:
帅地
2021/04/14
6810
python,java,c语言哪个好_小萌新
才发现语言的选择也就那一回事,我猜不少人刚入门的人依然被这个问题困扰着,所以决定认真分享一波我的经历。
全栈程序员站长
2022/11/01
8700
B站最火的测试开发学习路线,内容再次大更新
大家好,我是洋子。今年的秋招就快到啦,很多小伙伴已经开始准备秋招,洋子牺牲了自己周末的休息时间,给大家送一波福利
Bug挖掘机
2022/09/28
1.2K0
B站最火的测试开发学习路线,内容再次大更新
万字长文 | 这可能是东半球最保姆级的后台服务器开发学习路线
这样的文章相信大家都见得不少了,写之前也非常忐忑,能不能和其它人写得不一样, 也定下了一个目标,这篇文章,不能是简单的堆砌学习资源和书单推荐,更要细化如何有效的去执行落地。
灵魂画师牧码
2020/10/26
1.3K0
谁说没实习经历,就不能进大厂了!
鱼皮你好,我目前的情况是西电研二在读,因为所在实验室不放的原因,没法在研二尝试去找实习。自己的进度是目前力扣用 C++ 和 Java 总共写了 300+ 题;Java 因为实验室项目,SSM 和 Spring Boot 以及 MyBatis Plus 用的还算比较熟练。目前手上只有实验室的两个纯 Java 的开发项目,Redis 和 消息队列课程都看过了但还没有实操,现在正在看黑马的微服务课程,因为里面有关于缓存和消息队列的应用,想着跟着实操一下,之后也会跟着 星球的项目 做下,并发部分还没有了解,C++ 的话目前就只是拿来写题。
程序员鱼皮
2022/11/07
9530
谁说没实习经历,就不能进大厂了!
帅地把Go开发学习路线肝出来了
Go 学习路线拖了好久了,主要是 Go 不像 Java,有着丰富的学习资料 + 过来人的各种踩坑,Go 的话,网上的学习资料比较零散,而且很多还是培训机构的,罗列一大堆知识,可能初学者看了和没看一样。
帅地
2022/03/14
1.2K0
简单说下帅地是如何学习计算机基础知识的?
计算机基础的重要性我就不必多说了,「帅地玩编程」这个公众号也是主打计算机基础 + 算法相关知识,学习计算机基础,认准「帅地玩编程」。
帅地
2020/10/21
1.3K0
周末再聊聊Java学习路线
我相信这些读者或多或少都有一些 Java 基础,但由于看不到全貌,学了一段时间很容易迷失。所以我在寻思着能不能写一个学习的地图或者路线,让读者能知道下一步该学什么,自己离大厂的 offer还有多远的距离。
Java3y
2020/12/31
7550
周末再聊聊Java学习路线
B程序员:讲述三年计算机学习辛酸史
近年来,有些读者会问我一些形形色色的问题,让我很难去回答,甚至给不出建设性的意见。
Guide哥
2020/05/08
3740
B程序员:讲述三年计算机学习辛酸史
Java/后端学习路线
这期我想写很久了,但是因为时间的原因一直拖到了现在,我以为一两天就写完了,结果从构思到整理资料,再到写出来用了差不多一周的时间吧。
敖丙
2020/03/03
9660
Java/后端学习路线
【吐血整理】那些让你起飞的计算机基础知识:学什么,怎么学?
我公众号里的文章,写的大部分都是与计算机基础知识相关的,这些基础知识,就像我们的内功,如果在未来想要走的更远,这些内功是必须要修炼的。框架千变万化,而这些通用的底层知识,却是几乎不变的,了解了这些知识,可以帮助我们更快着学习一门知识,更加懂得计算机的运行机制。当然,在面试中也经常会被问到,特别是对于应届生,对于春秋招,也可以看看我前阵子写过的文章历经两个月,我的秋招之路结束了!。也有读者经常问的计算机基础知识究竟是指啥?学习顺序?推荐书籍?
kbsc13
2019/10/15
7190
推荐阅读
相关推荐
【小白成长】这几年看过的优秀书籍介绍
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文