这个回答我思考了很长时间,一直没去写,因为一旦写了,就要给大家一点有价值的东西。我也看了很多网友的回答,基本上都是罗列一些资料。我觉得授人以鱼不如授人以渔,思考了一个月后,我决定从两个方面去说这个问题。
第一:就是学习方法的问题,这点非常重要!好的方法会事半功倍;第二:就是学习资料的问题,如果说好的学习方法能帮你节省一半的时间,那么好的学习资料能帮你快速入行,少走弯路。我会在下文一一给大家分享出来。
自学方法
如果要说自学Java,我觉得我有资格说上几句。我读研期间自学的Java,一开始看了一个星期左右的书,然后我把书扔在了一边,看不进去啊!我自认为自己的脑袋瓜还算可以,但是我看不进去。这也是初学者的通病,有好多读者也跟我说:武哥,我书也看了,可是感觉还是不会。我TM也是这么过来的,哈哈。
所以我当时看了视频,我看的是毕向东的Java视频,但是现在已经有更加新的视频了。
视频连接
找一个好视频,从头到尾认认真真跟着学一遍,做好笔记,那也是我开始写博客的开始。为什么要记笔记?为什么要写博客?我之前写过一篇文章:为什么我在CSDN坚持写了3年多的博客?
人都有个尿性,如果你做一件事情,一直看不到明显的效果,你就会慢慢懈怠,慢慢怀 在疑自己到底对不对,适不适合。编程也一样,为什么我不建议初学者上来就抱着别人跟你推荐的所谓的经典书籍去啃?什么《Thinking in Java》、《Effective Java》等等,你啃的了吗?你啃不了是对的,否则你就是神了。你啃不了,你就会放弃。我就很讨厌那些贴吧论坛里一上来就给一些初学者推荐很多经典书籍的人,显得自己很博学很牛逼的样子,其实没啥卵用。
包括Java并发、SSM框架、组件等等,我全部看的视频。当然,一些源码我是自己啃的,比如Java容器。当你有了基础,上路了,你再去看书,不仅仅就是看懂看不懂的问题了,那才是真正的提升。
但是这些还不够,你学了这些东西不能派上用场。必须要项目实战,网上有很多免费的实战视频,但是我觉得不好,因为那时候我已经有基础了,我知道如何去选择我的学习资源了,我在这还是要强调一点,不要吝啬给自己投资,我当时也买了好几个项目实战视频跟着学习,提升很多实战经验。我在前面一篇文章:同样是程序员,为什么别人比你更优秀?中第一点就提到了这个。
当然了,我这边也有很多优质的视频资源,我会在下文给大家分享出来,不用像我当初那样去花钱了,我那时候自学,就没有遇到像我这样懂得分享的人。所以缺视频资源的读者,可以找我要,我就是单纯的分享,为了帮助更多的朋友。
作者:码畜武哥
链接:https://www.zhihu.com/question/25255189/answer/1689917206
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
有很多人觉得工作年限长就牛逼,见识多,但是在我看来,这不一定。
但是有很多人坚持不下来,我也是从小白一步步过来的,花了整整一年左右的时间去自学。我做了好几个项目,我敢说我在学校这一年学到的东西,不比别人在外面工作两年的能力差。所以有很多人觉得工作年限长就牛逼,见识多,但是在我看来,这不一定。
我曾经好几个月直接睡实验室里,每天除了看论文,完成导师的任务,其他时间全部用来学习,晚上搞到十一二点,否则一年时间不可能学那么多东西,而且我大部分还写成了博客,要知道,写博客是很花时间的。如果你能像我这样坚持,这样严格要求自己,我不相信学不会一个东西。你就算今天学不会,你一个月之后呢?一个月不行,你一年总行了吧?就像马云爸爸说的:今天很残酷,明天更残酷,后天很美好。但是很多人都坚持不过明天,他永远看不到美好。就像我考研一样,没有坚持付出,哪来的结果呢?
好了,情怀的东西就不跟大家扯那么多了,总结一下就是:任何技术要做到”先会用,再提高“,然后就是坚持+输出。几个月后,你会感激你前面的付出的!下面给大家分享一些干货了~
Java基础
借用阿里孤尽大佬的一句话,叫做:越牛逼的人,往往做着越简单的事情。任何技术,最后都是返璞归真。很多实际问题,往往最后归结于基础不扎实。Java基础内容不少,我给大家画了个思维导图,顺便分享一套最新的完整视频供大家学习,看完后相信Java基础部分的东西,基本上都能掌握了。 看一下整体思维导图:
全套从基础到项目实战的最新视频,百度云链接:https://pan.baidu.com/s/16IeNr2Z7-ghdsSKrjKbgSg 提取码:yhf7
这里我针对一些重点知识,也写了一些高质量的文章,分享给大家。大家可以在线看,也可以下载到本地看,所有文章的高清带目录版的pdf我正在制作,大家关注我,我做完了就会更新出来
Java基础部分:
- 01. Java 数据类型
- 02. Java 关键字
- 03. Java 封装、继承和多态
- 04. 你真的了解Java String 吗?
- 05. StringBuffer 和 StringBuilder 的区别
- 06. Java反射
- 07. 你对 Java 异常了解多少?
- 08. Java IO
- 09. Java 注解
- 10. Java 泛型
- 11. Java 枚举
- 12. Java 8 特性
Java容器部分
Java 容器可以说是平时使用最多的了,不管多大的项目,这块是必须要会用的,而且面试中经常会问到一些源码层面的东西,比如HashMap的扩容机制是什么呢?Java 8对HashMap的数据结构有哪些改进等等。这块源码其实不难,啃一遍就可以去装逼了!我也写了几篇干货分享给大家。
- 01. ArrayList源码解析(基于JDK1.8)
- 02. LinkedList源码解析(基于JDK1.8)
- 03. HashMap源码解析(基于JDK1.8)
- 04. HashTable源码解析(基于JDK1.8)
- 05. TreeMap源码解析(基于JDK1.8)
- 06. ConcurrentHashMap源码解析(基于JDK1.8)
Java多线程
Java多线程是面试必问的东西,不管是大厂还是小厂,不管是应届生还是社招的,如果多线程掌握的比较好,无疑是给你巨大的加分项,而且多线程在项目里运用的也是非常常见的。多线程用的好,薪资涨的爽!
- 01. Java 创建线程的方式
- 02. Java 线程状态有哪些状态,彼此之间如何切换
- 03. 传统线程互斥技术 synchronized
- 04. 线程技术之死锁问题
- 05. 传统线程同步通信技术
- 06. 线程范围内共享数据
- 07. 原子性操作类的使用
- 08. ThreadLocal 类以及应用技巧
- 09. 造成 HashMap 非线程安全的原因
- 10. 多个线程间共享数据
- 11. 线程并发库 Executors 的使用
- 12. Callable 与 Future 的应用
- 13. 线程锁 Lock 技术的应用
- 14. 条件阻塞 Condition 的应用
- 15. 线程同步工具 Semaphore 的使用
- 16. 线程同步工具 CyclicBarrier 的使用
- 17. 线程同步工具 Exchanger 的使用
- 18. 阻塞队列的使用
Java虚拟机
JVM可能大部分看到就比较头疼,这块确实比较难啃,一般初学者可以跳过。不过可以了解一些内存模型和类加载机制,我给大家总结了两篇干货,分享给大家。
这些啃完,基本上基础知识就掌握的差不多了,接下来就需要去学习一下框架的知识了,Java框架的演变历史:以前基本上用 SSH+jsp,后来被淘汰了,现在基本上没有SSH和jsp了,如果你找了个实习或者工作是用SSH或者jsp的,那还是趁早走人吧,因为后面你都不好跳槽。再后面就是SSM(Spring、SpringMVC、mybatis)框架,这个目前还有在用,再后面就出现了springboot了,这是目前用的最多的框架。学习的话,ssm框架可以学学的,springboot是基于spring框架的。
有些朋友问我,武哥,我可以跳过spring直接学习springboot框架吗?理论上来说,也没问题的,我们学任何东西,要把握好一个原则:就是先会用,再拔高。话不多说,直接进入正题,这里我都写过干货学习文章,分享给大家。
Spring
- 01. Spring 概述
- 02. Spring 依赖注入与装配Bean
- 03. Spring Bean的作用域和生命周期
- 04. Spring AOP:这可能是东半球最详细的一篇文章
- 05. Spring 和数据库编程
- 06. Spring 数据库编程在实际开发中的应用
- 07. 深入Spring数据库事务管理
SpringMVC
- 01. 宏观上把握 SpringMVC 框架
- 02. 走进 SpringMVC 的世界
- 03. SpringMVC中 注解和非注解方式下的映射器和适配器总结
- 04. Spring、MyBatis 和 SpringMVC 的整合(ssm)
- 05. SpringMVC 中的参数绑定总结
- 06. SpringMVC 中的数据校验
- 07. SpringMVC 中的统一异常处理
- 08. SpringMVC 中实现文件上传
- 09. SpringMVC 与前台的 json 数据交互
- 10. SpringMVC 对 RESTfull 的支持
- 11. SpringMVC 中的拦截器
Mybatis
- 01. 宏观上把握 MyBatis 框架
- 02. 走进 MyBatis 的世界
- 03. MyBatis 的原始 dao 开发方法及其弊端
- 04. MyBatis 的 mapper 代理方法开发 dao
- 05. MyBatis 的 SqlMapConfig.xml 文件中的配置总结
- 06. MyBatis 的输入映射和输出映射
- 07. MyBatis 的动态 sql
- 08. MyBatis 高级映射之一对一查询
- 09. MyBatis 高级映射之一对多查询
- 10. MyBatis 高级映射之多对多查询
- 11. MyBatis 中的延迟加载
- 12. MyBatis 中的一级缓存
- 13. MyBatis 中的二级缓存
- 14. MyBatis 的逆向工程生成代码
- 15. MyBatis 分页插件 PageHelper 的使用
Springboot
Springboot是目前最常使用的框架,简单上手,也没有Spring那些繁琐的配置,是现在必学的一个框架。这个框架我认真整理了一下干货内容,大家可以学习一下。
作者:码畜武哥
链接:https://www.zhihu.com/question/25255189/answer/1689917206
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
- 00. 我们为什么要学习 Spring Boot?
- 01. Spring Boot 开发环境搭建和项目启动
- 02. Spring Boot返回Json数据及数据封装
- 03. Spring Boot 使用slf4j进行日志记录
- 04. Spring Boot 中的项目属性配置
- 05. Spring Boot 中的MVC支持
- 06. Spring Boot 集成 Swagger2 展现在线接口文档
- 07. Spring Boot 集成Thymeleaf模板引擎
- 08. Spring Boot 中的全局异常处理
- 09. Spring Boot 中的切面AOP处理
- 10. Spring Boot 集成MyBatis
- 11. Spring Boot 事务配置管理
- 12. Spring Boot 中使用监听器
- 13. Spring Boot 中使用拦截器
- 14. Spring Boot 中集成Redis
- 15. Spring Boot 中集成ActiveMQ
- 16. Spring Boot 中集成 Shiro
- 17. Spring Boot 中集成Lucence
- 18. Spring Boot 搭建实际项目开发中的架构
SpringSecurity
- 01. Spring Security 的前世今生
- 02. Spring Security 基于表单登录的认证模式
- 03. Spring Security 表单登录源码解析
- 04. Spring Security 的验证码生成详解
- 05. Spring Security 验证码登录流程讲解
- 06. Spring Security 在前后端分离下的JSON交互方案
- 07. 扩展篇:Spring Security 过滤器链之 SecurityContext
SpringCloud
- 01. Dubbo沉睡5年,Spring Cloud开始崛起!
- 02. Spring Cloud中基于maven的多模块项目框架的搭建
- 03. Spring Cloud中的Eureka服务注册与发现详解
- 04. Spring Cloud中如何完善Eureka中的服务信息
- 05. Spring Cloud中使用Eureka集群搭建高可用服务注册中心
- 06. Spring Cloud中的Eureka和Zookeeper的区别在哪?
- 07. Spring Cloud中使用Ribbon实现负载均衡详解(上)
- 08. Spring Cloud中使用Ribbon实现负载均衡详解(下)
- 09. Spring Cloud中自定义Ribbon负载均衡策略
- 10. Spring Cloud中使用Feign实现负载均衡详
- 11. Spring Cloud中使用Hystrix实现断路器原理详解(上)
- 12. Spring Cloud中使用Hystrix实现断路器原理详解(下)
- 13. Spring Cloud中使用Zuul实现路由网关详解
- 14. Spring Cloud分布式配置中心详解
消息队列
- 01. 快速了解 RabbitMQ .md
- 02. RabbitMQ 模型详解.md
- 03. RabbitMQ 在项目中配置.md
- 04. RabbitMQ 高级用法.md
- 05. 一起来了解下 SpringAmqp.md
- 06. RabbitMQ 可靠性投递.md
一口气写了这么多,老板又在那催我写bug了,我先去写点bug出来,后面继续给大家更新干货~
如果觉得对你有帮助,点赞是对我最大的鼓励。