我觉得,完全零基础学不太会…太难了。
你可以花8个月去自学,如果时间允许的话。我就是这样做,也找到了工作。
学习路线:
这篇文章是为了介绍自己自学用过的Java视频资料。全部来自传智播客旗下的黑马程序员。也感谢传智播客放出这么多优质的学习视频。本套整合教程总共180+G,共450+小时,可用格式工厂转MP4格式,QQ影音加速播放。但考虑到绝大部分视频至少要看两遍,而且视频总时长并不代表学习时长,所以零基础初学者总学习时间大约为:600小时视频时长 + 100小时理解 + 100小时练习,至少需要800小时。你可能觉得自己能一天学习8小时,实际上平均下来每天能学4小时都算厉害了。因为有些时候你就是学不下去,或者某阶段视频内容太难光看完半天内容就够呛,或者其他事情耽搁了。如果周末你也是坚持学习,那么最理想状况下,6个半月就可以学完。但我知道那其实基本不可能。我自己从完全零基础,到学C语言,到学Java,除去中间断开的两个月,已经学习10个月。当然,这和我边工作边学习,以及没有人帮我找资料有很大关系。很多时间花在找资料上了。如果你已经经历过JavaSE的洗礼,会明白,我这篇回答对现在迷茫的你份量有多重。
一般来说,按本套教程,从零基础到达到工作后能被人带,至少需要8个月!培训班现在也需要6个半月。不过现在自学或培训出来的已经很难找工作了。
我不想和别人辩解这个,一般得到的回答是“谁说不好找,你自己学得垃圾而已!”。总之,没有朋友内推,我不推荐零基础的朋友冒险进这行,没你想得那么好的。各行各业都有值得做的工作。你们如果一意孤行,学习能力又差的话,蹉跎岁月后,下面就是未来的你们:
以下正文:
我只是普通网民,只会开关机。16年9月18日开始决定学编程。
【1,启蒙阶段】
同样地,花了3天经历了入门语言选python还是C的纠结后,我最终选择看郝斌老师的C语言视频入门。具体学习方法可以搜索《零基础如何学习编程》
这个阶段与其说学C,不如说懂一些基本的编程知识,比如:循环结构,数组,简单的内存分配原理,指针概念等。郝斌老师的C语言视频,对小白非常友好,启蒙教育做得很好!
如果时间不是很宽裕,可以直接从下面的JavaSE视频开始,看自己能否接受。
如果时间比较宽裕,喜欢循序渐进,培养兴趣了解一些计算机知识,那么可以看看。
我个人觉得郝斌老师讲课很有魅力,我喜欢听他唠嗑。像一位好朋友娓娓道来。
<看完视频一定要敲代码>
学习C语言时,一个视频看完,里面老师敲的示例自己觉得没把握的,一定要敲一遍(脱离视频自己敲)。IDE一开始就安装好,方便看完就敲。推荐Dev C++。
我记得,2016年10月下旬,经过一个月努力(每天下班三小时),我把C语言视频看完了(部分视频可以用QQ影音加速播放),然后花了一个半月把大学母校在线判题系统上的100道初级C语言题目做完了,至此基本的循环语句,条件判断还有数组就很熟练了。
在线判题的代码建议用Dev C++在本地写好,复制粘贴过去。上面的小题目,让我敲得不亦乐乎,忘了上一天班的疲惫。至此,编程学习启蒙阶段结束!
顺便在这里说一下,我目前是在职Java开发,如果在入门学习Java的过程当中有遇见任何关于学习方法,学习路线,学习效率等方面的问题,你都可以申请加入我的Java新手学习交流群:798844620,这里面聚集了很多正在学习Java技术的初学者,缺乏基础入门的视频教程也可以直接来找我,我这里有最新的Java基础精讲视频教程,群文件里面还有我做Java技术这段时间整理的一些学习手册,面试题,开发工具,PDF文档书籍教程。
【2,JavaSE基础】
12月下旬我我开始了JavaSE的学习。网上看了一大堆推荐,知乎也反复看别人的回答,最终选了传智播客《毕向东Java基础视频25天》。前四天很简单,都是C里面学过的知识点,比如数组,所以基本2倍速,每天看1天视频。第5天,开始讲面向对象。挺激动的,因为学C时郝斌老师有提过面向对象,觉得很神秘。但遗憾的是,初次接触面向对象,看得我全场懵逼,头皮发麻,完全云里雾里。最后索性自暴自弃,不看了。那时刚好又准备离职,过年在家什么都没做,白白浪费近两个月。等3月份出来重新找到工作,又重新开始学习毕老师的25天视频时,发现竟然连C的部分内容也生疏了…所以,学习千万不要断。
毕老师的25天视频,善用类比,语言幽默,每个知识点掰开了揉碎了喂给你,非常适合初学小白。毕老师讲课的魅力在于,让小白能听得进去,不枯燥,甚至觉得很有意思!自己也很喜欢他的讲课风格。但零基础的各位可能会和我当时一样,看到第五天时完全懵逼。因为对于零基础初学者,Java还是挺难的。
后来发现毕老师还有其他版本的视频,相比25天版调整了部分知识点讲解顺序。但是,听了刘意老师的视频后,觉得刘意老师的风格也很不错!思路非常清晰,语言简短直接。也是我现在最推荐的JavaSE视频教程。反而毕老师有些知识点的讲解有点绕。但毕老师很多地方之所以听起来绕,是因为真的太照顾初学者了。算是为了初学者做出的让步吧。
JavaSE阶段,建议完全零基础的朋友,先看毕老师的,再看刘意老师的。或者直接看刘意老师的,辅助看毕老师的。放心,完全零基础的朋友,一遍肯定学不会。所以同一套视频看两遍都算少了。另外,有时一个老师的观点是片面的,要结合不同老师的讲解才可能对一个知识点有更全面深刻的理解(前提是先把一个老师的讲解吃透)。所以我是建议刘意和毕向东的都至少看两遍。
具体建议后面会给出。
<对零基础学习者的建议>
0,看视频学习,不要看书学习。我自己是日语专业的,此前完全没有接触过编程,对编程是完全没概念的。知乎上很多人都说看视频慢,建议直接看优秀的书籍,所以我就买了C语言的一些书和Java的一些书(都是初学入门的),但都看不懂,看不下去。反而是后期跟着视频学习一段时间后,再翻开书本(其实几乎没看过书),慢慢能知道书里在讲什么了。大家千万不要觉得看视频会显得自己学习能力不够强。实际上,大学选择计算机专业的同学,又有多少比例是不靠老师上课,自己躲图书馆把编程学会的呢?从这个角度来说,看视频相当于大学课堂听课。并没什么不妥。
1,不懂的知识点视频多看几遍,如果视频有配套笔记,第二天起来复习一遍,加深印象。自己也可用word做笔记,写学习日志。JavaSE初期建议用最简单的EditPlus或UltraEdit敲代码,顺便掌握最简单的dos命令(cd… cd javac java差不多了)。JavaSE中后期,立即跟着视频换Eclipse或myEclipse,赶紧熟练工具的使用。JavaSE有不懂的,可以百度或谷歌,看看别人的技术博客。再回过头看视频可能就突然明白了。因为我也这么试过,对我帮助很大,希望你也能试试。
2,根据视频内容画思维导图!根据视频内容画思维导图!根据视频内容画思维导图!
强烈推荐这个方法。我建议思维导图画两个版本:
初版——记录视频讲解思路和各个知识点,尽量详细。
再版——自己试着回忆,把最核心的知识点提取出来。
画思维导图的好处在我看来至少有两个:
①理清讲解思路,让自己有全局观。初学Java,每一天的视频刚听完就基本忘得差不多了。很多知识点脑海中也只剩下一个名词,具体讲了什么已经记不得!如果只是这样看看视频,不反刍总结每个知识点的话,过一段时间就会全部忘光,连每个知识点是在哪一天视频出现的都不知道!这是我沉痛的教训,不知道浪费了多少时间!做笔记长远来看是最省时间的。因为笔记内容都是自己消化过的,后期不用再去看视频复习,直接看自己的笔记,效率太高了!反而蜻蜓点水,不做笔记一味求快的人,学到后面跟不上,回过来看原先视频又觉得自己懂了,再回去又不懂,因为这些知识点你只是听懂了,而不是理解!!
②方便日后复习,以及遗忘时的检索回忆。
下面是我的思维导图截图(windows可以使用Xmind)
思维导图可以很好地帮助我们理清知识点
思维导图要自己做,自己看,效果最好。看别人的基本没效果。
3,初级阶段不建议买任何书籍,专心看视频和附带的笔记足够了。包括知乎上推荐的《head first Java》,《疯狂Java讲义》,《Java核心技术》都不太适合现阶段完全零基础的我们。太厚,知识点太详细。要知道,我们现在刚学完C,才了解编程的循环语句而已。再怎么好的入门书籍,它对受众也是有一定要求的。而这个阶段的我们,就像小婴儿,即使给我们一辆带辅助轮的自行车,我们也骑不了…我买过一本《疯狂Java讲义》,就翻了几次。看着密密麻麻完全不熟悉的知识点,很烦躁很焦虑。当然,我不是说看书不好,只是本阶段不推荐。至少我从零基础到学习框架,从书本上学到的可能就占了0.5%,看博客学到的也比书本多。几乎完全是靠视频学来的。而且视频也有源码和笔记,已经很方便。
对零基础的学习者来说,JavaSE的学习非常困难,因为完全白纸一张。你会有无数疑问,会经历无数次沮丧,无数次想放弃,无数次怀疑自己的智商。比如我,学了一个多月才学到毕老师的异常一章。之前在面向对象一章就已经很崩溃,哪知异常也这么抽象,完全不知道它是干嘛的…但千万不要放弃学习,也不要停下进度。可以多看几遍或者先往后看,到时候再回过头来学习。不要理会别人的嘲讽。很多人是科班出身,早就忘了当初自己连软件都不会装的窘境。就像我们现在根本不会觉得用筷子还需要学习,但你爸妈当年为了教你用筷子,可是头疼过不止一次呢!
顺便在这里说一下,我目前是在职Java开发,如果在入门学习Java的过程当中有遇见任何关于学习方法,学习路线,学习效率等方面的问题,你都可以申请加入我的Java新手学习交流群:798844620,这里面聚集了很多正在学习Java技术的初学者,缺乏基础入门的视频教程也可以直接来找我,我这里有最新的Java基础精讲视频教程,群文件里面还有我做Java技术这段时间整理的一些学习手册,面试题,开发工具,PDF文档书籍教程。
初学者也容易想走捷径。我相信很多人都会有这个想法:能不能只学工作上要用的?根本原因是知识点真的太多了,有些暂时可以不学的,确实会想跳过。其实JavaSE全是重点,培训班本身就是帮我们筛选掉不重要的知识点了。以刘意老师视频为例,面向对象(封装,继承,多态),异常,多线程,集合框架,IO,网络编程都挺难的。其中面向对象是JavaSE的重中之重,里面的知识点个人认为是最难的。后面的知识点都是建立在这之上展开的,没学好面向对象,后面就会稀里糊涂。
当然,也不是真的一点都不能跳,但最好完整地学下来。按照后面JavaWeb的学习来看:
面向对象是基石,JavaSE中最重要的一是集合,二是IO,希望大家学习这两个知识点时认真对待,多敲代码,多思考。
常用API里,String及其相关类StringBuilder, StringBuffer等必须熟悉,后面会不断用到。不学好的话,后面怎么死都不知道!
泛型一般只出现在集合中,个人觉得如果一时无法掌握,那么暂时会在集合中使用泛型就行了。
反射对于初学者来说是非常抽象的!!但它又无比重要。它虽然不是JavaSE的重点,但是它是JavaWeb很多难点的底层支撑,不懂反射,寸步难行。感到困惑时可以参考我的反射思维导图,完全是初学者不专业的解释。
链接:
windows下载XMind软件打开。
多线程,集合框架,IO和反射都很难,其中IO又因为东西太多,从记忆层面上来说,个人觉得是最难的。
GUI,网络编程可以先过一遍。不用纠缠。起码在后面教程用不上。
异常可以先了解下,我目前也没怎么懂。
重点
面向对象☆☆☆☆☆
集合☆☆☆☆☆
IO ☆☆☆☆☆
String/StringBuffer/StringBuilder ☆☆☆☆☆
反射☆☆☆☆☆
泛型☆☆☆☆
熟悉
异常,多线程
先过一遍
GUI,网络编程,正则表达式
【3,JavaSE之后干嘛】
我当时学完毕老师的25天后,迷茫了很久…根本不知道下一步怎么走,该看谁的视频好一点。后来才知道毕老师原来还有35天、30天、33天版的Java基础视频。但我已经没时间重新都看一遍了。我当时直接开始了JavaWeb的学习,学到JDBC后发现基础实在太差,学不下去。又回过头学习了刘意老师的JavaSE视频。
区别
25天版(2011年录制)
声音清晰,但没有讲反射,没有HTML,CSS, JavaScript,DOM
35天版(2012年,号称史上最适合初学者)
声音不是很清晰,相比25天版多了反射,HTML,CSS, JavaScript,DOM
30天版(2013年6月)
声音清晰,相比25天版多了反射,HTML,CSS, JavaScript,DOM
33天版(2013年10月,最新)
声音清晰,相比25天版多了反射,HTML,CSS, JavaScript,DOM
每个机构的路线都有点不一样,比如尚硅谷,动力节点等…我觉得如果选择一家培训机构的视频,就看他们全套的。因为知识点安排和讲课风格会大体接近,比较熟悉。毕老师的视频没必要把每个版本看一遍,非常浪费时间。我也只看过毕老师25天版本全部、30天版的多线程和刘意老师的JavaSE。当你发现视频讲得有点浅,说明你学的还不错。此时你想理解得更深的话,不要再找视频了,视频都是给初学者的,点到即止(不论哪家的视频)。直接去看书,《Java编程思想》保证够深。但还是忍住,先往后学JavaWeb吧!
毕老师30天的视频最后有简单地讲解HTML CSS JavaScript和DOM,可以给我们一个基本概念。崔老师的JavaWeb刚开始也会讲HTML CSS JavaScript和DOM(其实前7天是广陵散王泽的,拼凑的),而且更全面更详细。讲课风格很朴实,很清晰。相信大家也会习惯并喜欢他。
前端三剑客,对于我们零基础,只看毕老师的视频是根本没法一次掌握的,但毕老师讲解后有了大概框架后,再看JavaWeb中的前端视频会吸收得更好。
建议学完HTML就马上做一个小页面,巩固下标签的知识。HTML是三剑客里最基础的,必须掌握常用的标签。
【前端部分】
首先,学习html和css后记得做一个小案例,快速熟悉标签使用。
学习JavaScript的dom操作时,留个心眼,多关注。js的dom学好了,对后面学习xml的dom会有帮助。当然,重点是xml的dom操作。dom4j重点练习。试着自己封装一个小工具。
JavaWeb的反射就当复习,好好学。
【JavaWeb核心技术】
tomcat一定要跟着视频配置一遍。光看视频是记不住的!!
Http协议和servlet超级重要,多看几遍,看一遍我敢打赌你会晕。东西太多了。建议做一下思维导图,理清知识点。
request和response超级重要,也很难。多看几遍,不要心急。request域超级重要。
cookie、session、JSP超级重要。多看几遍,不要心急。session域超级重要。
JavaWeb总共四大域对象,都是很重要的。
day12-13,老实说,我只记得${EL表达式},知道怎么导入JSTL标签库<%@…>和核心库的使用。其他的都忘了。
day14一定要跟着敲,因为后面的小案例都是在这个上面扩展。这个不敲,后面的敲不了!
day15-19算一个小周期。都是数据库操作。还是那句话,跟着敲,才记得住。不敲你肯定记不住,真的。day-17-18-19jdbc的内容是崔老师视频的第一个精华!!其他视频难以超越的讲解!!搞清楚TxQueryRunner的编写思想对后面学习框架和框架如何实现事务有四两拨千斤的功效!
相比servlet,感觉监听器和过滤不是很重要,老师有点一带而过的感觉。
上传下载和JavaMail挺复杂的。我反正第一次没掌握,用到查吧…但这些后面的项目会用到。
AJAX,很难。但听说现在和json一起用的越来越多。
综合练习,一定要敲,即使你觉得很难,也要硬着头皮敲完。敲完以后,自信心暴涨,那时你自己对JavaWeb那些知识点是重要的哪些是次要就会有自己的理解。重要的知识点,在你心里沉淀出来。就是这么神奇!!
最后的基础加强,崔老师视频的第二个精华!!收获也很大。直接提升到另一个境界。为学习框架做铺垫。也算崔老师的道别礼物。
最后,这是我学习时做的思维导图,有些做得很差,做到一半就放弃的也有。
有疑惑可以看看,没准能帮到你。但记得,不要先看我的。一来,我也是初学者,会有理解偏差。二来,不希望我的笔记让你先入为主,这很危险。
学习路线建议(按传智播客黑马程序员来)
1,JavaSE(建议三个月):
毕向东任意版(启蒙或辅助)
小白人生导师,强烈推荐,两遍
刘意JavaSE(深入浅出精华版,主看这个)
2014年年底录制,和后面Javaweb比较配,两遍
顺便在这里说一下,我目前是在职Java开发,如果在入门学习Java的过程当中有遇见任何关于学习方法,学习路线,学习效率等方面的问题,你都可以申请加入我的Java新手学习交流群:798844620,这里面聚集了很多正在学习Java技术的初学者,缺乏基础入门的视频教程也可以直接来找我,我这里有最新的Java基础精讲视频教程,群文件里面还有我做Java技术这段时间整理的一些学习手册,面试题,开发工具,PDF文档书籍教程。
毕向东JavaSE25天版由于有点老了,整个解说都没用eclipse,不利于小白掌握eclipse使用。但内容真心不错很照顾初学者。我自己看的是25天版本。毕老师的30天版里的多线程比25天版本讲得好,也讲了前端知识。毕向东视频作为补充,重点看面向对象,集合,IO。
2,JavaWeb(建议两个月):
崔希凡——超全面的JavaWeb视频
和刘意的JavaSE衔接比较好,深入浅出。中间和后面的项目,JDBC以及最后两天的基础提高非常棒,强烈推荐,两遍。
但里面没有jQuery和bootstrap 等前端内容,需要自己另外找。jQuery可以去菜鸟教程或者w3cschool学一下就好了。或者看就业班里的。
3,ssh框架了解思想就好,看完就忘掉!!(按顺序,建议20天):
崔希凡Struts2 + 刘悦东就业班(32期)ssh框架 + 王泽2016ssh框架 + 王泽ssh综合项目实战
IDE工具要换成eclipse mars版,在黑马32期就业班里有统一工具,记得JDK和eclipse都是32位版本,要统一
①崔希凡Struts2(衔接JavaWeb,过渡用)
②刘悦东ssh框架(重点看Struts2)
黑马19期梁桐spring(补充看看)
③王泽2016ssh框架 + ssh综合项目实战(重点看hibernate,spring,项目)
崔老师的Struts2毕竟是2013年的,很多现在不重要的点也参进来,会比较琐碎。现在Struts2都不怎用了,作为了解的话,主要看值栈和拦截器,了解思想。这部分视频主要是为了给JavaWeb看崔老师视频的朋友一个过渡。怕你们舍不得崔老师。其实讲框架的其他老师也讲得非常好。看完崔Struts2,就看刘悦东的框架,hibernate和spring做了解,Struts2几个视频中他讲得最好最深。最后,有了上面的铺垫,再看王泽的ssh2016,条理非常清晰,精炼。每天只有2.5小时。过一遍很快。为什么三个框架要看这么多视频?因为初学者要进入框架学习其实需要适应时间。就好比王泽的,我一开始就是看他的,当时就想:什么东西?上来就一大堆配置,还没引入呢?框架有什么故事,和之前JavaWeb阶段的联系呢?我还没听够呢!所以我列的视频顺序,是为了照顾初学者心理。刘悦东和崔希凡算是课程上得比较有意思的。让他们带你们入门,心里好接受些。但框架东西毕竟太多,最终还是要王泽这样精炼简洁的讲解给你们梳理一遍。最后跟着王泽的ssh项目做一遍,ssh框架也就算入门了。重点记spring,struts2和hibernate理解思想即可,因为不用了!!把你的大脑空出来给后面的springmvc和mybatis。都学的话,会混!! 学有余力,可以看看汤阳光老师的:Hibernate(听说讲的不错,但我不打算深入)SpringOA项目(听说这个项目很不错,我没做过)
3.5,学完SSH回头务必看看崔希凡JavaWeb的day-17-18-19三天JDBC的内容,以及day27-28基础提高!Javaweb阶段你可能觉得这些内容不明觉厉,但又不知道有何用处。等你学完SSH,以及后面的SSM就会发现,是真的很吊。JDBC的内容已经渗透了框架的事务原理,基础加强讲到了如何利用注解+反射搭建山寨版的hibernate和spring。
4,SSM框架(重点中的重点)①先看黑马32期李旭讲的mybatis和springmvc,不为别的,因为他只讲重点,十小时讲完springmvc+mybatis。先有个感性认识。②再看黑马程序员官网放出的《mybatis由浅入深》、《springmvc由浅入深》,很详细,很不错。③在掌握了上面的视频内容并有自己的一些见解后再去看尚硅谷的(最后有讲源码)
5,学习方法:小白自学的难点在于:
1,找不到合适的资料。
2,不知道学习重点。资料我已经放这了,是个人认为最适合小白的教程。ssh框架由于现在用得不多了,我找过很多传智播客的视频,觉得讲得都不是很好。黑马32期中刘悦东老师讲得还挺好的,起码听起来很舒服。视频也足够新,2016年年底的,作为了解很足够了。我另外提供了崔希凡老师的Struts2视频,为了能让刚学完JavaWeb的同学习惯。至于学习方法,即使我这篇文章给出了重点,可能你们还是不会相信。所以我建议:不要想着彻底掌握一块知识点再去学下一块知识点,这样永远不可能把这一套视频学好。你应该用最快的时间完整过一遍,对整体学习路线有个把握。第一次学习争取每个知识点懂个50-60%,从后面的内容判断前面哪些知识点是重要的,常用的。然后回过头来有重点突出的攻克,抓大放小。最后,我推荐的视频都是自己用过的,对比挑出来的最深入浅出的。如果你觉得没看懂,就多看几遍!!这句话很淳朴,但是很奏效。如果你相信我的话。其他的跟着视频就好。前期用记事本工具,我用的是UltraEdit,你也可以用EditPlus。后期用MyEclipse,其实就是多了插件的eclipse。要尽快熟悉MyEclipse的各种快捷键。