零基础自学Java到正式入职阿里,我的经验值得大家借鉴

image

先来张图镇楼,这次不放offer了,直接上狗牌。

这期依然是粉丝投稿,这位粉丝在2021年秋招提前批中顺利拿到阿里P5offer,现已正式入职,把他的学习方法给大家分享一下,文末有他从自学到成功入职所有的学习资料,免费给大伙白嫖,这波啊,这波是开天门,愿大伙人人如龙[狗头]

编程组成部分

image

很多人都觉得编程很难,那难不难呢?
难!
那普通人能不能学得会呢?
能!

看完这两句话可能又有人骂我水字数了,这里正式澄清一下,我就是在水字数[狗头]

如果想高效学习某一项技术,首先得搞清楚这门技术的构成部分,

任何一门编程语言都是由下面这几部分部分组成的:

1、数据类型、数据结构
2、逻辑判断,循环
3、类、函数(方法)
4、库函数(库方法)
5、第三方类库

对于零基础的新手来说,1、2、3 可能需要花点时间 ,但只要学习教程到位,学习方法合理,一个月的时间就完全足够了!

对于有基础的人来说(之前学过 C语言或者其他编程语言),一周时间就足够了。

接下来的重点是库函数(库方法)和第三方类库的学习,你能否熟练写程序就取决于对各种开发库的熟悉程度。新手需要不停地查手册,查看每个方法和参数,通过大量的使用来形成肌肉记忆

自学Java

image

其实写这篇文章之前,我也在网上看了很多所谓的自学系列教程,很多我都不太满意,有的甚至让我感到愤怒,要么是站在现有的视角侃侃而谈,要么是纯粹的瞎编骗小白。

很多文章都有一个老毛病:完全没有从小白的视角去思考,内容太多,什么微服务、架构、大数据都来了,这根本不是自学阶段该去看的东西,小白看了这些文章,只会越看越懵逼,根本没法下手。

所以借这位粉丝的学习经历,来给大家好好捋一下真实的接地气的自学Java方法!

1、Java SE

1.1、Java基础

基础概念/语法:面向对象(继承、封装、多态)基础、包、类、接口、方法、对象、属性、第一个 Java 程序。

数据类型:

1)基本数据类型8种:byte、short、int、long、float、double、char、boolean;

2)引用数据类型

变量类型:局部变量、实例变量(成员变量)、类变量(静态变量)

修饰符:public、private、不写、protected、static、final、abstract、synchronized ,volatile

运算符:

1)算术运算符:+、-、*、/、%、++、--;

2)关系运算符:==、!=、>、<、>=、<=;

3)逻辑运算符:&&、||、!;

4)赋值运算符:=、+=、-=、*=、/=;

5)条件运算符:Object x = (expression) ? value if true : value if false;

循环结构:for 循环、while 循环、do...while 循环

条件语句:if...else、if...else if...else

异常处理:try...catch...finally、throws、throw

字符串:String、StringBuilder、StringBuffer

其他:switch case、数组、日期时间、枚举、使用 IDE 进行 DEBUG

1.2、集合

Map:HashMap(最重要)、ConcurrentHashMap、TreeMap、Hashtable

List:ArrayList(最重要)、LinkedList

Set:HashSet(最重要)、TreeSet

1.3、多线程

线程生命周期

创建线程的三种方式:继承 Thread、实现 Runnable;实现 Callable

ThreadPoolExecutor(线程池)

锁:synchronized 和 Lock

1.4、I/O流

1.5、网络编程

1.6、反射

1.7、泛型

1.8、注解

关于Java基础我之前有总结过一份PDF,如下

image

需要的同学可以直接点击[传送门](https://mp.weixin.qq.com/s?__biz=MzkzNjE1NTcyNQ==&mid=2247484693&idx=1&sn=990c5a72f035252538ca54e4421fe87f&chksm=c2a24a37f5d5c321d70aef0b76019a49c1bb02b529fc9a8ce1cf47227190e6384ca588794e01&token=268042935&lang=zh_CN#rd)白嫖

先来张图镇楼,这次不放offer了,直接上狗牌。

这期依然是粉丝投稿,这位粉丝在2021年秋招提前批中顺利拿到阿里P5offer,现已正式入职,把他的学习方法给大家分享一下,文末有他从自学到成功入职所有的学习资料,免费给大伙白嫖,这波啊,这波是开天门,愿大伙人人如龙[狗头]

编程组成部分

image

很多人都觉得编程很难,那难不难呢?
难!
那普通人能不能学得会呢?
能!

看完这两句话可能又有人骂我水字数了,这里正式澄清一下,我就是在水字数[狗头]

如果想高效学习某一项技术,首先得搞清楚这门技术的构成部分,

任何一门编程语言都是由下面这几部分部分组成的:

1、数据类型、数据结构
2、逻辑判断,循环
3、类、函数(方法)
4、库函数(库方法)
5、第三方类库

对于零基础的新手来说,1、2、3 可能需要花点时间 ,但只要学习教程到位,学习方法合理,一个月的时间就完全足够了!

对于有基础的人来说(之前学过 C语言或者其他编程语言),一周时间就足够了。

接下来的重点是库函数(库方法)和第三方类库的学习,你能否熟练写程序就取决于对各种开发库的熟悉程度。新手需要不停地查手册,查看每个方法和参数,通过大量的使用来形成肌肉记忆

自学Java

image

其实写这篇文章之前,我也在网上看了很多所谓的自学系列教程,很多我都不太满意,有的甚至让我感到愤怒,要么是站在现有的视角侃侃而谈,要么是纯粹的瞎编骗小白。

很多文章都有一个老毛病:完全没有从小白的视角去思考,内容太多,什么微服务、架构、大数据都来了,这根本不是自学阶段该去看的东西,小白看了这些文章,只会越看越懵逼,根本没法下手。

所以借这位粉丝的学习经历,来给大家好好捋一下真实的接地气的自学Java方法!

1、Java SE

1.1、Java基础

基础概念/语法:面向对象(继承、封装、多态)基础、包、类、接口、方法、对象、属性、第一个 Java 程序。

数据类型:

1)基本数据类型8种:byte、short、int、long、float、double、char、boolean;

2)引用数据类型

变量类型:局部变量、实例变量(成员变量)、类变量(静态变量)

修饰符:public、private、不写、protected、static、final、abstract、synchronized ,volatile

运算符:

1)算术运算符:+、-、*、/、%、++、--;

2)关系运算符:==、!=、>、<、>=、<=;

3)逻辑运算符:&&、||、!;

4)赋值运算符:=、+=、-=、*=、/=;

5)条件运算符:Object x = (expression) ? value if true : value if false;

循环结构:for 循环、while 循环、do...while 循环

条件语句:if...else、if...else if...else

异常处理:try...catch...finally、throws、throw

字符串:String、StringBuilder、StringBuffer

其他:switch case、数组、日期时间、枚举、使用 IDE 进行 DEBUG

1.2、集合

Map:HashMap(最重要)、ConcurrentHashMap、TreeMap、Hashtable

List:ArrayList(最重要)、LinkedList

Set:HashSet(最重要)、TreeSet

1.3、多线程

线程生命周期

创建线程的三种方式:继承 Thread、实现 Runnable;实现 Callable

ThreadPoolExecutor(线程池)

锁:synchronized 和 Lock

1.4、I/O流

1.5、网络编程

1.6、反射

1.7、泛型

1.8、注解

关于Java基础我之前有总结过一份PDF,如下

image

需要的同学可以直接点击[传送门](https://mp.weixin.qq.com/s?__biz=MzkzNjE1NTcyNQ==&mid=2247484693&idx=1&sn=990c5a72f035252538ca54e4421fe87f&chksm=c2a24a37f5d5c321d70aef0b76019a49c1bb02b529fc9a8ce1cf47227190e6384ca588794e01&token=268042935&lang=zh_CN#rd)白嫖

小结:

1、该阶段很重要,建议至少看两套不同的教程。由于每个老师的观点都会有一些片面性,当遇到疑惑的时候,可以看看其他老师的理解,可能就想通了。

2、看第一遍时会比较慢,第二遍会快一点,已经掌握的知识可以快速带过。

3、有疑问的知识多看几遍,也可以网上看点博文辅助理解,实在看不懂的可以先记下来,后面学到一定程度可能就理解了。

4、对于重点知识,可以做笔记来加深自己的理解,也方便后续自己复习。

5、Java基础、集合、多线程是核心中的核心。

章节目标:熟练掌握该章节所列的所有 Java 核心基础知识,能熟练的编写 Java 程序。

2、SQL

2.1、SQL

1)了解基础概念;

2)掌握 DML 语句的使用:SELECT、UPDATE、INSERT 和 DELETE;

3)掌握 DDL 语句的使用:操作表时用到的一些SQL语句。例如:CREATE、ALTER、DROP等。

2.2、JDBC

掌握基本的使用。

2.3、MySQL

掌握基本的使用。

章节目标:熟练掌握SQL语句的基础使用,了解JDBC和MySQL的基础使用。

关于SQL学习,这里只推荐一本《SQL必知必会》,目录如下,是非常经典的一本SQL入门书了,概念讲得很清楚,也很全面,这本书的PDF获取方法是一样的,需要的可来自取

image

3、Java Web

3.1、偏前端内容

HTML、CSS、JS(JavaScript)、Ajax、jQuery

3.2、偏后端内容

Servlet、JSP、Request、Response、HTTP、Session、Cookie、Filter、Listener

Java Web初级内容的相关技术在当前 Java 后端已经比较少直接使用到了,最近几年的 Java 程序员甚至可能都没接触过。大部分是被下一节的 SSM 框架给封装代替掉了,但是这一章节初学者还是有必要认真学习一下,做到能看得懂、能照着改。

章节目标:了解该章节所涉及的知识,做到能看得懂、能照着改。对于 Servlet 可以稍微多留意一下,Servlet 是本章节比较重要的知识。

Javaweb要学的东西太多了,其实不是很推荐看书,而是推荐看视频学习,但考虑到有些同学看视频犯困,所以推荐一本不怎么出错的书吧——《JavaWeb开发实战经典》

只学Javaweb的学习视频,我这里收藏了一套很不错的,也是分享过很多次给粉丝和朋友了

image

*需要的朋友可以直接点击传送门领取

4、常用工具

4.1、Tomcat

Web 应用服务器。

4.2、Maven

项目构建管理,简单理解为用于导入 Jar 依赖的工具。

4.3、Git

分布式版本控制系统,简单理解为代码管理工具。

章节目标:需要知道有这么些工具,然后掌握其基本的使用即可。

这里推荐你读一下《深入剖析Tomcat》

image

至于Maven和Git的视频教程我都有收藏,可以随便来白嫖

5、核心框架

5.1、Spring

image

1)掌握基本的使用;

2)掌握核心概念,需重点注意的知识点:IoC(控制翻转)、DI(依赖注入)、AOP(面向切面编程)、事务控制。

5.2、SpringMVC

1)掌握基本的使用;

2)掌握核心概念,需重点注意的知识点:MVC 架构、Controller 里的各种注解、一个 HTTP 请求的流程。

5.3、MyBatis

1)掌握基本的使用;

2)掌握核心概念,需重点注意的知识点:XML 文件力的 SQL 语法、接口(interface)和 SQL 的映射。

5.4、Spring Boot

掌握基本的使用。

章节目标:了解 SSM 框架的基本使用,该阶段可以不用做到完全理解,可以在项目实战里去通过实际的例子加深自己对 SSM 的理解。

配套书籍PDF:

image

6、项目实战

准备 2~3个项目实战,将之前所学的知识点应用起来,做出一个真正的项目(网站)。学习的项目必须***M 框架,加深自己对 SSM 的理解。该阶段所做的项目,也是未来写在你简历里的“项目经验”,需要跟着敲一遍。

目标:将之前所学知识串联起来,熟练掌握一个 Web 项目的完整流程,通过项目加深对之前所学知识的理解,特别是 SSM 框架知识。

关于练手项目我也给你们整理好了,都是非常具有代表性的一些项目,可以把你前面所学串联在一起,

经典练手项目源码与笔记:

spring boot项目:

image

spring cloud项目:

image

怎么领取应该都知道了吧?不知道的同学看文末红字

7、面试准备

如果对于上述的 Java 基础知识你已经能熟练使用,然后也能熟练搭建一个简单的 SSM 的项目。那我建议你可以将时间多花在面试准备这一章节上,面试准备的重要程度可能超过很多人的想象。同时在看面试题的过程中也能加深自己对之前知识的认知。

7.1、重点知识点

Java 基础高频面试题

集合高频面试题,重点:HashMap

多线程高频面试题,重点: synchronized、线程池

MySQL高频面试题,重点:索引、锁

Spring/SpringMVC/MyBatis高频面试题,重点:Spring

SSM 实战项目

该模块对应我们上面学习的知识,但是只会使用是很难满足当前的面试要求的,因此需要针对这些知识进行面试强化,具体的题目可以看下我的面试系列文章。

7.2、进阶知识点

  • JVM
  • Redis
  • Kafka
  • Zookeeper
  • Dubbo

算法:常见的算法,二分、排序等,可以刷剑指offer的题目

设计模式:可以主要看下单例模式

关于面试这块今天的投稿粉丝可就有话说了,他这两个月面试了将近四十家公司,其中不乏大厂,他有个很好的习惯——复盘。所以他索性就把遇到过的面试题分门别类的整理成了一套标准的Java面试八股文

image

在我“动之以情,晓之以理”的文明规劝下,他“非常乐意”的把这套八股文分享了出来,需要的朋友可以随便拿。

什么,我没说怎么领取?

郑重提示:文章中的所有学习资料,需要的同学可以直接点击传送门白嫖**

以上,end,那下期再见
)
小结:

1、该阶段很重要,建议至少看两套不同的教程。由于每个老师的观点都会有一些片面性,当遇到疑惑的时候,可以看看其他老师的理解,可能就想通了。

2、看第一遍时会比较慢,第二遍会快一点,已经掌握的知识可以快速带过。

3、有疑问的知识多看几遍,也可以网上看点博文辅助理解,实在看不懂的可以先记下来,后面学到一定程度可能就理解了。

4、对于重点知识,可以做笔记来加深自己的理解,也方便后续自己复习。

5、Java基础、集合、多线程是核心中的核心。

章节目标:熟练掌握该章节所列的所有 Java 核心基础知识,能熟练的编写 Java 程序。

2、SQL

2.1、SQL

1)了解基础概念;

2)掌握 DML 语句的使用:SELECT、UPDATE、INSERT 和 DELETE;

3)掌握 DDL 语句的使用:操作表时用到的一些SQL语句。例如:CREATE、ALTER、DROP等。

2.2、JDBC

掌握基本的使用。

2.3、MySQL

掌握基本的使用。

章节目标:熟练掌握SQL语句的基础使用,了解JDBC和MySQL的基础使用。

关于SQL学习,这里只推荐一本《SQL必知必会》,目录如下,是非常经典的一本SQL入门书了,概念讲得很清楚,也很全面,这本书的PDF获取方法是一样的,需要的可来自取

image

3、Java Web

3.1、偏前端内容

HTML、CSS、JS(JavaScript)、Ajax、jQuery

3.2、偏后端内容

Servlet、JSP、Request、Response、HTTP、Session、Cookie、Filter、Listener

Java Web初级内容的相关技术在当前 Java 后端已经比较少直接使用到了,最近几年的 Java 程序员甚至可能都没接触过。大部分是被下一节的 SSM 框架给封装代替掉了,但是这一章节初学者还是有必要认真学习一下,做到能看得懂、能照着改。

章节目标:了解该章节所涉及的知识,做到能看得懂、能照着改。对于 Servlet 可以稍微多留意一下,Servlet 是本章节比较重要的知识。

Javaweb要学的东西太多了,其实不是很推荐看书,而是推荐看视频学习,但考虑到有些同学看视频犯困,所以推荐一本不怎么出错的书吧——《JavaWeb开发实战经典》

只学Javaweb的学习视频,我这里收藏了一套很不错的,也是分享过很多次给粉丝和朋友了

image

*需要的朋友可以直接点击传送门领取

4、常用工具

4.1、Tomcat

Web 应用服务器。

4.2、Maven

项目构建管理,简单理解为用于导入 Jar 依赖的工具。

4.3、Git

分布式版本控制系统,简单理解为代码管理工具。

章节目标:需要知道有这么些工具,然后掌握其基本的使用即可。

这里推荐你读一下《深入剖析Tomcat》

image

至于Maven和Git的视频教程我都有收藏,可以随便来白嫖

5、核心框架

5.1、Spring

image

1)掌握基本的使用;

2)掌握核心概念,需重点注意的知识点:IoC(控制翻转)、DI(依赖注入)、AOP(面向切面编程)、事务控制。

5.2、SpringMVC

1)掌握基本的使用;

2)掌握核心概念,需重点注意的知识点:MVC 架构、Controller 里的各种注解、一个 HTTP 请求的流程。

5.3、MyBatis

1)掌握基本的使用;

2)掌握核心概念,需重点注意的知识点:XML 文件力的 SQL 语法、接口(interface)和 SQL 的映射。

5.4、Spring Boot

掌握基本的使用。

章节目标:了解 SSM 框架的基本使用,该阶段可以不用做到完全理解,可以在项目实战里去通过实际的例子加深自己对 SSM 的理解。

配套书籍PDF:

image

6、项目实战

准备 2~3个项目实战,将之前所学的知识点应用起来,做出一个真正的项目(网站)。学习的项目必须***M 框架,加深自己对 SSM 的理解。该阶段所做的项目,也是未来写在你简历里的“项目经验”,需要跟着敲一遍。

目标:将之前所学知识串联起来,熟练掌握一个 Web 项目的完整流程,通过项目加深对之前所学知识的理解,特别是 SSM 框架知识。

关于练手项目我也给你们整理好了,都是非常具有代表性的一些项目,可以把你前面所学串联在一起,

经典练手项目源码与笔记:

spring boot项目:

image

spring cloud项目:

image

怎么领取应该都知道了吧?不知道的同学往前翻或者往后翻

7、面试准备

如果对于上述的 Java 基础知识你已经能熟练使用,然后也能熟练搭建一个简单的 SSM 的项目。那我建议你可以将时间多花在面试准备这一章节上,面试准备的重要程度可能超过很多人的想象。同时在看面试题的过程中也能加深自己对之前知识的认知。

7.1、重点知识点

Java 基础高频面试题

集合高频面试题,重点:HashMap

多线程高频面试题,重点: synchronized、线程池

MySQL高频面试题,重点:索引、锁

Spring/SpringMVC/MyBatis高频面试题,重点:Spring

SSM 实战项目

该模块对应我们上面学习的知识,但是只会使用是很难满足当前的面试要求的,因此需要针对这些知识进行面试强化,具体的题目可以看下我的面试系列文章。

7.2、进阶知识点

  • JVM
  • Redis
  • Kafka
  • Zookeeper
  • Dubbo

算法:常见的算法,二分、排序等,可以刷剑指offer的题目

设计模式:可以主要看下单例模式

关于面试这块今天的投稿粉丝可就有话说了,他这两个月面试了将近四十家公司,其中不乏大厂,他有个很好的习惯——复盘。所以他索性就把遇到过的面试题分门别类的整理成了一套标准的Java面试八股文

image

在我“动之以情,晓之以理”的文明规劝下,他“非常乐意”的把这套八股文分享了出来,需要的朋友可以随便拿。

什么,我没说怎么领取?

郑重提示:文章中的所有资料,都可以直接点击[传送门](https://mp.weixin.qq.com/s?__biz=MzkzNjE1NTcyNQ==&mid=2247484693&idx=1&sn=990c5a72f035252538ca54e4421fe87f&chksm=c2a24a37f5d5c321d70aef0b76019a49c1bb02b529fc9a8ce1cf47227190e6384ca588794e01&token=268042935&lang=zh_CN#rd)白嫖

以上,end,那下期再见

全部评论

相关推荐

点赞 1 评论
分享
牛客网
牛客企业服务