如何学习Java基础
学习Java,就是为了更好地开发应用,不论是开发web应用,还是开发中间件,亦或是微服务,都是Java语言最擅长的,加上Java生态的丰富多彩,对于企业级应用的全方位支持,使用Java的开发大型应用的成本相对还是比较低的。
我第一次接触Java还是在大三的课堂上,当时有一门课程就是Java,教的都是Java基础,在Java之前我还稍微了解过html、css这类前端技术,所以自认为学习Java应该不会有太大难度。结果证明我还是想多了,刚开始老师就在介绍Java的基本数据类型,比如int的长度,double的长度,作为一个非科班程序员,当时甚至连1个字节是多少都不知道。接着我们又学习了Java的数组,数组这个概念本来看起来没什么,但是接下来又出现了二维数组,老师还结合着数组的内存分配来和我们讲解,当时就晕了,于是就这么半推半就的学完了第一堂课。大学课堂你们都懂的,大家的注意力也没有特别集中,有些关键概念错过了也就错过了。其实重点还在后面,Java的重要特性就是面向对象编程,于是常见的一些概念,比如类和对象,继承、多态、接口和抽象类都一一出现在我们的视野里,学习Java,这些概念没有搞清楚的话,是非常耽误事的,毕竟其他一切高级特性都是基于此实现的。勉强听懂了面向对象的一些语言特性之后,后续的课程里,我们又继续开始学习Java的高级特性,比如Java异常、多线程、集合类等等。我只记得到多线程那里我就完全听不懂在说啥了,后面讲了什么,也就记不得了。我想大多数人第一次接触Java也是一脸懵逼的状态,谁第一次面向对象不都会紧张嘛。
学完了Java课,我能出师了吧?
一回生,二回熟,自认为已经完全掌握了Java的我(其实就学了一点皮毛)在大四毕业的那个暑假找到了一家本地的小公司进行实习。当时我就想,我都已经是学过Java的人了,到公司实习应该不成问题吧,于是我非常自信,就去上班了。结果第一天我就傻了,领导给我安排了一个小任务,是一个新员工入职的练手项目,写一个表单,完成录入员工信息的功能,当时的Java工程师还要会写前端,这个表单的样式和js代码都要自己写。更尴尬的是,我完全看不懂这个项目的Java代码,不是说好的面向对象编程语言么,我先找到main方法,然后看一下每一步的执行逻辑就可以了吧,应该不会太复杂吧。结果,我打开工程,这玩意怎么这么大啊,结构还这么复杂,这个service包是干嘛的,这个dao包是干嘛的, 还有啊,这个user类里为什么有一大堆的get和set方法,这都不是最过分的,最过分的是,为什么还有一堆的xml配置文件,我一个都看不懂啊,什么web.xml,里面写的都是啥啊。更可气的是,还有一个叫做servlet的包,里面有各种各样的servlet,这个servlet更是我听都没听过的一个东西了。当时我的内心是崩溃的,我这大学的Java课白学了呀,怎么到公司完全用不上了,这跟说好的不一样啊,不应该是挺简单的一个东西吗,我学了一门Java课程就应该完全掌握了才对呀?
研究生阶段:推翻重来
经历了暑假实习的阵痛之后,我终于明白了,不是学完Java这门课就能干活了,而是要学完整个Java技术栈才算完事啊,至少咱们的先学会JavaWeb呀,还有相关的框架也得会啊。于是时间来到了研究生阶段,我当时就想,幸亏我还有两年多时间可以学这个Java,要不然就我现在这个水平,出去连个工作都找不到。为了不让自己在两年后依然如此尴尬,我开始重新学习Java,现在回想一下,我的自学编程之路,也就是从那个时候开始的,当时我买的前两本书就是《Java从入门到精通》和《JavaWeb从入门到精通》这么接地气的书,对Java小白来说简直没有抵抗力呀。于是我不负众望,看完了这两本书,《Java从入门到精通》倒是中规中矩,毕竟很多概念我之前都接触过了,但是我在《JavaWeb从入门到精通》里看到了很多从来没见过的概念,什么Java bean,spring、hibernate、jsp、jdbc、session和cookie,Tomcat等等,总之,这本书算是帮我开眼看世界的第一本java入门书籍了,虽然这本书在网上被骂的很惨,但是它销量好不是没有原因的,把它当成百度百科看就可以了。明白了基本概念之后,接下来该学什么呢,我陷入了思考当中。恰好某一天,有室友推荐我看视频,于是我当场就找到了学习方向,我在上面看到了一个Java学习路线图,如获至宝,开始沉迷于看视频中无法自拔。某天我终于看完了视频,于是又自信地想,这下没问题了吧,我应该已经可以做项目了吧?刚好我们有一个研究生项目实践,可以让我们参与到项目开发中,于是我当时就选了JavaWeb方向的项目,准备在里面大展身手。
实践阶段
然而,理想和现实还是有一定差距的,当时我们要做一个类似云笔记的应用,我负责一部分的后端开发,当时我们从网上下了一个demo,准备基于它进行开发,于是我激动地用一个叫做eclipse(实际上我也没用过几次)的ide打开了这个项目。
诶,这个画风好像和之前的struct1也不太一样啊,后来才知道这个就是spring框架,让我好好瞅瞅这个项目到底长啥样,这个controller包是什么,service包和dao包好像似曾相识,但是这个pom.xml又是干嘛的,为什么看起来里面好像有很多jar包,没错,我还是连工程都看不懂,再一次陷入了自我怀疑中。
没办法,只好硬着头皮继续自学呗,但是这段时间的自学并没有太大成效,眼看者deadline逐渐临近,我们的小组长看不下去了,他发现我们两个后端确实都不咋会,前端搞了半天也只切了个图,于是开始说起了自己的想法,我当时第一次听说过前后端交互,以及用json作为数据传输的格式这种说法,后来才知道这都是开发的基本知识,
结果这个项目我们寻求开源支持,还是顺利完成了,但是我确实什么忙都没有帮上,于是我又开始怀疑人生了,Java这个东西,到底该怎么学呢,我书也看了,视频也看了,该学的感觉也都学了,怎么还是啥都不会呢?
如果重新开始,我会这样学Java
不知道看到上面的内容,各位Java小白会不会有一些共鸣,明明一开始觉得Java挺简单的,学着学着发现并不简单。学完Java基础貌似就会做项目了?但是一接触项目代码,又发现自己就跟没学过一样。于是又接触了一些JavaWeb的书籍和知识,想要现学现卖,结果一看真正项目里用到的又是另一套技术,自己压根见都没见过。
有些事,你必须要经历过,才能明白,有些坑,你不用自己去踩,因为我已经踩过了
如果让我重新学习Java,我可能会这样入手吧。
1、想通过Java学习视频入手,把基础搞懂。
2、接着看一些JavaWeb相关的视频,把常见的JavaWeb技术栈搞懂,最好要看新一点的视频,防止过时了不好使。
3、看看Java基础和JavaWeb的经典书籍,加深对一些概念和原理性东西的理解,防止在项目实践中搞不清楚。
4、找个项目课,有视频有源码的那种,跟着视频学习,还能跟着敲敲代码,实现一些功能,更能够加深印象和理解。
当然,这篇文章只谈到了入门Java,其实Java技术栈远不止这些东西,正如我的学习历程这样,你学的越多,就会发现你不懂的越多,后面我还会继续带来我在不同阶段学习Java的一些分享。
免责声明:内容来源于公开网络,若涉及侵权联系尽快删除!
【免责声明】本文部分系转载,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责,如涉及作品内容、版权和其它问题,请在30日内与我们联系,我们会予以重改或删除相关文章,以保证您的权益!
Java开发高端课程免费试学
大咖讲师+项目实战全面提升你的职场竞争力
- 海量实战教程
- 1V1答疑解惑
- 行业动态分析
- 大神学习路径图
相关推荐
更多2024-04-08
2024-04-02
达内就业喜报
更多>Java开班时间
-
北京 丨 11月27日
火速抢座 -
上海 丨 11月27日
火速抢座 -
广州 丨 11月27日
火速抢座 -
兰州 丨 11月27日
火速抢座 -
杭州 丨 11月27日
火速抢座 -
南京 丨 11月27日
火速抢座 -
沈阳 丨 11月27日
火速抢座 -
大连 丨 11月27日
火速抢座 -
长春 丨 11月27日
火速抢座 -
哈尔滨 丨 11月27日
火速抢座 -
济南 丨 11月27日
火速抢座 -
青岛 丨 11月27日
火速抢座 -
烟台 丨 11月27日
火速抢座 -
西安 丨 11月27日
火速抢座 -
天津 丨 11月27日
火速抢座 -
石家庄 丨 11月27日
火速抢座 -
保定 丨 11月27日
火速抢座 -
郑州 丨 11月27日
火速抢座 -
合肥 丨 11月27日
火速抢座 -
太原 丨 11月27日
火速抢座 -
苏州 丨 11月27日
火速抢座 -
武汉 丨 11月27日
火速抢座 -
成都 丨 11月27日
火速抢座 -
重庆 丨 11月27日
火速抢座 -
厦门 丨 11月27日
火速抢座 -
福州 丨 11月27日
火速抢座 -
珠海 丨 11月27日
火速抢座 -
南宁 丨 11月27日
火速抢座 -
东莞 丨 11月27日
火速抢座 -
贵阳 丨 11月27日
火速抢座 -
昆明 丨 11月27日
火速抢座 -
洛阳 丨 11月27日
火速抢座 -
临沂 丨 11月27日
火速抢座 -
潍坊 丨 11月27日
火速抢座 -
运城 丨 11月27日
火速抢座 -
呼和浩特丨11月27日
火速抢座 -
长沙 丨 11月27日
火速抢座 -
南昌 丨 11月27日
火速抢座 -
宁波 丨 11月27日
火速抢座 -
深圳 丨 11月27日
火速抢座 -
大庆 丨 11月27日
火速抢座