发表时间:2022-03-23来源:网络
先说结论:计算机基础不影响你入门以及掌握编程语言。但是,想要搞懂其本质,还是需要有计算机基础知识的。另外,学习强度比较高的话大概需要半年,学习强度正常水平的话大概需要1年。 对于没有任何编程基础的小伙伴来说,这个时间或许还要继续延长一些。
以下内容为@JavaGuide原创,请勿搬运!如果帮助,还请各位看官老爷点个赞鼓励一下啊!
文章中的相关书籍我也已经同步到了 Github和Gitee上(有PDF版本可供下载),欢迎小伙伴们一起完善。
Github地址:https://github.com/CodingDocs/awesome-cs码云地址:https://gitee.com/SnailClimb/awesome-cs (Github无法访问或者访问速度比较慢的小伙伴可以看码云上的对应内容)拿我自己来说吧!我本科学校很一般,荆州的一所双非一本。在大二上学期末,最终确定了自己以后要走的技术方向是走 Java 后端。于是,我就开始制定学习计划,开始了自己的 Java 后端领域的打怪升级之路。
到了大三,我基本把 Java 后端领域一些必备的技术都给过了一遍,还用自己学的东西做了两个实战项目。整个过程一共花了我一个暑假+半个学期,每天的学习强度基本都在 10个小时以上。
一个是跟着老师一起做的绩效考核系统,类似下图这样。

一个是跟着网上视频做的分布式商城系统,自己对于其中的一些地方做了简单改进和优化,比如增加了缓存Redis。

如果你想让自己的简历更好看的话,记得多做一些实战项目!我已经将一些我觉得不错的实战项目打包,欢迎自取!
后来,秋招我去参加面试的公司都顺利拿到的 offer。个人比较追求 Life Balance 就去了武汉的ThoughtWorks ,一家外企。

不过,刚上大学那会,我真就像一个憨憨。整个大一,我都没有怎么认真学习编程,每天就是出去玩,还有参加各种社团活动。下面这张是我大一的一次徒步旅行(40多公里的路程)。

由于缺少正确的人指导,我当时学的时候也走了很多弯路,浪费了不少时间(我很羡慕大家能有我,就很厚脸皮!)。该学的都学的差不多之后,我就开始准备面试了。
对于每一门技术,我会去网上找一些常见的面试题,并把这些面试题作为重点来复习!同时,掌握这些面试题,又让我对这门技术有了更深刻的认识。我当时每天的任务基本就是刷刷算法题,写写代码,总结一下常见的面试问题。
这个期间还接过一些外包做(大三下学期实现经济独立,还赚了一些钱),还和一些朋友参加了一个软件设计大赛。这让我的编码能力有了非常大的进步。并且,让我的简历也有了更多可以写的东西。
2021最新版 Java学习路线已近更新!可能是你看过最用心、最全面的 Java 后端学习路线。
多说一句,对于编程初学者,我不太建议上来通过做项目学习。实践确实很重要,如果你没有编程基础的话,直接上手实战,很容易最后学个四不像。
建议你在学习编程的初期尽量多看一些优质视频。跟着视频一步一步走,可以让你少踩很多坑,学习编程的信心也会增加。
概览:

回答中的相关书籍我也已经同步到了 Github和Gitee上(有PDF版本可供下载),欢迎小伙伴们一起完善。
Github地址:https://github.com/CodingDocs/awesome-cs码云地址:https://gitee.com/SnailClimb/awesome-cs (Github无法访问或者访问速度比较慢的小伙伴可以看码云上的对应内容)如果你之前没有学习过编程的话,我建议你可以看看视频教程。
像尚硅谷的 《 Java 基础教程系列》和韩顺平老师的《零基础 30 天学会 Java》就很不错。

学习过 Java 的朋友,大部分应该都看过韩老师的课程吧!韩老师毕业于清华大学,录制的视频课程质量都非常高。内容易懂,并且不失严谨。
韩老师的《零基础 30 天学会 Java》系列不光会教你 Java 基础,还会帮你建立编程思想,让你知道学习了 Java 之后,你可以从事什么工作。
看视频的同时,配套一本好书也是非常有作用的。
《Head First Java》 这本书在是入门 Java 的很不错的书籍 。

这本书是几位大厂的大佬开源的。
这几位作者为了写好《深入浅出 Java 多线程》这本书阅读了大量的 Java 多线程方面的书籍和博客,然后再加上他们的经验总结、Demo 实例、源码解析,最终才形成了这本书。
这本书的质量也是非常过硬!给作者们点个赞!这本书有统一的排版规则和语言风格、清晰的表达方式和逻辑。并且每篇文章初稿写完后,作者们就会互相审校,合并到主分支时所有成员会再次审校,最后再通篇修订了三遍。
《Java 并发实现原理:JDK 源码剖析》

第 2 个是你假笨大佬的 《JVM 参数【Memory 篇】》 教程,很厉害了!

下面是我总结的一些关于 JVM 的小问题,你可以拿来自测:
什么是虚拟机?Java 内存区域是怎么划分的?大对象放在哪个内存区域?垃圾回收有哪些算法?GC 的流程什么是类加载?何时类加载?类加载流程?知道哪些类加载器。类加载器之间的关系?类加载器的双亲委派了解么? 结合 Tomcat 说一下双亲委派(Tomcat 如何打破双亲委托机制?…)。常见调优参数有哪些?……我们网站或 者 APP 的数据都是需要使用数据库来存储数据的。
一般企业项目开发中,使用 MySQL 比较多。如果你要学习 MySQL 的话,可以看下面这 3 本书籍:
《MySQL 必知必会》 :非常薄!非常适合 MySQL 新手阅读,很棒的入门教材。《高性能 MySQL》 : MySQL 领域的经典之作!学习 MySQL 必看!属于进阶内容,主要教你如何更好地使用 MySQL 。既有有理论,又有实践!如果你没时间都看一遍的话,拿我建议第 5 章(创建高性能的索引) 、第 6 章(查询性能优化) 你你一定要认真看一下。《MySQL 技术内幕》 :你想深入了解 MySQL 存储引擎的话,看这本书准没错!
视频的话,你可以看看动力节点的 《MySQL 数据库教程视频》。这个视频基本上把 MySQL 的相关一些入门知识给介绍完了。
学习了 MySQL 之后,务必确保自己掌握下面这些知识点:
MySQL 常用命令 :安全:登录、增加/删除用户、备份数据和还原数据数据库操作: 建库建表/删库删表、用户权限分配……MySQL 中常用的数据类型、字符集编码MySQL 简单查询、条件查询、模糊查询、多表查询以及如何对查询结果排序、过滤、分组……MySQL 中使用索引、视图、存储过程、游标、触发器……如果你想让自己更加了解 MySQL ,同时也是为了准备面试的话,下面这些知识点要格外注意:
索引:索引优缺点、B 树和 B+树、聚集索引与非聚集索引、覆盖索引事务:事务、数据库事务、ACID、并发事务、事务隔离级别存储引擎(MyISAM 和 InnoDB)锁机制与 InnoDB 锁算法Redis 就是一个使用 C 语言开发的数据库,不过与传统数据库不同的是 Redis 的数据是存在内存中的 ,也就是它是内存数据库,所以读写速度非常快,因此 Redis 被广泛应用于缓存方向。
如果你要学习 Redis 的话,强烈推荐 《Redis 设计与实现》 和 《Redis 实战》 这两本书。另外,《Redis 开发与运维》 这本书也非常不错,既有基础介绍,又有一线开发运维经验分享。

下面是我总结的一些关于并发的小问题,你可以拿来自测:
Redis 和 Memcached 的区别和共同点为什么要用 Redis/为什么要用缓存?Redis 常见数据结构以及使用场景分析Redis 没有使用多线程?为什么不使用多线程?Redis6.0 之后为何引入了多线程?Redis 给缓存数据设置过期时间有啥用?Redis 是如何判断数据是否过期的呢?过期的数据的删除策略了解么?Redis 内存淘汰机制了解么?Redis 持久化机制(怎么保证 Redis 挂掉之后再重启数据可以进行恢复)Redis 缓存穿透、缓存雪崩?如何保证缓存和数据库数据的一致性?……非常重要!非常重要!特别是 Git 和 Docker。
除了下面这些工具之外,我强烈建议你一定要搞懂 Github 的使用。一些使用 Github 的小技巧,你可以看《Github 小技巧》这篇文章。
俗话说:“工欲善其事,必先利其器 !”。选择一款好的开发工具对于我们高效率编码非常有帮助!
常用的 Java 开发工具就 Eclipse 和 IDEA。就我个人而言 IDEA 是最适合 Java 开发者的 IDE 。
建议你要熟悉 IDEA 的基本操作以及常用快捷。你可以通过 Github 上的开源教程 《IntelliJ IDEA 简体中文专题教程》 来学习 IDEA 的相关使用。
除了 IDEA 自身对编码优秀的支持(比如智能上下文提示)之外,IDEA 中还有丰富的插件来帮助我们高效开发。《IDEA 插件》 这个系列专辑中推荐了很多实用 IDEA 必备的插件!
强烈建议学习常用框架之前可以提前花几天时间学习一下Maven的使用。(到处找 Jar 包,下载 Jar 包是真的麻烦费事,使用 Maven 可以为你省很多事情)。
Git 技能对于程序员来说也是必备的!试着在学习的过程中将自己的代码托管在 Github 上,有一个漂亮的 Github 主页在求职面试中是十分加分的。并且,现在的企业都是基于 Git 在 GitHub 或 GitLab 平台上做版本控制。
学习 Git 的话,强烈推荐给大家一个可以交互式学习 Git 的网站 Learn Git Branching。效果真的非常非常棒,通过游戏的方式让你学习 Git 的常见操作。
整个教程分为很多关,每一关都有非常详细的指导,还会有详细的动图展示结果。并且,你做错了之后还可以使用 reset 命令从头开始。

如果你是在不知道答案的话,还可以使用 show solution 命令查看答案。

这种即时反馈的学习让过程变得有趣!真心感谢这个网站的作者,太爱了!
另外,你可以看看 Github 上开源的这篇 《Git 极简入门》 ,像版本控制和 Git 的相关概念、Git 常见操作这篇文章都有介绍到。
如果想要详细了解 Git 的话,Git 官方文档教程是肯定要看的,介绍的非常全面,并且有中文版!

《Pro Git》这本书也非常不错,还有中文版,内容非常全面,硬核!


如果你比较喜欢看视频教程的话,可以看看极客时间的《玩转 Git 三剑客》,课程的作者是携程代码平台负责人苏玲,讲的挺不错的!
传统的开发流程中,我们的项目通常需要使用 MySQL、Redis、FastDFS 等等环境,这些环境都是需要我们手动去进行下载并配置的,安装配置流程极其复杂,而且不同系统下的操作也不一样。
Docker 的出现完美地解决了这一问题,我们可以在容器中安装 MySQL、Redis 等软件环境,使得应用和环境架构分开,它的优势在于:
一致的运行环境,能够更轻松地迁移对进程进行封装隔离,容器与容器之间互不影响,更高效地利用系统资源可以通过镜像复制多个一致的容器Docker 常见概念解读,可以看这篇 Github 上开源的这篇《Docker 基本概念解读》 ,从零到上手实战可以看《Docker 从入门到上手干事》这篇文章,内容非常详细!
另外,再给大家推荐一本质量非常高的开源书籍《Docker 从入门到实践》 ,这本书的内容非常新,毕竟书籍的内容是开源的,可以随时改进。

Spring 和 SpringBoot 真的很重要!
一定要搞懂 AOP 和 IOC 这两个概念。Spring 中 bean 的作用域与生命周期、SpringMVC 工作原理详解等等知识点都是非常重要的,一定要搞懂。
企业中做 Java 后端,你一定离不开 SpringBoot ,这个是必备的技能了!一定一定一定要学好!
像 SpringBoot 和一些常见技术的整合你也要知识怎么做,比如 SpringBoot 整合 MyBatis、 ElasticSearch、SpringSecurity、Redis 等等。
学习 Spring 的话,可以多看看 《Spring 的官方文档》,写的很详细。你可以在这里找到 Spring 全家桶的学习资源。

你也可以把 《Spring 实战》 这本书作为学习 Spring 的参考资料。 这本书还是比较新的,目前已经出到了第 5 版,基于 Spring 5 来讲。

这可能是全网质量最高并且免费的 Spring Boot 教程了,好评爆炸!
另外,Spring Boot 这块还有很多优质的开源教程,我已经整理好放到 awesome-java@SpringBoot 中了。

学习路线比较长,完整学习路线我放在了下面这个知乎回答中:
再推荐一个非常不错的 Java 教程类开源项目:JavaGuide 。我在大三开始准备秋招面试的时候,创建了 JavaGuide 这个项目。目前这个项目已经有 100k+的 star,相关阅读:《1049 天,100K!简单复盘!》 。

对于你学习 Java 以及准备 Java 方向的面试都很有帮助!正如作者说的那样,这是一份:涵盖大部分 Java 程序员所需要掌握的核心知识的 Java 学习+面试指南!
另外,这个项目还推出了一个专门为 Java/程序员面试而生的 PDF 版本!简直不要太棒!
最后再推荐一下《Java 面试进阶指北 打造个人的技术竞争力》 准备Java后端面试必备参考资料!

我是 Guide哥,拥抱开源,喜欢烹饪。开源项目 JavaGuide 作者,Github:Snailclimb - Overview 。未来几年,希望持续完善 JavaGuide,争取能够帮助更多学习 Java 的小伙伴!共勉!凎!点击查看我的2020年工作汇报!
原创不易,欢迎点赞分享,欢迎关注 @JavaGuide,我会持续分享原创干货~
本回答为我本人原创,如需转载,还请注明出处啊!
皓盘云建最新版下载v9.0 安卓版
53.38MB |商务办公
ris云客移动销售系统最新版下载v1.1.25 安卓手机版
42.71M |商务办公
粤语翻译帮app下载v1.1.1 安卓版
60.01MB |生活服务
人生笔记app官方版下载v1.19.4 安卓版
125.88MB |系统工具
萝卜笔记app下载v1.1.6 安卓版
46.29MB |生活服务
贯联商户端app下载v6.1.8 安卓版
12.54MB |商务办公
jotmo笔记app下载v2.30.0 安卓版
50.06MB |系统工具
鑫钜出行共享汽车app下载v1.5.2
44.7M |生活服务