一、代码量太少了,看得多做得少,导致一做就错。
任何一个nb的开发人员必定是在大量的时间和代码中提升的自己,如果你只是看视频的话,那永远都停留在理论上,很多问题是要实践才能发现的
我打个比方你看视频的时候可能觉得写一个输出helloworld的程序太简单了,几乎一秒钟就看懂了,因为没什么逻辑,非常简单,但是当你实践的时候你有可能会
出现
1、找不到文件,原因可能是你在cmd里面用javac编译的时候 把文件名都写错了。
这种情况你用dir命令查看一下当前路径下的文件从名字上就可以看出究竟有没有你的文件。
2、可能会出现你的类名和文件名不统一
3、也有可能出现乱码,用javac –encoding utf-8 test.java指定编码就可以解决了。
当然就这简单的几行代码还有可能出很多问题,比如关键字写错,分号不是在英文模式下写的等等。
总之在你们看来一个最为简单的问题上自己来操作都有可能会出错的,而这些你看起来简单实操却出问题的事问题的根本在于你练习得太少了。当然前提是你看懂了代码,如果连代码都没看懂,那实操咱们就不用说了。如果要想入门 第一就是懂,第二就是敲代码,学编程切忌只学理论,学习和敲代码应该是占4,6分的比例。可能大部分新手朋友都搞反了。
二、没搞懂的问题没有得到及时的解答
在咱们自学的道路上遇到问题肯定是非常正常的,也是任何一个开发人员都经常要面对的,遇到了问题没有得到解答那肯定就会影响到后面的学习,我打个比方,泛型你没学好势必会影响到你学习后面的集合,io你没学好肯定会影响到你后面做上传下载,或者是Excel的导入导出功能之类的。前期搁置的问题如果越来越多累计多了就导致自己感觉学得差不多了但是做一个最基本的javaweb项目都做不出来,更不用说学后面的框架了。大家在学的时候尽可能的把问题解决了再继续学习后面的,学习最重要的是学懂而不是学完,当然也可以把问题用小本本记下来来找我也是可以的,乐于解答,我这边整理了很多关于新手遇到的问题。当然我也建议大家下载一个有道云笔记,把学习中的笔记或者是遇到的问题对应的解决方法都记上去,这样走在哪里都可以直接打开了看的,也可以记录在博客上,这样对于你们以后面试的时候也有优势,直接给面试官打开你的博客就可以展示很多有价值的东西了。
三、学习的顺序问题
当然对于我来说新手并不只是在学习javase,就算是学完javaweb了那也还算是新手,总不能说你学了javaweb就是初级工程师了嘛。所以我就跳出入门java基础再讲讲接下来的一个问题。学习的顺序问题,有的同学javase都没学完就跑去学习前端,或者是听别人说框架好就去学习框架了,没有一个系统的学习路线,现在市面上的人告诉你的学习路线基本都是0几年就出来的学习方式,不过改一改就拿出来了,比如学了jdbc就学前端基础然后是javaweb。这已经是以前的做法了,真正高效率的应该是学习jdbc中用javase中的反射学习如何如何写出通用的功能出来,然后再学习mybatis。因为持久层框架就是基于jdbc来封装的,不过就是用到了大量的反射而已,如果你在jdbc里面已经学习并且接触了,那对于你学习mybatis这个框架是有非常大的好处的。
具体的学习路线我给大家整理出来吧:
Javase------数据库------jdbc------ mybatis------前端基础------javaweb------spring------ maven------springboot------reids------springcloud------linux------git。
Javase:java基础,既然是基础,那肯定是最重要的,所以学习的时候也是需要重点学习的地方。
数据库:为什么要学数据库呢,因为我们的web数据需要持久化到磁盘上统一管理,而数据库无疑就是最好工具。目前主流的关系型数据库有mysql 和oracle。我建议先学mysql。为什么呢mysql相比Oracle难度要低,而在国内应用场景又是最多的。
学会了mysql可以开发出一个完整的产品了,再学oracle都可以的。
Jdbc:英文全称是Java Database Connectivity,中文意思是Java数据库连接,为什么要学习jdbc呢,因为我们不能让用户查询数据的时候从页面写sql,用户是不会写的,那只有我们给他们在代码里面写好了,每次点击页面去触发执行sql就可以返回对应的数据了。
Mybatis:持久层框架,当然持久层还有一个框架应用也很广的,那就是hibernate,一个是半自动的一个是全自动,而在国内应用最多的是mybatis,在国外用得最多的是hibernate,具体原因,大家可以百度查查。持久层框架有什么好处呢?如果你用原始的jdbc做开发,那你得自己来管理每一个连接,连接的打开和关闭,都是有开发人员来操作的,而且jdbc也没有实体的映射,需要我们写代码把值set进去,而用了框架这些都交给框架去做了。
前端基础:既然是做一个网站,那肯定不能是后台的数据,这样用户也是没办法看的,所以需要学习前端知识,把数据展示到页面上,而对于后台人员来说,学习阶段只需要学习前端基础就可以了。Html 、js、css、jquery就可以了。当然到离开后期你也可以学学专门为后端人员定制的前端框架,比如,layui,easyui。如果还觉得不够可以学学前端专用框架。比如vue element ,但是大前提是把自己的后台学到位了再学其他的。
Javaweb:jsp、servlet。为什么用了html还要学jsp呢。因为jsp和Java是无缝连接的。学了javaweb以后就可以自己做一个项目出来了,比如你想做一个个人网站。你可以给你们学校做一个教务管理系统都是可以的。
Spring:后台框架。为什么要用框架呢,可以快速开发,并且降低了耦合。Spring的AOP支持允许将一些通用任务如安全、事务、日志等进行集中式管理,从而提供了更好的复用,Spring的ORM和DAO提供了与第三方持久层框架的良好整合,并简化了底层的数据库访问。
Maven:mavne是一个工具,他的核心是pom.xml,这个配置文件,pom的全英文是project object model,意思是对象管理模型,也就是把项目也看成一个对象来操作了。给我们带来最直观的好处就是依赖问题,以前我们需要自己下载jar包,在构建到项目中,但是有了maven只需要写jar的依赖就可以自动给我们下载了。
Springboot:springboot是基于maven的,springboot最明显的特点就是开箱即用,也就是构建了一个springboot项目 直接就可以做开发了,而不需要像我们自己配一个springmvc的框架一样的需要去配置大量的xml文件。让我们开发人员更着重于业务上的开发。
Redis:前面的mysql,oracle是关系型数据库,什么是关系型呢,就是一对一 一对多 多对多。有表与表之间有这些关系在,所以就叫关系型数据库,而redis就是非关系型数据库,也就是他存储数据之间是没有这些关系,他是以键值对 list set方式存储的。
Springcloud:微服务框架,什么是微服务呢,就是把我们传统的单体服务拆分开了,就是将一个单体架构的应用按业务划分为一个个的独立运行的程序即服务,微服务架构其实就是一个分布式架构,具体的就不详细的讲了,因为这里面牵涉到的解决方案是灵活的
Linux:linux的应用通常都是在底层,那我们上层开发人员为什么也要学它呢,其实我们的主要应用是在服务器上,也就是服务器的系统。当然系统也有Windows的,而Windows的和Linux的区别就是Windows服务器有问题是微软来解决,很方便:别人替你做,但也不方便:你遇到问题都得让他官方来解决漏洞,但是Linux就不一样,他是完全开源的,有问题自己马上就可以解决,只要开发人员能力够硬去改内核都是可以的。
Git:版本管理工具,与之对应的还有svn,最大的区别在于git是分布式系统,而svn不是分布式的,因为你们进企业以后都是协同开发 也就是一个项目小组里面几个小伙伴一起开发一个项目,所以就要有一个代码的管理工具来保证你们做的不同模块可以整合,所以说git也是需要学的。
当然这个学习路线也是大概的,详细的太多了我就没打出来,可以直接来找我都可以的。
最后:学习知识要持之以恒,不要三天打鱼两天晒网的,学习要形成一个习惯,如果你学了几天又玩了几天,那前几天的可能就会忘记。这样学习的效率和进度都非常低了。