微信公众号:一个优秀的废人
如有问题或建议,请后台留言,我会尽力解决你的问题。

前言

许久不见,最近公众号多了很多在校的师弟师妹们。有很多同学都加了我微信问了一些诸如 [如何自学 Java ]的问题,我都一一解答了,这是大家对我的信任,我非常感谢。你们知道我现在的职业是 java web 开发,可你们你们不知道的是我在这个份职业之前做的是 Android 开发,一年前通过自学才转过来 java 岗位。下面就跟你们聊聊我的自学经验以及一些建议,希望能帮助到大家。

了解 Java 的前世今生

在学习之前,我相信很多人都是网上直接找教程,开始学。但我跟你们不一样,我会先去网上找一些 Java 相关的发展史来了解一下,很多人可能疑惑这有什么用呢?那些发展史又不会帮你提高你的技术。我告诉你们这里的用处可大了,举个栗子,不去了解你又怎么会知道 JDK 11 已经出了,JDK 8 是目前最多人使用的版本,而你此时找到的是 JDK 6 的教程,学习一段时间后,你发现你的代码跟别人不一样,殊不知人家用的 JDK 8。那么这中间你就浪费了许多时间了,所以了解一门语言的前世今生是很有必要的。

建立学习大纲

很多人不知道怎么学,怎么规划自己的学习路线。对于这种情况我的应对方法是建立学习大纲,比如 java 基础,那你就得想 Java 基础有哪些知识点,然后把它罗列下来做成一个学习大纲或者思维导图。那你在学习之前,你就跟着学习大纲按部就班地学就好了,哪块没攻克的就翻相应的资料重点学习。下面是我整理的简单版的思维导图,给你们做参考,你们的大纲不能像我做的这么简化,你们要逐项展开,比如说Java 基础,应该具体到某一个知识点才行,因为越具体,你学得越清晰。

简单说一下,上面我整理的学习大纲分为四个阶段,对于应届生来说,把上面前三阶段掌握了,找到实习工作完全没问题。但如果想更进一步,进 BAT 等公司,可能需要把上面四个阶段都要掌握了。

PS:重中之重的是 Java 基础算法,大厂非常青睐算法好的应届生
PPS:推荐一款好用的思维导图软件:https://mubu.com/inv/929852
PPPS:以上提到的知识点学习教程领取方式见文末

不要浪费时间在找资料上

自学 Java ,我相信很多人一开始都是煞费苦心找资料的,越多越好,越详细越好,因为这样很有满足感,心里想着只要我每天坚持看几个小时很快看完的。殊不知,不断保存教程的结果就是某度云盘里面躺了一大堆教程,就算是每天不睡觉地看还不一定能看完。自制力好的人,估计在保存后会翻出来看两眼,过几天又忘得一干二净了。自制力不好的人更衰,直接让教程在云盘里面积灰。对于初学者来说,只要找到囊括了 Java 基础的资料就可以开始学了。

切忌眼高手低

有些问题需然看起来很简单,很弱智,很傻逼。首先,你动手比光看不做敲记忆更牢固;其次,你敲出来可能会有各种各样奇奇怪怪的问题,而你的水平就是在解决这些问题中提高的。所谓大神都是踩各种各样的坑才过来的。

善于利用搜索引擎

遇到问题,第一时间想到的是网上搜索试试看能不能解决,不能解决再去问人。移动互联网发展到今天,可以毫不夸张的说,你遇到的 99% 的问题都能在网上找到解决办法,剩下的 1% 是因为你还没学会用关键字来搜索。

多思考

学会思考,养成多思考的习惯。在写代码的过程中多想想人家为什么这样写。举个栗子,为什么 java 类只能单继承,而接口却可以多继承,稍加思考你就会知道答案:如果存在多继承,那个两个父类有两个一模一样的方法怎么办,子类就不知道继承哪一个方法。而接口能多继承的原因是:接口中的方法都是方法名,没有函数体,具体的实现需要靠实现类去实现,一旦实现类实现了方法,那么就不存在多个接口有相同的方法名的出现的问题了,因为函数体都是一样的。

熟能生巧

很多人困惑,为什么我看视频的时候很懂,过两天就啥都忘了?其实这是正常的,因为你还没有对知识进行实践归纳。在入门 Java 之后,就需要大量的实战来巩固你的基础。所以说忘了不要紧,先按大纲按部就班学,之后再通过实战来巩固基础。

项目驱动,不要为了学而学

相当一部分初学者都坚持不下去,因为太枯燥了。遇到这种情况,首先你要明确你学习 Java 的目的是什么?我相信很多人最终目的都是--钱。这太正常了,没钱谁愿意做这么费脑力的事啊。但是你是需要通过项目来赚钱的。所以我们学习是要通过项目来驱动的。你要想你学完之后希望鼓捣一个什么东西出来。比如我之前学 Android ,我就是打算弄一个天气预报的APP出来,那有了目标之后,你就开始思考,网上查,这个东西,需要用到什么技术。比如,我当时就是要先会 Javase 才能学安卓,学到了安卓之后又有其他的技术,比如 Android 网络框架,UI框架等等。以项目来驱动自己学习,整个过程将会有趣得多。

最后

如果看到这里,喜欢这篇文章的话,请转发、点赞。微信搜索「一个优秀的废人」,欢迎关注。

回复「1024」送你一套完整的 java、python、c++、go、前端、linux、算法、大数据、人工智能、小程序以及英语教程。

回复「电子书」送你 50+ 本 java 电子书。

自学 JAVA 的几点建议的更多相关文章

  1. 自学 Java 怎么入门

    自学 Java 怎么入门? 595赞同反对,不会显示你的姓名     给你推荐一个写得非常用心的Java基础教程:java-basic | 天码营 这个教程将Java的入门基础知识贯穿在一个实例中,逐 ...

  2. 十年Java开发程序员回答,自学Java,培训Java的利和弊

    最近有一个朋友在群里面问我:是应该去培训Java还是应该自学Java,我想的说的是我并不是想给他一个去培训或者不去培训,我用自己多年对于行业的了解去分析这个问题,然后让他自己去思考,哪种更加适合他.他 ...

  3. 自学java难吗?一个JAVA学习者应该具备的素质

    无论是在校的学生也好,还是转行的也好,如今学JAVA开发的人越来越多,造成了如今新手越来越多,有人说前端饱和了,JAVA饱和了,JAVA才刚开始以一种好的势头发展就饱和了.我也是无语,一般说饱和的人, ...

  4. 零基础如何自学java开发?

    开篇直奔主题,java 学习个人感觉分为两种途径,第一种是在学校,在培训机构等地方学习. 有人指导:第二种是自学,通过视频,书籍,朋友等完成学习. 本文适合 自学,且基础薄弱或者无基础的人.先介绍下我 ...

  5. 如何自学Java开发

    对于这个话题,已经不止N次在线上或线下听到了.从这个话题被太多的人提问及回答,我们可以肯定地说,Java这个已经有近15年头的计算机编程语言是有着及其广阔的应用领域和独特而短期无法替代的优势.我们姑且 ...

  6. 园艺研究生中途自学Java,赶上校招终进美团,分享面试经验

    前言 最近,圈子里的很多小伙伴都在面试,有些小伙伴儿拿到不错的offer,今天给大家推荐的这位小伙伴拿到美团点评的校招offer,他将自己这次面试的经历写下来供大家参考,看看你能回答多少? 背景 上海 ...

  7. 为什么那么多自学JAVA的后来都放弃了?总结起来就这些原因

    目前信息化产业发展势头很好,互联网就成为了很多普通人想要涉及的行业,因为相比于传统行业,互联网行业涨薪幅度大,机会也多,所以就会大批的人想要转行来学习Java开发. 目前来讲市场上需要的Java人员非 ...

  8. 自学Java,需要掌握什么内容才能找到满意的工作?

    首先,这个问题主要问:自学Java编程技术,如果才能找到一份Java编程的工作.按照现在的招聘标准来看,无论你去哪个公司面试,你只需要满足他们公司的需求就可以. 找到一份Java编程工作需要掌握的内容 ...

  9. 自学java,学多久可以自己找到工作?

    先以肯定的语气说明一下自学Java,多久可以找到工作:   按照目前Java的体系来说,Java的几个重点在于Javase.数据库.Spring全家桶系列的框架.而其他的在Java体系之内,会基础的操 ...

随机推荐

  1. 2019-7-29-WPF-元素裁剪-Clip-属性

    title author date CreateTime categories WPF 元素裁剪 Clip 属性 lindexi 2019-7-29 10:0:13 +0800 2019-1-3 15 ...

  2. Github开源人脸识别项目face_recognition

    Github开源人脸识别项目face_recognition 原文:https://www.jianshu.com/p/0b37452be63e 译者注: 本项目face_recognition是一个 ...

  3. redis常用指令总结以及功能介绍

    第一部分 redis的常用指令 一.针对key的操作 1.1 del key [key .. ]                 , 删除指定的一个或者多个key;1.2 dump key       ...

  4. VC++ CMsflexgrid 使用

    引用actvie x :microsoft CMsflexgrid; BOOL CCalibrationCoordsDisDlg::OnInitDialog() { CDialog::OnInitDi ...

  5. webpack打包前删除之前的所有文件

    安装插件: npm install --save-dev clean-webpack-plugin 在webpack.prod.conf.js 中引入:  const { CleanWebpackPl ...

  6. classpath*与classpath

    classpath*:的出现是为了从多个jar文件中加载相同的文件. classpath:只能加载找到的第一个文件.

  7. [板子]KMP

    KMP板子,你甚至可以用这个板子A掉luogu的3375 基础懒得说,要求一个Next数组. #include<cstdio> #include<algorithm> #inc ...

  8. CP防火墙排错装逼三件套

    1.tcpdump 通常用来抓包处理经过网卡的交互包 [Expert@BJ-OFFICE-GW:0]# tcpdump -nni any host 10.158.1.100 -w /var/log/t ...

  9. 学习Java第六周

    1.内存结构 Java程序在运行时,需要在内存中的分配空间为提高运算效率,空间进行了不同区域的划分,因为每一片区域都有特定的处理数据方式和内存管理方式. 栈内存 ·用于存储局部变量,当数据使用完,所占 ...

  10. C++Review1_多态和虚函数

    继承是实现多态的基础.虚函数是实现多态的方法.虚函数.多态.继承都是紧密相关的概念.而继承是所有概念的基础: 多态:简单来讲就是接口一样,实现多样.多态是指通过基类的指针或者引用,在运行时动态调用实际 ...