写给java初学自学者(一)
开篇直奔主题,java学习个人感觉分为两种途径,第一种是在学校,在培训机构等地方学习,有人指导;第二种是自学,通过视频,书籍,朋友等完成学习. 本文适合 自学,且基础薄弱或者无基础的人.
下面先就几个常见问题做个问答式讲解:
1. 学java需要基础吗?学java需要英语什么水平?
当你问这些问题前,首先要给自己一个定位.你学java是用来干什么的?
如果你只是想找个这方面的工作,进入这个个行业,那么没有基础,英语水平一般(例如public static void main 不能写了2天还没记住怎么写,怎么读)就可以了.
很多人说,学java或者说计算机之类的都需要英语基础,因为这些东西都是欧美之类国家过来的,想掌握新的技术之类都要读英语文档等等.等翻译到中文的时候已经是二手的了.这话确实没错.
我要说的是,如果你只是想找个工作(开发岗位),那么 用那些二手的东西已经够了.
不过还是要提醒一点,不需要太多基础,绝不代表你以后也不需要,在你学java的过程中,对英语水平的提升也是非常必要,不需要去专门学英语,最起码能看懂报错信息.
2. 自学java有出路吗? 自学java要多久呢? 去培训机构好还是自学好?
先说自学有没有出路,我可以告诉你,自学肯定有出路,但是你自学有没有出路,我不知道.
再说自学要多久,我是专门辞职在家自学,有朋友周六日帮忙,用了半年时间开始找工作.学习时间是每天学习10个小时,每星期学习3天到4天(很不努力,能找到工作完全是朋友帮忙).这个也要靠自己.
最后,去培训机构好还是自学好. 我感觉肯定是去培训结构好,特别是那些一个人自学,没有朋友提供帮助的人.当然前提是你要选择一个好的,专业的培训机构.但是去培训机构要收钱,所以才有这么多人自学.
3. 学java出来工资待遇怎么样?自学的能拿多少钱?
工资首先要看你工作的城市,北上广深圳高点,成都大连其次,别的地方少点,可以上智联招聘上看看. 至于自学的能拿多少钱?这个不是个问题,因为你去找工作应该不会说自己是自学的.
4.自学应该怎么学?有什么好的自学方法?有什么好的经验传授下?
很多自学者或者说初学者,都会问这类的问题,想让前辈们传授下经验,避免多走弯路.我开始自学的时候也是在CSDN上100分发帖求指导,有很多人回帖,感觉看了都有用,但是
还是感觉不知道如何下手,这里我把我的经验写出来,希望能帮上点忙.
------------------------------------------------------------------------------------------------------------------------------------------
写给java初学自学者(二)
下面来分享下个人感觉最重要的部分,学习方法:
(还是采用问答形式)
1. 刚入门,看书好,还是看视频好? 有什么好书,好视频,或者说适合的书,适合的视频推荐下.?
这应该也是初学者比较常问的一个问题了,先来对比下视频和书的优缺点.
视频:
优点,比较面向工作,比较着重实际中用到的,比看书更有身临其境的感觉.讲的比较详细,带你实际操作.
缺点,去找专业的视频,一般都是比较早的,有些东西可能已经过时了.还有查询起来比较麻烦.
书籍:
优点,比较全面,查询方便,比较及时.
缺点,比较全面,暂时没用的知识比较多,习题水平不高.
初学者,我感觉还是看视频比较好,说实话入门书我就看过2本,然后就转看视频了.书讲解的比较全面,但是就是因为比较全面,所以才感觉
不够突出重点. 可能会出现这种情况,为了一个课后习题,绞尽脑汁还是做不出来,可能是这个题出的不合适,也可能这个题其实一点实际意义
也没有,但是他浪费了时间,最主要的是,他比较打击初学者的信心.
视频比较不好的一点就是比较老,你去看培训机构的视频,他公开的都是几年前的(毕竟要盈利,不能公开最新的),可能有些已经过时了,(例如马士兵视频的
使用lomboz eclipse),还有就是查询起来不方便,所以要做好笔记.
这里推荐2个视频下载地址:
尚学堂 http://www.verycd.com/topics/93279/ ;
传智播客 http://www.itcast.cn/video/ ;
2. 学习中碰到问题,怎么解决?
一般遇到问题分为3种.
1) 理解上的问题.
例如: 不明白 public provite 等修饰符的区别, 不明白 方法返回类型是什么, 不明白 方法的参数是怎么回事,不明白重载,重写,覆盖的关系等等.
这种问题,解决办法就是 上网搜一下,大致明白是怎么回事,如果还是不明白,不要深究,不要抓住这个不放,不要感觉这个不弄清楚就没办法继续学习,
别停下你的脚步,继续往前走,遇到这些问题就比葫芦画瓢,出错了就多做实验,多动手,一定要多动手多总结,就OK了.到后来,你可能已经忘了这个问题,
当某天在群里,有人问这样的问题,你欣然解答,然后才发现自己早已掌握这些了.
切记:要勇往直前
2) 程序出错,有报错信息.
举个例子.曾经的我,一出错误,就到群里叫,报错信息也不提供,这样的话,除非有人正好很闲,基本没人回答我的问题,当我把报错信息贴出来,别人发现
报错信息上的错误提示位置已经精确到哪一行,哪一个字符了.而我看都没看就直接求助,就得出结论,我这样的不适合搞java.也有人说我,不要有错误就去
问,要自己先分析一下,先尝试一下能不能解决,先网上查下资料. 而我,则吸取这个教训,出问题,我先看到底是哪错了,不知道的就先去网上搜一下,
当我知道问题出在哪里,但是不知道怎么解决,我就会去群里问,或者继续在网上找答案.
切记:要分析报错信息.最好记下笔记.
3) 程序出错,没有报错信息.
这个问题比较麻烦,因为比较无厘头.当你遇到这样问题的时候,你会发现程序出错有报错信息时候是多么美好. 这种问题解决办法还是要上网搜索.
但是这个问题麻烦的地方在于,可能你找原因找了2天,还没有找到,但是问题不见了.. 也可能你找了2天原因,还没有找到,问题还在,你重装系统了...
如果你去搜索你这个问题,发现没有搜到你想要的内容,这时候你的方向应该发生变化,不要去寻找原因了,解决问题就行了.
有人奇怪,不找到原因,怎么解决问题. 举例说明:
我建了2个项目, 部署在tomcat上,突然有一天,一个项目部署上去后,tomcat加载不了,就是说启动tomcat正常,但是没有加载项目.另一个项目则正常,
我去网上搜了半天也没有结果,tomcat的配置,项目的路径,等等 扣了半天,没有解决,最后没办法,把tomcat卸了重装,搞定了.
我到现在还不知道原因,但是原因已经不重要了.(如果你感觉从这种问题里面,能找到一条阳光大道,你可以深入研究,但是初学者不建议,因为基础不够,基本
会被弄晕而不会发现什么商机或者新技术.)
如果你老是遇到 网上搜不到的无厘头问题, 那就是你的人品有问题了 . 嘿嘿..
切记:不要偏离目标.
-------------------------------------------------------------------------------------------------------------------------------------------------
写给java初学自学者(三)
这一部分主要来探讨一下学习路线.
网上应该有很多的java学习路线图,大体都是一样的.这里我们就以传智播客java学习路线图作为基础来分析一下(没有这个图的童鞋可以去网上下一个).
这个路线图主要分为了6个部分:J2SE部分,数据库&JDBC编程,WEB开发基础,JavaWEB开发,轻量级javaEE开发,项目实战.每个部分下面又分了3个模块,每个模块下面
又分了很多小的点. 整个图看下来,有点吓人,因为感觉要学的东西太多,这要学到什么时候才能找工作呢?
确实很吓人,因为第1部分下面的第一个模块我自学了2个月还感觉没有掌握.那是何其痛苦的一段时间,每天都在想着放弃,想着去培训机构,想着自己不适合学这个,
想着自己学了一天还没理解的东西可能别人就是几分钟的事,整天压力巨大,每天睡觉前都为一天的劳无所获而不安.在这期间我有过自暴自弃,每天醒来就开始打植物大战僵尸,
甚至连连看都能玩一个上午,整天在继续还是放弃中徘徊...(感谢下鸟哥,2个人相互鼓励都挺了过来,嘿嘿)
这里我把这个学习路线图给大家分析一下,避免你们也像我一样痛苦,或者减轻你们的痛苦.
#一: J2SE部分
J2SE部分下面分了三个模块,java基础,java界面编程,javaAPI
1.java基础.
这个毫无疑问是重点,也是所有自学者开始纠结的地方.特别是像我这种没有编程语言基础的人.真的是印证了万事开头难.
这期间你可能整天都是在黑乎乎的dos窗口中敲javac java等命令,你完全不知道现在学的和以后的做网站,做软件有什么联系.
没关系,别困惑.所有人都是从这里开始的.你跟着做就行了,
我是看视频自学的,所以这里也是看视频,跟着视频走就行了.这时候困惑你的一些问题可能有下面几部分
1)对一些概念不理解,对一些用法搞不懂,一些例子照着书上或者视频上的写但是出错了.
例如:不明白把属性设置成private的,然后写个get和set方法,这样有什么用.不明白封装是什么.
这些可以参考 写给java初学自学者(二) 里面的办法解决.
2)感觉自己进度好慢,一天下来就看玩了一个2小时的视频,就看了几页书之类.
这个我不知道你们会不会有,当时我是天天感觉进度好慢,这就需要调整好心态了,告诉自己一直在进步.
2.java界面编程.
这部分我没有看,因为当时确定是要走javaweb方向的.如果你也确定.你也可以不看....
3.javaAPI
这部分我当时了解了下 JAVA IO ,多线程,网络编程和反射注释都没看.
如果是javaweb方向,网络编程好像也可以不看, 但是IO,多线程,反射注释还是有必要看看的.
这在线路图上写的是重点,但是我感觉有个了解就可以.以后用到再钻研钻研.
##第一部分总结. 这部分学习,一定要多动手,把书上的,视频上的例子都敲一遍,不要感觉自己看会了就不做了,一定要做.切记:代码是敲出来的.
#二: 数据库&JDBC编程
数据库&JDBC编程下面分了三个模块,sql基础,JDBC编程,JDBC高级
对于数据库的学习,很多人刚接触可能会困惑,因为数据库的东西太多了.不知道应该学多少才好.不知道应该研究多深.
数据库是独立于java以外的,只把数据库学好就可以找工作了.这就告诉你,你不必把数据库学的多精通.那学到什么地步?
当时我学的时候,我也问朋友,数据库要学到什么样才行呢?朋友的回答是:够用.
这个词是个很纠结很抽象的词,什么叫够用?这个是说不清楚的.只能谈下我个人感觉.
够用就是指你在查找资料等情况下,可以对数据库进行一些基本操作.这些操作包括:创建用户,赋予权限,创建表.表的增删改查.多表查询.
你可以用java连接到数据库,对数据库的内容进行增删改查等.具体遇到问题再研究分析.
这部分的 JDBC编程其实就是个java连接数据库的过程.就那几行代码,先记下,再理解就行了.
JDBC高级中的连接池,存储过程,触发器有个了解,最起码要知道有这么回事.ORM思想一定要理解(如果这里理解不了,也没关系,后面用到框架就理解了).
##第二部分总结. 这部分学习.重点是通过java对数据库的增删改查,其中查询后将结果展示出来是个难点.多动手练习..切记:代码是敲出来的.
#通过上面两部分的学习.你已经可以写一个学生管理系统了. 可能在学习中你绝望颓废过无数次,没关系,写个项目出来.一切问题迎刃而解.
我当时学完这两部分以后,想做个项目练手,但是我无从下手,真的不知道应该怎么做,做什么项目.
这里给大家说下我当时做的学生管理系统.
数据是存在数据库的,所有增删改查通过JDBC连接操作.有个main方法,执行后打印出文字,就是让用户输入1,2,3,4等数字,会判断输入的数字然后执行
相应的功能,例如输入1 可以查看全部学生列表. 输入2 可以新增学生.
当动手做项目的时候,很多问题就会出现,例如以前你感觉掌握了,但是现在不会用, 或者碰到个问题不知道怎么实现,等等.
这一系列的问题客服以后.当你运行着自己做的系统的时候,那种感觉真的很爽.终于感觉学的东西有用了.
我当时做这个项目是在参考鸟哥做的基础上,用了一个多星期.最后还有很多功能不太完善,但是感觉很好.
学习时候的那种负面情绪,那种不自信,全都消失了.
切记:代码是敲出来的.做项目是提升自信心的最好办法.
#三:WEB开发基础
WEB开发基础分了三个模块,HTML语言,JS,DOM编程
这里开始接触到网页了.终于离开了那个黑黑的dos窗口.(当然可能你已经用eclipse等工具了)
1.HTML语言.
学了前面的,学到这里的感觉就是好简单.哈哈.HTML语言其实就是几个标签,当然研究深的话也是很博大精深的.但是对于现在的你来说.要藐视它.
我学这个是直接上W3C的网站上学的.http://www.w3school.com.cn/ ;
对这一部分要有个了解.要知道都有些什么属性,或者说都应该有什么属性. 你可能记不下来,但是用的时候能去找到解决方法就好.
可以自己做几个页面出来. 不必深究一些细节,例如可能有些特效你怎么弄也弄不出来.别钻这样的牛角尖.
2.JavaScript
这就像数据库一样,也是个很深很深的东西,他是一个和java没有什么联系的语言.js在以后做网页的过程中会很重要,但是这里你只需要掌握一些
基本的东西, 例如基本语法,表格提交时候的验证等等, 像怎么用js验证之类的.去百度的话会有很多现成的代码,你要有能力看懂这些代码.
因为可能有时候这些代码需要你修改了才能用.
3.DOM编程
说实话,我写到这里的时候先去百度了一下DOM编程......
学了html和js以后,DOM编程应该是水到渠成的.因为DOM编程是建立在两者基础上的(个人理解,仅供参考)
##第三部分总结. 这部分学习.基本都不是靠记的,需要的是你在用到的时候能找到就好.
#四:Java WEB开发
Java WEB开发分了三个模块.Servlet开发,JSP开发,AJAX开发.
1.servlet开发.
servlet开发我当时看视频学习,看完视频后还不找到servlet到底是怎么回事,可能是我理解能力有问题...
servlet开发下面的 xml,Servlet API,Filter,Listener 要了解,Tomcat 要会用,HTTP协议我没看...
学这个的时候,可能很多东西都迷迷糊糊的,没关系,了解下,继续往下走.
2.JSP开发
jsp开发下面的 jsp语法要掌握,标签,自定义标签,EL,JSTL,MVC设计模式要了解下.
学这个的时候,可能很多东西都迷迷糊糊的,没关系,了解下,继续往下走.
3.AJAX开发
AJAX开发很火,但是我不会.我去面试的时候就看了一下怎么验证用户名是否存在那个例子.到面试的时候考官问我,
以前做项目用ajax吗?
用.
那你们返回前台是用什么形式返回的呢?
什么?
就是你们返回前台是包装成JSON之类的吗?
我们用的Struts2 .................. 巨汗..当时我真的连JSON都没听过.
所以你一定要对ajax有所了解.最起码知道什么是JSON...
(题外话:我不知道这个线路图把AJAX放这里是否合适.AJAX也可以放到下一部分的)
##第四部分总结.这部分学习.你会相当的郁闷,因为你可能学完了以后还不知道到底自己学的是什么....
没关系.做个项目,一切问题迎刃而解.
我当时是跟着马士兵的视频做了个BBS论坛.虽然这个视频有点老了.但是看看还是可以学到很多东西,等你做了个论坛出来.
跑在自己的tomcat上,叫上你的朋友访问你的电脑.哈. 那种成就感.相当的爽....
(好像这里马士兵视频上有个用到了lomboz eclipse,这个工具应该是过时了,直接用myeclipse就可以)
切记:这时候一定要做个项目,把前面学的用一下,有些可能以前只是了解下的知识,在你做项目中用到,你就要去费点时间研究一下.
切记:代码是敲出来的.做项目是提升自信心的最好办法.
#五:轻量级JavaEE开发
这部分其实就是三大框架.SSH.
建议的学习方法就是跟着视频把原理,用法等的有个基础了解.有些东西你可能不理解.例如Spring的IOC,你可能没有感觉到这个有什么
好的地方,没关系.照着学就是了.
##第五部分总结.这部分学习,没啥经验分享的.我当时应该是捏着鼻子把视频看完的,因为厌学情绪很高.当你把这部分学完以后.java的学习基本上
是差不多了,你可以找个项目练练手,试试SSH的整合.
切记:一定要做个项目.那怕最简单的把SSH整合在一起的.
切记:代码是敲出来的.做项目是提升自信心的最好办法.
#六:项目实战
这部分就是项目实战,还包括JPA,EJB3.0.SOA,WebService,工作流等等以前你可能听过可能没听过的感念.这些东西目前我也还没掌握.嘿嘿.
你要注意.这一部分的重点是项目, 前面说的那么多名词其实就是让你开阔下眼界,别以后出去工作了,别人说这些名词你都不知道是什么东西,那就
不好了.
大家可能感觉到,我对于前面五部分的学习经验,里面基本都是用掌握,了解,看下之类的字眼形容,一定要注意,那些知识点不是让你了解下就好的.
而只是在你学习的那个阶段了解下就行.到现在,你需要的不只是了解.你需要运用,用你前面了解的东西去做项目,做完以后,你对那些知识点应该已经
超过了了解的深度.前面的很多东西我因为赶时间都没看过,像EL,JSTL等,但是最后做项目的时候用到了,我又回过头学了一下.
##第六部分总结.公司招人,都是需要工作经验的人,什么是工作经验?基本就是项目经验.所以一定要做项目.以前那些重点的东西,你当时只是了解了一下,
在你做项目的时候,要再去深入的理解一下.
这一章写完了.回顾当时学习时候的状况,基本都是 好难--做项目--不过如此--继续新知识--东西好多好难--做项目--不过如此--继续新知识--...
这样一个过程.一定切记多动手,没有信息的时候,写一段代码出来就好了.
广告:欢迎加入QQ群;261758627 交流.