欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

十年Java开发经验分享:零基础怎么学Java,这是我的个人学习经历,希望新手少走弯路!

程序员文章站 2022-07-05 10:56:15
开篇直奔主题,java 学习个人感觉分为两种途径,第一种是在学校,在培训机构等地方学习,有人指导;第二种是自学,通过视频,书籍,朋友等完成学习. 本文适合 自学,且基础薄弱或者无基础的人.先介绍下我的个人简历:高中毕业,无编程语言基础,英语水平可能不到初中水平吧.自学 6 个多月,目前已工作.jav ......

开篇直奔主题,java 学习个人感觉分为两种途径,第一种是在学校,在培训机构等地方学习,有人指导;第二种是自学,通过视频,书籍,朋友等完成学习. 本文适合 自学,且基础薄弱或者无基础的人.先介绍下我的个人简历:高中毕业,无编程语言基础,英语水平可能不到初中水平吧.自学 6 个多月,目前已工作.javaweb 开发方向的.薪资保密.

1. 学 java 需要基础吗?学 java 需要英语什么水平?当你问这些问题前,首先要给自己一个定位.你学 java 是用来干什么的?如果你只是想找个这方面的工作,进入这个个行业,那么没有基础,英语水平一般(例如 publicstatic void main 不能写了 2 天还没记住怎么写,怎么读)就可以了.很多人说,学 java 或者说计算机之类的都需要英语基础,因为这些东西都是欧美之类国家过来的,想掌握新的技术之类都要读英语文档等等.等翻译到中文的时候已经是二手的了.这话确实没错.我要说的是,如果你只是想找个工作(开发岗位),那么 用那些二手的东西已经够了. 不过还是要提醒一点,不需要太多基础,绝不代表你以后也不需要,在你学 java 的过程中,对英语水平的提升也是非常必要,不需要去专门学英语,最起码能看懂报错信息.

2. 自学 java 有出路吗? 自学 java 要多久呢? 去培训机构好还是自学好?先说自学有没有出路,我可以告诉你,自学肯定有出路,但是你自学有没有出路,我不知道.再说自学要多久,我是专门辞职在家自学,有朋友周六日帮忙,用了半年时间开始找工作.学习时间是每天学习 10 个小时,每星期学习 3 天到 4 天(很不努力,能找到工作完全是朋友帮忙). 这个也要靠自己.最后,去培训机构好还是自学好. 我感觉肯定是去培训结构好,特别是那些一个人自学,没有朋友提供帮助的人.当然前提是你要选择一个好的,专业的培训机构.但是去培训机构要收钱,所以才有这么多人自学.

3. 学 java 出来工资待遇怎么样?自学的能拿多少钱?工资首先要看你工作的城市,北上广深圳高点,成都大连其次,别的地方少点,可以上智联招聘上看看. 至于自学的能拿多少钱?这个不是个问题,因为你去找工作应该不会说自己是自学的.

4.自学应该怎么学?有什么好的自学方法?有什么好的经验传授下?很多自学者或者说初学者,都会问这类的问题,想让前辈们传授下经验,避免多走弯路.我开始自学的时候也是在 csdn 上 100 分发帖求指导,有很多人回帖,感觉看了都有用,但是还是感觉不知道如何下手,这里我把我的经验写出来,希望能帮上点忙。


写给 java 初学自学者(二)学习中碰到问题,怎么解决?

 


一般遇到问题分为 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 个月还感觉没有掌握.那是何其痛苦的一段时间,每天都在想着放弃,想着去培训机构,想着自己不适合学这个,想着自己学了一天还没理解的东西可能别人就是几分钟的事,整天压力巨大,每天睡觉前都为一天的劳无所获而不安.在这期间我有过自暴自弃,每天醒来就开始打植物大战僵尸,甚至连连看都能玩一个上午,整天在继续还是放弃中徘徊我做开发十多年的时间,如果大家对于学习java的学习方法,学习路线以及你不知道自己应该是自学还是培训的疑问,都可以随时来问我,大家可以加我的java交流学习qun:615741636。qun内有学习教程以及开发工具。

 

这里我把这个学习路线图给大家分析一下,避免你们也像我一样痛苦,或者减轻你们的痛苦。

#一: j2se 部分

j2se 部分下面分了三个模块,java 基础,java 界面编程,javaapi1.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 语言其实就是几个标签,当然研究生的话也是很博大精深的.但是对于现在的你来说.要藐视它.

对这一部分要有个了解.要知道都有些什么属性,或者说都应该有什么属性. 你可能记不下来,但是用的时候能去找到解决方法就好.可以自己做几个页面出来. 不必深究一些细节,例如可能有些特效你怎么弄也弄不出来.别钻这样的牛角尖.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 等,但是最后做项目的时候用到了,我又回过头学了一下.##第六部分总结.公司招人,都是需要工作经验的人,什么是工作经验?基本就是项目经验.所以一定要做项目.以前那些重点的东西,你当时只是了解了一下,在你做项目的时候,要再去深入的理解一下.这一章写完了.回顾当时学习时候的状况,基本都是好难--做项目--不过如此--继续新知识--东西好多好难--做项目--不过如此--继续新知识--……这样一个过程.一定切记多动手,没有信息的时候,写一段代码出来就好了。