自学会碰到的问题
自学当然好啦,可以省不少的钱, 可是自学会碰到很多问题呢。 个人花了一年半时间(当前时间是20170815),做了个Java自学的网站,试图解决一些自学中会碰到的问题。
1. 思路、框架、原理 一下子涌进来太多,接受不过来
无论是刚开始接触Java这门语言,还是像现在需要去学习一些新的技术的时候,都会选择去百度资料进行学习。 然而百度来的资料很多都有个不好的做法,就是一开篇就以一种高屋建瓴的方式讲很多思路,原理和框架。 事实上,对于刚开始接触,还没有多少动手实践的新手而言,是很难领会这些高屋建瓴的思路、原理和框架的,不仅不利于上手,而且还给初学者形成了一种暗示和心里压力:这个东西学习梯度是蛮陡峭的哦,无形中加大了学习的难度。
我偏爱的学习方式是,不要一来给我讲太多的东西,直接给我代码,让我跑起来。 只要跑出结果了,我自然而然就会得到一定的领悟,然后再自己去浏览每行代码,并琢磨其含义,那么就能逐渐理解和消化了。
推己及人,所以我在做Java教程的时候,也是采用这种方式,在每个知识点的讲解,都是一来就给出了可以运行的代码,并且提供便捷的复制手段,这样大家一上手就是跑一个可以看到效果的代码:
代码跑起来了,看到效果了,才会有兴趣往下学嘛
2. 自己写不知道错误在哪里
经过上一步跑起来了,真的可以看到效果呢,可是代码是复制粘贴来的,那可不行,得自己敲出来才行。 这个想法当然是好的,所以就开始一个个关键字,一行行的敲代码起来。
可是因为初学者不熟练,也许是某一个字母出错,或者少写了一个分号,程序就跑不起来,而且这种细微的差别,很有可能找上大半天去了。 为了提高这部分的学习效率,在教程每个代码右边都提供了代码比较功能
如图所示,通过高亮提醒,很容易就可以定位到错误的位置是哪里,减少差错时间,提高学习效率。
3. 运行某个代码,需要第三方jar包,手里却没有,怎么办
Java代码运行有个特点,常常需要用到第三方类,而这些类都放在.jar这种格式的文件里。如果这些jar包,让初学者自己去找, 一个是不知道在哪里下载,再一个同样的jar包会有各种不同的版本,有些版本与当前代码是不兼容的,所以这里也是容易掉进坑里,花很多很多时间才会找到对的那个jar包。
所以在需要用到jar包的地方,都直接在教程相关下载区域提供了当前代码正在使用的jar包,点击即可下载使用,方便快捷~
不仅如此,还提供了指导,如何把这个jar包导入到项目中,以便正确地使用它
4. 这个知识点涉及的部分真多,有个思路图,原理图捋一下就好多了
现在好了,照着教程自己做了一边,做出来了,效果也看到了,那么就有了感性的认识。 不仅做出来了,心中还产生了更多问题,这个时候,就处于一个饥渴的状态了。 那么此时此刻,开始讲原理图,思路图,就能够听得懂了,并且通过思路图也能把刚才所学整理,总结,更好的消化吸收。
5. 光是图文我还是看不懂,想看看视频怎么讲的
有部分的知识点还是挺复杂的,比如算法,hashcode 原理什么的。 光是看图文和代码,还是有些稀里糊涂的。
虽然有些稀里糊涂,但是经过自己敲过一遍,是带着针对性问题的稀里糊涂。 那么这个时候,带着问题来看视频讲解,效果就会非常好了。
这里提供的视频,都是解读性视频,是建立在已经动手做过了,带着疑问再来看的视频。那么比起看着敲代码风格的视频,学习效率就会提高很多啦
截住目前为止(20170815),视频已经有累计时常 47个小时24分钟50秒,共计 440个, 大小26G~
刚才到数据库里统计还吓了一跳,没想到啊。。。都这么多了,哈哈哈~
6. 虽然也写出来了,但是个别细节还是有疑问,该问谁呢
在每个知识点下面,都有一个提问区域,里面有和你学习同样知识点的同学的疑问,或许你可以在别人提问的答案里找到自己需要的,也可以通过看别人的提问,启发自己做扩展性的思考。
绝大部分提问,我都做了回答的,截至目前为止(20170815),累计有1021个知识点,2788个提问,
我回答了其中2544个问题。
7. 需要练习巩固理解帮助消化
知识点掌握了,但是好像就是抄教程上的代码,最好给我个小挑战,基于这个知识点做点什么练习,能够自己把这个知识点运用起来,就能更好的理解和消化了。 为此,挺用心地设计了194个Java 练习,几乎每个Java课程的知识点下面都有练习题
对这194个Java 练习有一个详细的介绍,如果有兴趣,请移步:
meepo:java入门菜鸟,目前处于自习阶段。想通过边练边学的方式学习java,想请问有什么java练习题的网站可以介绍?
8. Java 框架代码怎么都跑不成功
学习Java是绕不开框架的,可是框架要成功地运行起来是有比较苛刻的条件的,比如特定版本的jar包,严格的配置,必须提供的实体类,控制类,服务类,框架之间不同版本的兼容性等等,任何一步除了差错都会出问题。而无法运行起来,是很难有信心和兴趣学下去的。
所以为了便于同学们学习框架,在每个框架知识点的学习部分,都有当前知识点的 可运行项目 (什么都配置好了,需要的jar包都准备好了的)提供,确保可以跑起来。
不仅如此,还引导以先运行,看到效果,再学习的风格,用由终至始的方式,降低框架学习的难度。
9. 记录下心得体会
终于把要运行的代码跑起来了,该理解的思路图也掌握了,此时此刻能够自己总结一下就最好了。如果写在自己电脑上,零零散散的,也容易遗失,所以在页面上也提供了当前知识点的笔记功能
把这时的想法,思路,研究都记录下来,等全部学完了,再回过头来巩固和理解,学习效果就会很好,知识点掌握得也牢固
10. 实践项目
陆陆续续把各种JAVA,前端,服务端,框架的知识都掌握了,练习都做了,但是没有串起来,心里面也比较心虚,真正做项目的话,不知道该如何下手。 这个时候,就需要各种项目来练手了。
截至目前提供了4个实践项目练手
一:JAVA 桌面项目,虽然SWING桌面应用在工作里用的并不广泛,不过刚刚把JAVA基础学完,也没有其他好的视图展示方式(此时还没有开始学习HTML,JSP)。 好在SWING也不复杂,还是可以通过这个项目把JAVA基础里的各个知识点好好串一串的。
二: 前端项目。 现在前端有很多现成的框架,很容易就可以做出漂亮的界面。可是要对这些漂亮的界面做点修改,那就需要有较好的前端基础功底了。 这个项目呢,就是用纯HTML, CSS 和 JS做一个模仿天猫官网的页面,讲得比较细,对每个页面的布局,以及每个样式的讲解都有细致的说明。 比较适合又对前端比较感兴趣的同学,夯实前端的基础。
对于这个项目有一个详细介绍,如果有兴趣,请移步:
三、J2EE项目。 现在大家开发JAVA WEB项目,一般都使用SSH,SSM,SPRING BOOT等框架进行,可是这些框架下面都是用的J2EE的基础技术 Servlet,JSP,Filter, Listener等等。一来就开始使用框架开发的同学,一旦碰到稍微底层点的问题,就有点不知所措, 所以为了夯实大家的J2EE基础,做了这么一个基于J2EE来模仿天猫前后台的实践项目。
对于这个项目有一个详细介绍,如果有兴趣,请移步:
四、SSH 项目。 SSH也曾一度非常流行,是大家的框架首选,不过眼下基本上都是被SSM所替代了。 不过SSH还是有其较大的人员需求。 正是因为曾经一度流行过,所以很多企业,很多以前的,以及正在稳定运行中的项目,都是SSH做的。 这些项目需要二次开发和维护,那么也是需要相当数量的开发人员的。(这一点可以通过各大招聘网站,搜索SSH关键字得以侧面的验证)
所以呢,也准备了一个基于SSH的项目,这个项目使用SSH对上一个J2EE的项目进行了重写
对于这个项目有一个详细介绍,如果有兴趣,请移步:
五、 SSM项目。 还没有做好,哈哈~ 做教程可费劲了~ 估计10月底能做好吧~
11. 刷一刷面试题
该学的知识点都差不多了,项目也撸过了,接下来就要去笔试面试了,那么刷一刷面试题,笔试题,零时抱抱佛脚,总归是有好处滴:
学习的路线规划
上面列罗出了自学过程中可能会碰到的问题,以及相应的解决办法,算是战术层面吧。 接下来说说整体学习路线的规划。 以下的规划,是假设当前是零基础的状态给出的:
1. Java 基础
2. Java 中级
3. 前端基础
4. J2EE 服务端
5. Java 框架
学习时间预计
要学习的内容还真不少,那么需要多长时间呢? 根据较多同学的反馈,约莫预计个如下的时间: