V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
cmower
V2EX  ›  Java

如何快速打好 Java 基础?

  •  
  •   cmower ·
    qinggee · 2020-02-12 09:50:37 +08:00 · 5271 次点击
    这是一个创建于 1506 天前的主题,其中的信息可能已经有所发展或是发生改变。

    二哥,我是一名大学生,专业是电力工程,但想自学 Java,如何快速打好基础呢?

    微信上 tison 向我提出了这个问题。我想我是有资格来回答的,从北京奥运会那年开始学 Java,到现在已经有 10 多个年头了,真的是从一名编程白痴一步步走到现在的。

    我在各大技术网站上分享了不少 Java 方面的原创文章,不知道影响了多少初学者,反正文章的留言中经常能看到他们由衷的感谢。现在每天仍然有不少同学( tison 是其中之一)加我微信,问我怎么一路过来的,希望能够把宝贵的经验分享出来,让他们少走一些弯路。 借这个机会,就统一回答下。

    既然要快速,咱就没法面面俱到,必须挑重点、讲实用。下面就根据我的实战经验,谈一谈具体的学习过程。

    01、准备

    学习之路是一项很逆人性的差事,并不是每个人都能够坚持下来,尤其是打基础的阶段,过于强求的话可能就会适得其反,没入门先放弃了。

    1 )对 Java 感兴趣,对互联网的高薪感兴趣,对“程序员秃顶”的段子视若无睹,只有这样,你才能真正地坚持下去。

    2 )富有坚韧不拔的学习能力,别总遇到一点点困难,就自暴自弃。

    3 )设定一个目标就死磕,如果你经常拿不到最终结果,需要反思是不是从来没有成功做成过一件困难的事情,没成功过所以不知道“坚持”可以大大提高成功的概率。

    4 )拥有解决问题的勇气,学习的过程中注定会遇到许许多多的坑,要敢于跳进去,然后再爬出来,并且是在不寻求他人帮助的前提下。我见过太多的同学,遇到点屁大的问题就直接扔在群里等大牛解答,殊不知搜索引擎是第一步。

    02、书籍

    高尔基曾说过:“书籍是人类进步的阶梯。”这是至理名言,打 Java 基础的过程中必须要耐着性子去读完两本书:《 Head First Java 》和《 Java 核心技术卷一》。

    上大学那会,老师要求我们读的入门书是《 Java 编程思想》,这本书确实值得读。但是很可惜,那时候我实在是看不懂,硬着头皮上也看不懂,感觉在看甲骨文一样。10 多年过去了,如果让我来推荐 Java 入门书的话,我不会推荐这本。

    《 Head First Java 》是一本非常有趣的书,作者挑选的插图可以说张张经典,真正实现了“图文并茂”的需求,搞得你感觉有点不好意思,仿佛不是在读一本技术书,而是在读《知音》。

    不只是图片,还有游戏、拼图、解谜题以及你意想不到的内容。真的是一点都不“正经”,正因为如此,阅读起来才会感觉兴趣盎然嘛。

    《 Java 核心技术卷一》虽然没有《 Head First Java 》那么趣味化,但广度和深度都恰到好处。这两本书虽然都比较厚,但读起来并不会觉得头大,因为都算是通俗易懂的入门书。我建议你把书中的实例都在电脑上跑一遍。有些内容看不懂的话,就先跳过,不要钻牛角尖。这样下来,粗略的估计,需要 2 个月的时间。

    最好的话,每读完一章,接写一篇笔记出来,所谓好记性不如烂笔头,在写作的过程中,为了能够把一个知识点说明白,你不会不自觉的学习到更多扩展的内容,理解也会随之加深。这些笔记就好像你在学习过程中的荣誉勋章,以后再回看的时候,也会觉得学习的日子过得很充实。

    02、视频

    可能你更喜欢看视频教学,那么我也为你精心准备了一些。这些视频我已经分门别类了,需要的话可以关注我的公众号 [沉默王二] ,按照下面的口令清单回复即可获取。

    除此之外,我再推荐一门免费的公开课《老九零基础学编程系列之 Java 入门》,网易云课堂上可以直接观看。主讲人徐嵩的授课风格非常风趣,听起来很过瘾,我最近没事的时候就看一集,回味一下当初学 Java 时没有视频资料的苦涩。

    看视频和看书的体验完全不同,在我看来,通过视频学习的好处主要有两点:

    • 视频中讲的东西比较形象,有一种身临其境的感觉。

    • 视频有一种你看不到的魔力,可以提高你学习的自主性。

    03、Spring

    Spring 目前在 Java 开发中占据了重要的一环,可以说是密不可分。毫不夸张的说,不会 Spring,绝对算不上一名合格的 Java 开发人员。Spring 的核心概念是 IOC (控制反转)和 AOP (面向切面编程),这两个概念掌握了,再学习 Spring 的其他衍生项目就会容易许多。

    学习 Spring 的入门书,我推荐《 Spring 实战》,这本书学起来很快,并且书中提供的案例都很容易上手,顺着敲一遍。Spring MVC、Spring Boot、Spring Cloud 是工作当中最常用的三块内容,几乎每一个成熟的正式项目都会用到其中之一,所以很有必要再花 2 个月的时间去入门一下。

    04、其他知识

    要想学好 Java,还有一些知识需要掌握,比如说 MySQL、MyBaits,只有和数据库打通,才算是打通了任督二脉。学习 MySQL 的话,推荐《高性能 MySQL 》,很经典的一本书;学习 MyBaits 的话,直接看官方文档就够了。算下来的话,还需要再花 1 个月的时间入门。

    05、实战演练

    花了 5 个月的时间好不容易入了门,接下来就需要一个实战项目巩固下。这里我推荐好朋友江南一点雨的《微人事》,GitHub 上已经开源,搜索关键字“vhr”即可。这个开源项目很容易上手,文档也很全面,目前标星已经 1 万多了,非常受欢迎。

    这个项目学下来,预计还需要 1 个月的时间,你已经算是一名合格的 Java 程序员了。

    06、犯错犯错再犯错

    一定要敲代码,在敲的过程中肯定会出错。不管你是在看书,或者文章,还是视频,你觉得作者说得好像挺简单的,以为看过一遍后自己也理解了。当往往不是这样的,程序在敲的过程中会发生许许多多意想不到的问题,有时候作者限于篇幅的原因,往往会选择性地跳过一些细枝末节,但这些对于编程的初学者来说,往往很难驾驭。只有经过自己的手敲出来,才能证明真的是会了,懂了。

    不是有那句俗话嘛,“当局者迷旁观者清”,如果你站在读的角度,就会很容易自欺欺人;但如果自己亲自实操的话,就完全不一样了,不仅印象深刻,还为以后的复盘做好了备份。在敲的过程中,最好把自己认为经典的案例分门别类,放到 GitHub 上或者码云上,等到以后再用的时候,也好找——书到用处方恨少,代码也是。

    出错了没关系,把错误解决掉的过程中你能听到自己成长的声音,就好像雨后春笋一样。没有出错的同学要么是天才,要么就是蠢材(复制粘贴)。

    07、最后

    按照我说的方法,顶多半年时间,就可以打好很坚实的 Java 基础了。如果你在学习的过程中遇到问题,也欢迎随时和我交流。切记,要坚持,三天打鱼两天晒网只会打不到鱼还会弄破了网。

    怎么样?这篇文章绝对值得点赞和收藏吧?赶紧行动起来!

    21 条回复    2020-02-13 15:53:41 +08:00
    magiclz233
        1
    magiclz233  
       2020-02-12 09:54:33 +08:00   ❤️ 2
    真的,这里面也没多大的流量,别来发广告了
    lovedebug
        2
    lovedebug  
       2020-02-12 09:55:34 +08:00
    写个项目就懂了,比看这么多视频有用
    lovedebug
        3
    lovedebug  
       2020-02-12 09:55:45 +08:00
    go/推广
    gavinjou818
        4
    gavinjou818  
       2020-02-12 10:41:23 +08:00
    。。。你确定直接上 spring 实战?我总感觉新手不友好啊。。总感觉这些推荐都是网上的模板。
    AEANWspPmj3FUhDc
        5
    AEANWspPmj3FUhDc  
       2020-02-12 10:48:40 +08:00
    用提问的方式推广公众号???
    AEANWspPmj3FUhDc
        6
    AEANWspPmj3FUhDc  
       2020-02-12 10:50:47 +08:00
    @gavinjou818
    全网推荐的书就这几本,重点是他在发广告,推广他的公众号
    leonard916
        7
    leonard916  
       2020-02-12 11:00:45 +08:00
    @lovedebug 分人吧。有的人知其然不知其所以然,有的人就能理解邏輯並舉一反三。
    LongV2
        8
    LongV2  
       2020-02-12 11:38:48 +08:00
    推广推到这里来了?疫情影响这么大吗
    gowk
        9
    gowk  
       2020-02-12 11:39:00 +08:00 via Android
    不喜欢 block 就好了,感觉楼主写的都挺实在的,虽然是推广公众号吧
    arjen
        10
    arjen  
       2020-02-12 11:42:55 +08:00
    看见广告就头疼。说实话,v2 里有几个不会的...
    tt67wq
        11
    tt67wq  
       2020-02-12 11:59:45 +08:00 via iPhone
    thisisgpy
        12
    thisisgpy  
       2020-02-12 12:07:56 +08:00
    没钱治肺炎了?跑这里割韭菜
    huntcool001
        13
    huntcool001  
       2020-02-12 12:51:28 +08:00 via Android
    呵呵,这里的人不需要你这种推广
    yamasa
        14
    yamasa  
       2020-02-12 16:01:50 +08:00
    卖你 m 的课呢?
    sumarker
        15
    sumarker  
       2020-02-12 16:13:17 +08:00
    自问自答?
    行吧……
    jnduan
        16
    jnduan  
       2020-02-12 17:46:17 +08:00
    “在敲的过程中,最好把自己认为经典的案例分门别类,放到 GitHub 上或者码云上,等到以后再用的时候,也好找——书到用处方恨少,代码也是。”

    传说中的面向复制粘贴编程?
    AtlantisZ
        17
    AtlantisZ  
       2020-02-12 17:47:49 +08:00
    滚蛋
    wysnylc
        18
    wysnylc  
       2020-02-12 19:16:31 +08:00
    在这推广不是找骂吗
    8a9a09dw12
        19
    8a9a09dw12  
       2020-02-12 20:43:03 +08:00
    guolaopi
        20
    guolaopi  
       2020-02-12 20:59:59 +08:00
    推广完公众号关注完了天天看你卖别人的课?
    感觉程序员三个字被侮辱了
    mezhangkai
        21
    mezhangkai  
       2020-02-13 15:53:41 +08:00
    公众号现在全部都是割韭菜的,一篇文章都转来转去,全取关了
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   1480 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 32ms · UTC 23:51 · PVG 07:51 · LAX 16:51 · JFK 19:51
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.