如何快速打好 Java 基础? - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
cmower
V2EX    Java

如何快速打好 Java 基础?

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

    二哥,我是一名大学生,专业是电力工程,但想自学 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  
    PRO
       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     Solana     1540 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 28ms UTC 16:27 PVG 00:27 LAX 08:27 JFK 11:27
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86