在座的诸位有没有是自学Java的,有的话评论区给我扣个1看看

但凡自学过的同学都知道有多难,虽说现在互联网非常发达,不明白的上网一搜就有很多资料,不过大多质量不高,而且非常碎片化,实在很难梳理成一个可持续成长的体系。

所以有了这篇文章,我结合自身自学的经历与从事开发多年的经验,整理了一份切实可行的自学路线, 并且每一步都整理了相应的学习资料与练习资料,希望对自学的各位小伙伴能有所帮助。

本文架构大概如下:

常用工具

工欲善其事,必先利其器!

一个易上手、好用、高效的软件工具对于程序员工作效率的提升是不言而喻的,这些常用开发软件和工具比如:

  • 基础的软件开发环境和设施
  • 好用高效的在线工具和网站
  • 本地常用的一些编程软件
  • Linux操作系统
  • 版本控制工具
  • 高效的IDE和编辑器
  • API管理工具/文档管理工具
  • CI守护系统
  • …… 等等

这里就不展开讲了,这一步想必是难不倒各位的,接下来我们正式开始!

计算机基础

计算机基础是最最重要的!即使后面的东西都没学(或者来不及学),基础部分是肯定需要完成的,这也是后面所有应用框架学习和做项目的基石;反之,在应用框架的学习或者做项目时如果感觉吃力,那就可能非常有必要回过头再来巩固对应的基础知识。 计算机基础的学习不是一蹴而就的,需要一定的反复和回炉才能做到真正的融会贯通,需要一个过程。珍惜每一次回顾和复习基础的机会,应扎实精进,步步为营。 那我们口口声声所说的编程基础(计算机基础)到底指是什么呢? 此处整理为六大方面:

  • Java基础
  • 数据结构和算法
  • 计算机网络
  • 操作系统(计组)
  • 数据库/SQL
  • 设计模式

应用框架和工具

  • 计算机基础聊完了,接下来就是应用和实践的环节了。这部分通常会涉及到一些工具编程环境、以及应用框架
  • 企业级开发不同于个人自学,出于可复用性稳定性开发成本开发效率质量保证等一系列因素的考量,不可能每一个功能、每一个组件都从0开始徒手造轮子,所以这时候各种应用框架和工具的出现就非常有帮助了。
  • 其实框架讲白了就是别人经过多年迭代写好的一套工具代码库逻辑、亦或是流程,把原本都需要从0开始手写的基本功能和组件都给封装进去,用户只要符合框架约定的规则进行编码,或者调用框架提供的方法或者工具,就能快速拉起业务功能,创造实际经济价值。
  • 所以框架的出现从不同的角度看也是有多面性的:对于企业级开发效率提升而言肯定是有帮助的,但是对于程序员个人思考编码能力提升却未必是好事,所以多注重基础、深挖原理,提升自身竞争力还是非常有必要的。

书籍推荐


Tip:

毫无疑问的是,对于上文提到的 「编程基础」 部分,有大量经典的书籍值得阅读,每一本都是大师们若干年经验的汇聚,所以学好编程基础,对于我们普通人来说,看书是一个非常直接有效的方式。

很多经典书看一遍可能远远不够,正所谓 「初看懵、再看迷、三看发现有点小意思」 讲的就是这个道理,这事急不得,而且有些东西的确需要一个反反复复的过程,有些甚至是在工作后的实践中才会遇到,所以珍惜每一次回炉重造的过程吧。

这里推荐一些,当然一家之言,如果不认同也无妨

Java基础

  • 《Java核心技术(Core Java)》
  • 《Java编程思想》
  • 《Effective Java》
  • 《深入理解 Java 虚拟机》
  • 《实战Java高并发程序设计》
  • 《Java并发编程实战》

数据结构和算法

  • 《数据结构与算法分析 Java语言描述》
  • 《算法 第4版》

计算机网络(TCP/IP协议)

  • 《TCP/IP详解 卷1:协议》
  • 《计算机网络:自顶向下方法》
  • 《图解TCP/IP》《图解HTTP》

数据库/SQL

  • 《MySQL必知必会》
  • 《高性能MySQL》

操作系统

  • 《深入理解计算机系统(CSAPP)》
  • 《现代操作系统》

设计模式

  • 《Head First设计模式》/《大话设计模式》
  • 《设计模式:可复用面向对象软件的基础》

项目经验

说起来项目经验也是让很多同学蛋疼的一件事,不过别怕,这我也替你们想到了,整理了一些很经典的练手项目,即使把这些项目写在简历上,面试官都说不出一个不字

spring boot项目:

spring cloud项目:

其实一般来说,能撸出几个上面的项目就已经很不错, 但是如果你想拿一个好一点的offer,那么分布式微服务你多少还是得懂一点:


面试准备和求职

简历这块没什么好说的,不会的同学网上多下载几个模板就可以了,主要说一下面试题这块,近年来Java岗的面试越来越八股文化,搞得很多人吐槽不已。

但也可以理解,毕竟模板化的面试可以节省大量人力物力,作为求职者的我们既然改变不了,那就去适应它,这里为大家整理了2021年Java岗被问得最多的210道面试题,包含多种正确题解和实例演示

这里就不都放出来了,免得有人又说我水,同样的,点赞+关注,【双击此处】获取资料即可