作者:小傅哥
博客:https://bugstack.cn
原文:https://mp.weixin.qq.com/s/5Hq8SyiVFvHUjYXrY4DnYQ
前言
一直有伙伴问小傅哥,有没有一个Java的学习路线,最好再有一些相关的资料、书籍、视频。因为现在自己学习也不知道哪不会,看到这个学这个,看到那个学那个,也摸不到头,还比较混乱。特别希望有一个大学到毕业的学习路线整理。
好!安排给你。
以下是我对大学四年和工作5年左右的一个学习路线整理,并将所有资料按照大一、大二…到工作五年,分别汇总到网盘里,以便不至于将资料弄到一堆,根本没法看。因为分享链接总是失效,可以通过关注公众号:bugstack虫洞栈,回复:学习资源下载+百度帐号
,获取加入链接,下载有序分类的300G
资料。
大一
对于刚上大学的小伙伴来说,完全的投入学习还是有些难的。毕竟大学的生活还是多姿多彩的,很适合释放长期以来压迫急需释放的心灵和懵懂的爱情。但每一步的决定都是因果,付出多少就会有多少回报。在大一可以打好一个良好的学习根基,并合理的安排自己的作息时间。娱乐、学习、健身、活动,都不会缺失。怕的就是沉迷于一项内容!
对于软件或者计算机专业来说,学习内容还是蛮有趣的,也很容易建立成就感。而且学习到的内容还可以帮助其他系的妹子,何乐而不为呢?大一,是一个打开各项窗口和大门的过程,在技术领域也是这样,如下图;
1. 软件
序号 |
软件 |
描述 |
1 |
word |
文本编辑工具,无论是你以后做毕业论文还是平时整理材料,以及将来工作中都会用到 |
2 |
excel |
电子表格软件,基本统计个表、汇总个成绩,以及很多内容上都会用到 |
3 |
ppt |
这个就是神器了,建功立业,全靠他了。 |
4 |
photoshop |
如果你想以后可以自己做一些网站,那么一定会需要到ps,很多地方的切图,转换都会用到 |
2. 技术
前端技术
序号 |
语言 |
描述 |
1 |
html |
超文本标记语言,简单说就是你需要写一个网页时候使用 |
2 |
Div+CSS |
学到这个技术就可以把网页做的更加漂亮,布局出各种结构 |
3 |
JavaScript |
是一种具有函数优先的轻量级,解释型或即时编译型的编程语言。学成大神以后做个游戏,搞个破坏轻而易举。也是你后续学习更多前端技术的根基 |
后端技术
序号 |
语言 |
描述 |
1 |
C 语言 |
这可能是你第一个写出 helloworld 的程序了,虽然有些难,但是这让你进入了语言的世界 |
2 |
C++ |
C++是C语言的继承,进一步扩充和完善了 C 语言。 |
把妹技术
序号 |
工具 |
描述 |
1 |
老毛桃装系统 |
Windows使用老毛桃还是很方便安装系统的,放心只要你学会这个,至少认识一堆妹子和学妹。 |
2 |
软件卸载和安装 |
很多常用的软件妹子是装不上的,比如开发工具、数据库、ACCESS等等,把它们保存好,放到自己的U盘里 |
3 |
清理灰尘 |
买把套装螺丝刀和清灰贴膜工具 |
3. 网站
技术博客
序号 |
网址 |
描述 |
1 |
CSDN |
CSDN是全球知名中文IT技术交流平台,创建于1999年,包含原创博客、精品问答、职业培训、技术论坛、资源下载等产品服务。 |
2 |
掘金 |
掘金是一个帮助开发者成长的社区, 掘金的技术文章由稀土上聚集的技术大牛编写。 |
3 |
开源中国 |
OSCHINA.NET 是目前领先的中文开源技术社区。我们传播开源的理念,推广开源项目,为 IT 开发者提供了一个发现、使用、并交流开源技术的平台 |
4 |
博客园 |
博客园是一个面向开发者的知识分享社区。自创建以来,博客园一直致力并专注于为开发者打造一个纯净的技术交流社区 |
5 |
思否 |
SegmentFault 思否是中国领先的新一代开发者社区和专业的技术媒体。我们为中文开发者提供纯粹、高质的技术交流平台以及最前沿的技术行业动态。 |
6 |
菜鸟教程 |
提供了编程的基础技术教程, 介绍了HTML、CSS、Javascript、Python,Java,Ruby,C,PHP , MySQL等各种编程语言的基础知识。 |
7 |
W3CSchool |
w3cschool启用中文品牌名–编程狮,是一个专业的W3C前端开发及编程入门学习平台,提供包括HTML,CSS,Javascript,jQuery,C,PHP,Java,Python,Sql,Mysql等编程语言。 |
视频资源
序号 |
网址 |
描述 |
1 |
慕课网 |
慕课网(imooc)是it技能学习平台。慕课网(imooc)提供了丰富的移动端开发、php开发、web前端、android开发以及html5等视频教程资源公开课。 |
2 |
哔哩哔哩{技术类视频} |
B站的技术视频内容很丰富,也免费。但除了技术视频以为还有很多其他视频! |
算法网站
序号 |
网址 |
描述 |
1 |
力扣 |
力扣提供海量技术面试资源,帮助你高效提升编程技能,轻松拿下世界 IT 名企 Dream Offer。 |
2 |
牛客网 |
专注于程序员的学习和成长的专业平台,集笔面试系统、课程教育、社群交流、招聘内推于一体。 |
4. 书籍
序号 |
名称 |
|
1 |
C Primer plus 第五版 |
|
2 |
c语言深度剖析 |
|
3 |
谭浩强经典C++教程 |
|
4 |
The_C_Programming_Language(C程序设计语言) |
|
5 |
C专家编程 |
|
6 |
数据结构与算法分析 |
|
7 |
零基础学HTML+CSS [张熠编著][第三版] |
|
8 |
Javascript从入门到精通 |
|
5. 视频
序号 |
名称 |
1 |
C语言教学视频 |
2 |
C语言视频教程-谭浩强版-小甲鱼主讲 |
3 |
html+CSS教程 |
4 |
机器学习基础班数学、算法、微积分、概率论、统计机器学习概率与算法、深度学习班数学模型 |
6. 项目
序号 |
名称 |
技能 |
1 |
开发一款Html+Js的计算器 |
html、div+css、js |
2 |
模仿静态的视频网站 |
html、div+css、js |
3 |
模仿仿照搜狐、京东等首页 |
html、div+css、js |
4 |
开发一款本地音乐播放器 |
使用C语言或者C++ |
5 |
视频播放软件 |
使用C语言或者C++ |
大二
刚上大学是打开一扇新的大门,左走、右走不停的摸索,有人沉淀知识,有人混迹网吧。满级的大号是否能干过人家一年下来的学习资本。不要让每一次时间都流逝的无影无踪,留下点痕迹。
大二开始你可能不会在去参加更多的社团,更多的活动,而是安心下来去钻研更多的知识。有时候学校教给你的很多都是领进门,剩下的修行还是靠自己。并且到了大二学习的内容也会更多,技术难度也会相应的增加。不过当你一个个的突破这些难度后,后面的问题也就随之煎蛋了。同时上一年打开了很多技术网站,技术博客。从里面不断的搜索答案,寻找结果。那么从这一年开始,也要自己总结写下一些东西。
1. 软件
序号 |
软件 |
描述 |
1 |
Git |
可能刚接触有点晕,甚至不知道这是干啥的。这是一款可以用于协同开发的软件,用于下载和上传代码到公有仓库。代码仓库;https://github.com/ |
2 |
XMind |
思维导图软件,可以画出树形结构的思路,本文的截图就是使用 xmind 绘制 |
3 |
Visio |
绘制各种流程图,包括常用的网络图、组织结构图、工程设计等。 |
4 |
Axure |
Axure RP是一款专业的快速原型设计工具,可以画出一个网页并生成成 HTML |
5 |
IntelliJ IDEA、Eclipse、MyEclipse |
这三款都可以进行代码开发,推荐使用IDEA |
2. 技术
前端技术
序号 |
语言 |
描述 |
1 |
jquery |
jQuery是一个快速、简洁的JavaScript框架,是继Prototype之后又一个优秀的JavaScript代码库(或JavaScript框架)。 |
2 |
vue.js |
是一套用于构建用户界面的渐进式JavaScript框架。与其它大型框架不同的是,Vue 被设计为可以自底向上逐层应用。 |
后端技术
序号 |
语言 |
描述 |
1 |
Java |
Java是一门面向对象编程语言,不仅吸收了C++语言的各种优点,还摒弃了C++里难以理解的多继承、指针等概念,因此Java语言具有功能强大和简单易用两个特征。 |
2 |
Spring |
Spring框架是由于软件开发的复杂性而创建的。Spring使用的是基本的JavaBean来完成以前只可能由EJB完成的事情。 |
3 |
SpringMvc |
Spring MVC属于SpringFrameWork的后续产品,已经融合在Spring Web Flow里面。Spring 框架提供了构建 Web 应用程序的全功能 MVC 模块。 |
4 |
Ibatis/Mybatis |
MyBatis 是支持定制化 SQL、存储过程以及高级映射的优秀的持久层框架。MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集 |
5 |
Redis |
Redis 教程 REmote DIctionary Server(Redis) 是一个由Salvatore Sanfilippo写的key-value存储系统。 |
6 |
Maven |
Maven项目对象模型(POM),可以通过一小段描述信息来管理项目的构建,报告和文档的项目管理工具软件。 |
数据库
序号 |
语言 |
描述 |
1 |
Mysql |
MySQL 是最流行的关系型数据库管理系统,在 WEB 应用方面 MySQL 是最好的 RDBMS(Relational Database Management System:关系数据库管理系统)应用软件之一。mysql 入门教程 |
2 |
Oracle |
Oracle Database,又名Oracle RDBMS,或简称Oracle。是甲骨文公司的一款关系数据库管理系统。 |
Linux系统
序号 |
系统 |
描述 |
1 |
Ubuntu |
Ubuntu是一个以桌面应用为主的Linux操作系统。自己的机器也可以尝试安装学习。 |
2 |
CentOS |
CentOS(Community Enterprise Operating System,中文意思是社区企业操作系统)是Linux发行版之一。 |
服务器
序号 |
系统 |
描述 |
1 |
apache tomcat |
Apache是普通服务器,本身只支持html即普通网页。不过可以通过插件支持php,还可以与Tomcat连通(单向Apache连接Tomcat,就是说通过Apache可以访问Tomcat资源。反之不然)。 |
3. 网站
序号 |
网址 |
描述 |
1 |
Github |
GitHub是一个面向开源及私有软件项目的托管平台,因为只支持git 作为唯一的版本库格式进行托管,故名GitHub。 |
2 |
Gitee |
码云(gitee.com)是 OSCHINA.NET 推出的代码托管平台,支持 Git 和 SVN,提供免费的私有仓库托管。 |
3 |
问答社区 |
Stack Overflow是一个与程序相关的IT技术问答网站。 |
4 |
udemy |
Udemy 是一家开放式在线教育网站 (MOOC) |
5 |
禅道 |
禅道 项目管理软件 是国产的开源项目管理软件,专注研发项目管理,内置需求管理、任务管理、bug管理、缺陷管理、用例管理等 |
6 |
Youtube(视频学习) |
视频学习网站,国外的 |
7 |
国外知乎 |
在Quora能看一些在知乎不能聊的话题,Quora上的外国人对我们的评论还是比较理性的。 |
8 |
InfoQ |
infoq是一个实践驱动的社区资讯站点,致力于促进软件开发领域知识与创新的传播。 |
9 |
工具 |
OSCHINA.NET在线工具,ostools为开发设计人员提供在线工具,提供jsbin在线 CSS、JS 调试,在线 Java API文档等。 |
4. 书籍
序号 |
名称 |
1 |
入门java黄金资料 |
2 |
编程之美.完整版 |
3 |
Thinking in Java(第四版 ) |
4 |
MySQL必知必会(文字版) |
5 |
REDIS 入门指南 |
6 |
Java EE互联网轻量级框架整合开发 SSM框架 |
7 |
HTTP权威指南 |
8 |
git使用说明以及规范V1.0 |
9 |
Redis 深度历险 |
10 |
编程之美 |
5. 视频
序号 |
名称 |
1 |
HTML5游戏-坦克大战-内含电子书 |
2 |
Java多线程详解 |
3 |
Java语言基础教程-Java NIO流篇 |
4 |
mysql |
5 |
Spring、Struts、MVC、Hibernate、mybatis |
6 |
毕向东JAVA基础教程全套 |
7 |
达内SSM视频教程 |
8 |
马士兵_JavaSE视频 |
9 |
尚硅谷jQuery |
10 |
玩转Git视频教程 |
11 |
信息技术提高班springmvc25讲 |
12 |
最新Java基础入门与进阶全套视频 |
13 |
最新版Intellij IDEA高清视频教程 |
6. 项目
序号 |
名称 |
技能 |
1 |
开发一款博客系统 |
Spring、SpringMVC、Mybaits、Maven、Mysql、Git |
2 |
开发一款图书馆里系统 |
Spring、SpringMVC、Mybaits、Maven、Mysql、Git |
3 |
在线商城系统 |
Spring、SpringMVC、Mybaits、Maven、Mysql、Git |
4 |
在线视频资源系统 |
Spring、SpringMVC、Mybaits、Maven、Mysql、Git |
5 |
开发一款聊天软件 |
Java Socket、Swing、JavaFx |
6 |
考试系统 |
Java Socket、Swing、JavaFx |
大三
如果说大一、大二是打基础,那么大三是需要将一些技能栈的广度和已有知识的深度增强的一个过程,同时这一年的学习也基本会影响到将来找工作难易。付出多少终归是有回报的,只要你能在上学阶段就已经可以锻炼成一个正式工作1年左右的能力,那么找工作就像刷offer一样容易,面霸!
通过以往的学习和你自己对知识栈的积累,以及在这条路上认识到的同好,基本你也是一个小大牛了,可以独立解决一些问题和对一些知识有了自己的学习方法论。接下来这一年可以继续拓展自己的技能!
1. 软件
序号 |
软件 |
描述 |
1 |
虚拟机(VirtualBox、Virtual Machine) |
虚拟机的安装和使用,非常有利于你后续的对于一些软件的学习。 |
2 |
Postman |
是一款接口测试工具,简单易用。也是你后续工作中会用到的软件。 |
3 |
JMeter |
JMeter是Apache组织开发的基于Java的压力测试工具。有了他你就可以知道自己的网站、博客性能了。 |
2. 技术
后端技术
序号 |
语言 |
描述 |
1 |
深入Java |
多线程、JVMAPI、部分源码原理、HashMap、Tree链表、数组、网络通信、动态代理和反射、锁、IO等等 |
2 |
了解RPC框架 |
Dubbo、gRPC |
3 |
了解消息中间件 |
ActiveMQ、RocketMQ、kafka |
4 |
了解分布式思想 |
分布式系统(distributed system)是建立在网络之上的软件系统。正是因为软件的特性,所以分布式系统具有高度的内聚性和透明性。 |
5 |
框架方面 |
学会使用Maven搭建SSM类项目、了解领域驱动设计 |
6 |
了解云服务器 |
百度云、阿里、腾讯对学生用户都可以廉价购买学习使用 |
7 |
SpringBoot |
Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程。 |
8 |
SpringCloud |
Spring Cloud集成相关优质项目推荐 这些项目是Spring Cloud官方项目或是对Spring Cloud进行了有益的补充以及基于Spring Cloud最佳实践。 |
3. 网站
4. 书籍
序号 |
名称 |
1 |
Effective Java中文版(第2版) |
2 |
Java GC Tuning |
3 |
Java核心技术 卷1 |
4 |
Java核心技术 卷II |
5 |
Java特种兵(上册) |
6 |
Java虚拟机规范 |
7 |
Maven3实战 |
8 |
Servlet3.1规范中文版 |
9 |
Spring技术内幕:深入解析Spring架构与设计原理(第2版) |
10 |
《Java核心技术 卷II 高级特性 (原书第9版)》 |
11 |
《码出高效:Java开发手册》 |
12 |
【JavaScript高级程序设计(第3版)】中文 高清 完整 详细书签版 |
13 |
鸟哥的Linux私房菜 基础学习篇(第三版) |
14 |
深入分析Java Web技术内幕 |
15 |
深入理解Java虚拟机:JVM高级特性与最佳实践(最新第二版) |
5. 视频
序号 |
名称 |
1 |
JAVA应用JVM原理及参数调优深入讲解-11节 |
2 |
SpringCloud |
3 |
传智播客RabbitMQ视频教程 |
4 |
第一套:JVM内核—原理、诊断与优化 |
5 |
第二套:深入理解Java虚拟机(jvm性能调优+内存模型+虚拟机原理) |
6 |
第三套:深入Java虚拟机-类加载器专题 |
7 |
炼数成金Kafka视频教程 |
8 |
尚学堂RocketMQ视频教程 |
9 |
图灵学院-高并发下分布式锁实践 |
10 |
dubbo入门基础与集群搭建 |
6. 项目
序号 |
名称 |
技能 |
1 |
结合所有技术搭建一个自己个博客 |
域名、备案、虚拟机、https、github等等 |
2 |
完成一个中型项目,用于以后毕业设计和找工作 |
SpringBoot、SpringCloud、Mysql、Git、Maven、Xmind、Visio等 |
大四
到了这一年基本会分为;找实习工作、考研、考公务员,对于找实习工作的按照你的知识积累并不会很难,可以在实习僧以及校招等方面投递简历,对于简历的编写一定要参考下,不要胡乱的写,每一次投递都是你的机会。
整理好的知识技能栈,梳理下自己的能力范围,准备好面试的储备。在这个过程你可能会很忙,不在是能安心的坐下来学习,可能还得处理一下感情问题。但终归前程路漫漫,这不是终点!
1. 互联网
序号 |
公司 |
1 |
腾讯 |
2 |
阿里 |
3 |
华为 |
4 |
头条 |
5 |
百度 |
6 |
京东 |
7 |
美团 |
8 |
小米 |
9 |
网易 |
10 |
新浪 |
北上广深也都分布着的大厂互联网也不少,按需选择,这里就不一一列举了!
2. 工作
简历投递网站
- 快速融入团队
- 完成分配任务
- 学习涉及的技术栈和框架
3. 毕业设计
- 认真完成选题
- 整理项目设计的技术栈和相关资料
- 搭建Demo工程,逐步解决各项问题点
- 输出整体工程与文档
4. 书籍
序号 |
名称 |
1 |
Effective Java中文版(第2版) |
2 |
1000道 互联网Java工程师面试题 |
3 |
[代码大全2中文版(完整清晰版)] |
4 |
[深入理解Java.7.核心技术与最佳实践].成富.扫描版 |
5 |
Head First Java 中文高清版 |
6 |
HotSpot实战 |
7 |
Java_NIO_细节也精彩 |
8 |
Java.Concurrency.in.Practice |
9 |
JAVA解惑 |
10 |
Java虚拟机规范(Java SE 7) |
11 |
try和finally里的return |
12 |
白帽子讲Web安全 |
13 |
从Paxos到Zookeeper 分布式一致性原理与实践 |
14 |
深入理解Java虚拟机++JVM高级特性与最佳实践 |
15 |
写给大忙人看的Java SE 8 |
5. 视频
序号 |
名称 |
1 |
分布式支付系统 |
2 |
国家电力项目实战(共九天)_Java_SSH |
工作1-3年
正式工作往往跟在校学习并不一定,在学校很多时候都是在写 DEMO
,并没有一个整体全局的考虑。但是随着工作后你会跟着业务、运行、产品功能的不断的迭代,开发完成各种各样的需求。但是这 1-3
年也基本是一个个人技能爆发增强的过程。这样让你把之前学到的知识和现有项目中的锻炼,不断的完善个人的技术栈。
但也不忘记在这个阶段除了工作内容需要,也得继续扩展自己的知识技能。否则会陷入一种工具人的僵局,慢慢变成螺丝钉。要想不断的突破自我,一定是不断的学习和接受新的理念和新的挑战。
1. 技术
序号 |
语言 |
描述 |
1 |
Dubbo |
一款RPC框架,很多互联网都在用,也有的公司是自己的RPC框架。但是原理基本一样。 |
2 |
MQ |
消息型中间件,用于系统解耦、消峰等 |
3 |
Zookeeper |
分布式的,开放源码的分布式应用程序协调服务 |
4 |
ElasticSearch |
基于Lucene的搜索服务器 |
5 |
Eureka |
Eureka是Netflix开发的服务发现框架,本身是一个基于REST的服务,主要用于定位运行在AWS域中的中间层服务 |
6 |
nginx |
Nginx (engine x) 是一个高性能的HTTP和反向代理web服务器,同时也提供了IMAP/POP3/SMTP服务。 |
7 |
熔断、降级、限流 |
分布式微服务中在高并发下保护的一些策略 |
8 |
分布式任务 |
把定时任务通过集群的方式进行管理调度,并采用分布式部署,保证系统的高可用,提高了容错。 |
9 |
Jenkins |
工程搭建和部署上线 |
10 |
MyCat |
分库分表工具和原理 |
2. 工作
- 责任担当,在框架内合理完成需求开发
- 不止于此,对每一个需求不只是开发完成,还需要对上下文清楚的了解
- 沉淀成长,要学会对知识的积累形成自己的技术栈的一条完整链路
3. 书籍
序号 |
名称 |
1 |
阿里巴巴开发手册 |
2 |
代码整洁之道 |
3 |
程序员修炼之道 |
4 |
Java编程思想 |
5 |
深入理解Java虚拟机 |
6 |
Java并发编程实战 |
7 |
设计模式 |
8 |
Head First 设计模式(中文版) |
9 |
200个聪明人的逻辑思维游戏.最具挑战和智慧的逻辑思维谜题 |
4. 视频
序号 |
名称 |
1 |
老男孩Docker生产实践 |
2 |
慕课网Docker+k8s微服务容器化开发实践 |
3 |
Zookeeper分布式系统开发实战 |
4 |
nginx视频教程(3套) |
工作3-5年
3到5年的程序猿与三年前不太相同,以往大多数时候只是实现需求,完成任务。所能关注的信息基本也是一个点一个点,但是技术栈锻炼的还不错。那么可能会出现一种情况就是为什么技术不错却又不能全局的驾驭系统。那么这个阶段就是提升整体系统把控的能力,可以写出更加容易扩展和更好的健壮性的代码。
每一个阶段的成长都不太容易,需要一些项目给予也需要给自己一些加压。不只是对技术栈的更深层的理解,也要从中吸取更多的营养。学会更加良好的抽象化和完整的建设系统的能力。
1. 源码能力
序号 |
名称 |
1 |
Spring源码 |
2 |
Mybaits源码 |
3 |
Schedule 源码 |
4 |
Dubbo源码 |
5 |
线程池源码 |
6 |
JVM虚拟机原理,用Java实现JVM |
7 |
JDK 部分核心常用组件源码,JUC、HashMap |
2. 扩展技术
序号 |
名称 |
1 |
Netty |
2 |
javaagent |
3 |
asm |
4 |
javassist |
5 |
分布式跟踪 |
6 |
Docker |
7 |
熔断、降级、限流 |
3. 算法能力
序号 |
名称 |
1 |
动态规划 |
2 |
数据结构 |
3 |
算法思维 |
4 |
做一些算法题提升 |
4. 场景总结
序号 |
名称 |
1 |
各种场景的下的技术方案 |
2 |
个人技术栈的完整程度 |
5. 书籍
序号 |
名称 |
1 |
架构整洁之道 |
2 |
docker开发指南 |
3 |
实现领域驱动设计实践 |
4 |
分布式系统原理与范型 |
5 |
Redis设计与实现 |
6 |
google软件测试之道 |
7 |
Netty5.0架构剖析和源码解读 |
8 |
重构改善既有代码的设计 |
9 |
多线程并发编程在Netty中的应用分析-批注版 |
6. 视频
序号 |
名称 |
1 |
架构师体系视频 |
2 |
马哥docker+k8s视频教程 |
3 |
netty精讲(含电子书) |
总结
- 以上的内容总结基本也和我大学到现在的学习路线差不多,因为有些是新技术也同样补充了下。可能在这些内容里有一些是细节点是缺少的,但是也没关系。因为随着你的学习,会在你学习到的旅途中看到更多的风景,收获更多的果实。
- 程序员这个行业就是一个不断学习,不断成长的方向。如果你担心35岁以后怎么样,那么一定你是恐慌之前没有投入太多的经历去沉淀自己。所有的恐慌也不过是一点点懒惰的积累,最终的一个点爆发了而已。
- 愿努力拼搏的你,都能在前进的道路上有所收获!