如何快速学习java?成为Java高级开发工程师?

前言

快到年底了,自己干Java开发工作也有七八年时间了,想分享一些自己学习java的思维和方法。

这个独立博客也开了一年多时间了。一开始我是在cnblogs上记录一些自己工作的技术经验和总结,博客地址是:https://www.cnblogs.com/shamo89,截止目前园龄: 3年9个月,粉丝: 188。里面很多文章解决问题的思路都是我工作中实际遇到的问题,一开始记下来,是怕自己忘记了,将来可以翻开再看看,后来发现也能帮助别的朋友解决一些问题,这让我感到很开心。

我知道现在每年还有很多计算机专业的毕业生在从事java开发的相关工作,但是由于经验不足,刚踏上社会,不知道企业里实际在使用什么技术,也不知道如何快速提升自己的能力。

我可以分享一些我学习java开发的经验,希望能帮助到一些新人。

学习要有目的性

我们出来工作就是为了赚钱的,要想赚钱多就要进好的公司,提升自己的专业能力。那哪些公司是好公司呢?哪些技能是企业用的最多的呢?

我们可以打开招聘网站,搜索Java开发,筛选你喜欢的行业、薪资范围、职位等级,然后浏览热度最高的那几家企业应该都还不错,把他们面试的技术栈记录下来,这样就算是找到目标了。

找到适合自己的学习途径和方法

有的人喜欢看视频学习,有的人喜欢看书和技术博客学习,我个人比较推荐的是两者结合。

如果你对某个技术之前一点了解都没有,那可以找一些比较经典的视频看看,视频有画面,相对会更好理解,更重要的是视频主都是有经验的开发人员或老师,他们会在演示的时候展现一些文章博客里展现不出的东西,比如一些方便的快捷键,和快捷开发的一些小技巧,我有很多提高开发技巧的知识都是通过看视频学来的。

比方说,我一开始不知道有一个方便浏览github的浏览器插件,叫Octotree,装了它后可以很方便浏览里面的仓库代码,这就是在视频里看到别人用的。

再比如我博客里的这篇文章《IntelliJ IDEA快捷键:自动补全左侧语句》,自从掌握了这个快捷键,写起代码来效率增高N倍。

现在,我来问你几个快捷键,看看你知不知道,idea里如何快速复制当前行到上一行或下一行?

反之如果你对某一个技术之前已经有所了解,现在只是对它其中某一点或几点不了解,那可以通过看书或博客来快速找到相关知识点学习,这样比较高效。

不管通过何种方式学习,有三点是千万要记住,此处是重点,掌握了能让你事半功倍

学习的三大要点

1.要带着问题去学习

好像从小老师就是这么教的,但是很多人却没有这么做。假设我现在要学习java的hashmap,那就要找出一些相关的经典问题,比如,为什么hashmap是线程不安全的?如何实现线程安全呢?ConcurrentHashmap是如何实现线程安全的?什么是hash冲突?常见的解决hash冲突的方法是什么?为什么hashmap的底层设计是链表加数组?为什么java8的hashmap引入了红黑树?为什么使用自定义类作为key时要重写hashcode和equals方法?

带着这些问题去学习hashmap,你甚至能判断讲课的那个老师水平是好是差。

实践表明,谁提的问题越好越妙,谁学的就越透彻越好。

2.学习的时间需要是有效时间

最近抖音上有个段子比较有意思,就是一群同学都在认真上自习课,只有一个同学趴在窗户边思考人生。对于这个同学,这个自习课就不是他的有效学习时间。

同样的,你坐在播放着高价从别人那儿买的网课视频的电脑面前,脑袋里却想着女朋友为什么又不理你了,那这个学习时间就不是你的有效学习时间,虽然在室友看来,你好像确实在认真学习。

那,如何判断是不是有效时间呢?很简单,就是注意力,一节课45分钟,你有40分钟的注意力都在课堂上,那这节课你的有效学习时间就是40分钟。

3.把信息真正转化成知识

老师的java课讲的非常好,你也花时间去认真听了,是不是就代表你就会了呢?

恐怕不然,很多时候,课也听了,笔记也记了,但轮到自己来敲代码,还是会磕磕碰碰。

为什么会这样呢?

需要先从一个概念说起:信息链(Information Chain),信息链是由事实(Fact)——数据(Data)——信息(Information)——知识(Knowledge)——智能(Intelligence)五个要素构成的。

简单地说,

#事实是人类思想和社会活动的客观映射;

#数据是事实的数字化、编码化、序列化、结构化;

#信息是数据在信息媒介上的映射;

#知识是对信息的加工、吸收、提取和评价的结构;

#智能则是运用知识的能力。

这三者的范围关系可以见下图:

如何快速学习java?成为Java高级开发工程师?

所以,我们需要做的是,把信息转化成知识。信息能否转化为知识关键在于信息接收者对信息的理解能力。

对信息的理解能力则取决于接收者的信息与知识准备。信息转化为知识的机理稍稍有些复杂,但有一点可以肯定,信息只有同接收者的个人经验、信息与知识准备结合,也就是同接收者的个人背景融合才能转化为知识

所以我们可以得出一个公式:

信息+经验=知识

so,什么情况下才能高效的学习呢?

1.之前有过类似或相关的知识储备

一个之前已经学过.net的同学和一个没有任何编程语言知识储备的同学同时来学习java,大概率第一个同学学的会更快更好,因为他已经有了编程思维。

2.学完新的知识信息一定要实践

只有自己实践了才会发现问题,只有自己实践了才会印象深刻,只有自己实践了才能推陈出新。

Java学习路线大纲思维导图

Java学习路线大纲思维导图
Java学习路线大纲思维导图

Java学习资源分享

说了这么多方法论,我再推荐一本学习java的书《Java编程思想》,还有一些我存在百度网盘里的学习java的视频教程,有的是从互联网上下载的,有的是自己买的,有的是朋友送的。

还有很多,我就不截图了,如果有朋友需要,我可以开放给有需要的朋友进行下载学习。

总结

学习Java的方法论和路线以及需要的资源都分享了,希望能帮助到有需要的同学,祝大家都能快速成长为Java高级开发工程师或架构师。

 

 

 

0