前言
#种一棵树最好的时间是十年前,其次是现在
很多程序员一开始在学习上找不到方向,但我想在渡过了一段时间的新手期之后这类问题大多都会变得不再那么明显,工作的方向也会逐渐变得清晰起来。
但是没过多久,能了解到的资料就开始超过每天学习的能力,像是买了没看的书、收藏没读的贴、mark 了之后再也没有关注过的文章越积越多,更别提每天面对各种技术分享或者微博里的新鲜玩意了。
大多数人每天能留给自己学习的时间有限,这个阶段如何提升学习效率就成了要解决的重点。
说说自己提升学习效率的心得,其实非常简单:体系化的学习。
我曾经很喜欢看一些博客或者是一些 “看起来” 比较通俗易懂的文章,每天在微博微信里刷到什么技术文章就 mark 下来,基本上几分钟就能读完。可一段时间下来,虽然读了不少东西,但是还是有种在原地打转的状态,并没有感受到有什么实际的提高。
最后实在忍不住,抱着厚书硬啃了一遍,突然有种豁然开朗的感觉:读书时自己学到的是一张完整的知识网络,每个知识点和其它内容相互联系和区别。这种全方位的理解比起一篇篇独立的文章,不知要高到哪里去了。
在重复了几次痛苦的学习-梳理过程后,再去看一些独立的文章或者资料往往会事半功倍,因为能在体系内找到相对应的知识,甚至有时候一本书里一页只需要看一句话,点破那层窗户纸,就可以掌握新的知识。很多程序员一开始在学习上找不到方向,但我想在渡过了一段时间的新手期之后这类问题大多都会变得不再那么明显,工作的方向也会逐渐变得清晰起来。
但是没过多久,能了解到的资料就开始超过每天学习的能力,像是买了没看的书、收藏没读的贴、mark 了之后再也没有关注过的文章越积越多,更别提每天面对各种技术分享或者微博里的新鲜玩意了。
大多数人每天能留给自己学习的时间有限,这个阶段如何提升学习效率就成了要解决的重点。
说说自己提升学习效率的心得,其实非常简单:体系化的学习。
我曾经很喜欢看一些博客或者是一些 “看起来” 比较通俗易懂的文章,每天在微博微信里刷到什么技术文章就 mark 下来,基本上几分钟就能读完。可一段时间下来,虽然读了不少东西,但是还是有种在原地打转的状态,并没有感受到有什么实际的提高。
最后实在忍不住,抱着厚书硬啃了一遍,突然有种豁然开朗的感觉:读书时自己学到的是一张完整的知识网络,每个知识点和其它内容相互联系和区别。这种全方位的理解比起一篇篇独立的文章,不知要高到哪里去了。
在重复了几次痛苦的学习-梳理过程后,再去看一些独立的文章或者资料往往会事半功倍,因为能在体系内找到相对应的知识,甚至有时候一本书里一页只需要看一句话,点破那层窗户纸,就可以掌握新的知识。所以我建议你看文章博客,不能只看一篇,通透的、连续的学习,效果才是最佳的。
现值金九银十之际,是面试高峰季,很多学校开始校招,也是跳槽转行的最佳时机。根据数据显示,程序员是金九银十里最热门的行业,也是需求量最大的行业,但是程序员是个门槛低,但金字塔顶峰比较高的行业,意味着你的付出要比别人多才能拔尖。
我们都知道,互联网行业以阿里、腾讯作为一线标杆,即使现在互联网公司处于百花齐放的状态。那么作为一名Java程序员,如何做到拔尖呢?实际上打好基础很重要,至于基础的巩固,可以参考今天要分享的这份由Alibaba技术官整理出来的Java零基础学习笔记。
关于本文这份笔记,主要分为三大部分:
- **前传:**Java从一无所知到入门(Java基础程序设计+Java面向对象程序设计+Java程序应用)
- **亮点:**掌握企业必备流行框架(SSM入门到精通+SpringBoot+SpringCloud分布式开发)
- **后记:**不做小白就上手实战(英雄联盟登录系统检测+模拟火车订票系统+聊天室+宠物商店+用户管理系统设计+页面发布+新闻资讯系统+点餐系统+在线支付系统+旅游网+ATM系统数据实战+仿小米商城等)
前传:Java从一无所知到入门
1.Java基础程序设计
1.1 认识Java
- Java的历史
- Java的现状
- Java的特点
- Java虚拟机L(JVM)
- JDK的安装及环境变量的配置
- 编写第一个Java程序
- classpath的指定
1.2 简单的Java程序
- 一个简单的例子
- 简单的Java程序解析
- 程序的检测
- 提高程序的可读性
1.3 Java基本程序设计
- 变量与数据类型
- 运算符、表达式与语句
- 循环与选择性语句
1.4 数组与方法
- —维数组
- 二维数组
- 多维数组
- 方法
2.Java面向对象程序设计
2.1 类的基本形式
2.2 类的继承
- 继承的基本概念
- 抽象类
- Object类
- final关键字
- 接口(interface)
- 对兔多态性
- 匿名内部类
2.3 异常处理
- 异常的基本概念
- 异常类的继承架构
- 抛出异常
- 编写自己的异常类
2.4 包及访问权限
- 包的概念及使用
- 类成员的访问控制权限
- Java的命名习惯
- Jar文件的使用
3.Java程序应用
3.1 多线程
- 进程与线程
- 认识线程
- 线程的状态
- 线程操作的一些方法
- 多线程的同步
- 线程间通讯
- 线程生命周期的控制
3.2 文件(IO)操作
- File类
- RandomAccessFile类
- 流类
- 字符编码
- 对象序列化
3.3 Java Applet程序
- Applet程序简介
- Applet程序中使用的几个基本方法
- 在HTML中嵌入Applet程序
3.4 Java常用类库
3.5 Java网络程序设计
亮点:掌握企业必备流行框架
1.SSM入门到精通
1.1 Spring 框架
1.2 SpringMVC
1.3 Mybatis
2.SpringBoot
2.1 SpringBoot入门
- Spring Boot简介
- 微服务
- 环境准备
- Spring Boot HelloWorld
- Hello World探究
- 使用Spring Initializer快速创建Spring Boot项目
2.2 配置文件
- 配置文件
- YAML语法
- 配置文件值注入
- 配置文件占位符
- Profile
- 配置文件加载位置
- 外部配置加载顺序
- 自动配置原理
2.3 日志
- 日志框架
- SLF4j使用
- SpringBoot日志关系
- 日志使用
- 切换日志框架
2.4 Web开发
- SpringBoot对静态资源的映射规则
- 模板引擎
- SpringMVC自动配置
- 如何修改SpringBoot的默认配置
- RestfulCRUD
- 错误处理机制
- 配置嵌入式Servlet容器
- 使用外置的Servlet容器
2.5 Docker
- 简介
- 核心概念
- 安装Docker
- Docker常用命令&操作
2.6 SpringBoot与数据访问
- JDBC
- 整合Druid数据源
- 整合MyBatis
- 整合SpringData JPA
2.7 启动配置原理
- 创建SpringApplication对象
- 运行run方法
- 事件监听机制
2.8 自定义starter
3.SpringCloud分布式开发
后记:不做小白就上手实战
由于这些小实战项目太多,文章篇幅有限,所以就不在这里全部展示了,具体的可参考前面大纲列出来的,这里以几个重点作为展示,若你需要这些项目的全部源代码,可以私信我免费领取。
1.英雄联盟登录系统检测
2.聊天室
3.点餐系统
4.仿小米商城
总结
对于一名Java程序员来说,光有理论肯定不行,在打好基础的条件下,就应该开始上手进行实战,这样无论在校招或是社招时,都有自己的底气和优势。