别问专业!问就是修电脑的

1,176 阅读18分钟
  • 🤟 博主介绍: CSDN、头条、知乎等平台优质博主,全网粉丝2w+
  • 💬 如果文章对你有帮助、欢迎关注、点赞、收藏(一键三连)和订阅专栏哦

前言

  蚌住了!今天被一位初学JAVA的小伙伴询问:学习JAVA能够干什么? 一时间竟不知从何答起。学习JAVA能够做什么? 许多初学JAVA的小伙伴应该都有过这个疑问,如果搞不清楚,就会像每次跟邻居、亲戚说自己是计算机专业,他们就认为你是修电脑、空调的一样。

image-20211122215626214


初见JAVA

  回想当初,初学JAVA的时候,并不知道JAVA能够做什么,只是为了得到学分,稀里糊涂地就去学习了,相信很多初学者刚开始也是跟我一样有相同的想法,比如某乎上关于这个问题的提问关注度就非常高。

image-20211121105250348

  许多初学JAVA心里的"十万个为什么"

image-20211121110417526


学习JAVA有何作用

  为了避免像回家时邻居、亲戚知道你的专业是计算机后让你帮修电脑、修空调的尴尬局面,这个问题先举个更贴近生活的例子介绍JAVA在我们生活中发挥的一些作用。

  现代社会,我们已经离不开微信、QQ等沟通软件,但你在使用这些沟通软件时是否想过它们是如何知道:"你就是你"?

image-20211121111851886

  大家会发现,第一次登录的时候需要你先注册一个账号,后面登录时你需要输入账号和密码或者通过输入手机验证码,验证成功了就可以进入到微信、QQ中。

  为什么根据正确的账号密码就可以进入自己的界面,看到自己的聊天记录和表情包而不是别人的,JAVA在这个方面可以说起着举足轻重的作用(此处使用JAVA语言举例,除了JAVA外其他的一些语言也是可以实现的)。

image-20211121113647095

  在你注册的过程,其实后台的程序就会将你的账号和密码保存到一个仓库中(就像我们平时账号密码多了害怕忘记,会记录在笔记本上一样),以后每一次登录,它都会去这个仓库查询是否存在登录时输入的账号和密码,如果存在,那就登录成功,否则,登录失败。

image-20211121114644010

  上面涉及到一个保存账号密码以及验证账号密码程序,这个程序就可以使用JAVA语言来实现,此时又会有小伙伴问了,这两个流程挺简单的嘛,实现应该很容易吧。

  确实,流程挺简单的,但是实现需要考虑的问题可不少呢,比如密码如果直接存储在仓库中,一旦仓库被别人发现了,别人就可以用你的账号密码登陆,这个问题可不能忍受,因此存储密码的时候我们需要对密码进行加密吧。

image-20211121115819355

  微信、QQ这种软件,同时注册和登录的人数以亿计,一个仓库存储不够吧,需要拓展多个仓库,如何正确分配多个仓库存储且能够在对应仓库找到这个账号和密码都是需要这个程序考虑的问题,这样一说起来,这个程序需要考虑的东西还挺多。

  小伙伴又会问了,通过上面的例子,好像是能够简单知道JAVA可以做的一些事情了,但是如果别人问我,我好像还是不知道该怎么回答呀!没错,上面只是通过最贴近生活的例子来举例了JAVA能够实现的一些事情,下面则从更细致的方面来介绍JAVA能够做什么!

一、搭建网站(如个人博客)

  当初刚学JAVA时,在网上寻找作业答案时,看到别人各式各样布局绚丽多彩的网站,每次都在心里羡慕,什么样的大神才能够搭建出这种网站呀。学习多年后才发现,网站的搭建并非想象中那么难,使用JAVA就可以实现。

  如果你希望拥有一个自己的网站,那么学习JAVA是一个很不错的方式。我们平常上网看到的很多网站,后台实现都涉及到JAVA语言。

image-20211122210157508

二、开发应用程序

  安卓手机想必大家都知道吧,安卓系统作为安卓手机默认自带的系统,同时也是全球最大的智能手机操作系统,其上的应用程序就是使用JAVA语言开发的。鸿蒙作为华为最新推出的操作系统,其上的应用也是支持使用JAVA语言进行开发,由此可见,JAVA语言的应用范围之广。

image-20211122211941154

三、开发游戏

  在早期的时候,其实手机上许多游戏都是有使用到JAVA语言进行开发,电脑上也有Java开发的游戏,最经典的是:《我的世界》(minecraft ,简称MC),但是随着性能等多方面原因,也就逐渐退出历史舞台了,但是不能否认它曾经辉煌过(后面的课程会通过JAVA实现坦克大战的案例)

img

四、就业赚钱

  相信很多选择计算机专业的同学或多或少都是因为这个行业发展前景和薪资相比其他大部分专业更好,情况确实如此,虽然现在计算机专业已经非常卷,每年除了大学还有各种培训机构培养出来的大量学员,但是,它的薪资在各行业中确实位于前列,如果恰逢你对这个专业感兴趣,那选择这个专业是很不错的选择,只要好好学习,出来薪资肯定很有竞争力。

img

  现在想想,如果当初有去认真了解到学习JAVA的用途,自己肯定会花费更多时间、很多精力去学好它,而不是得过且过。

  于是乎,重学JAVA的想法涌上心头,希望通过个人的经历能够帮助初学JAVA或是还在迷茫的朋友。

  说明:《重学JAVA》系列文章以大学教程,JAVA编程思想和个人社会实战经验相结合,将书本理论和工作实践相结合,由浅入深地讲解JAVA知识点,十分适合初学JAVA和巩固基础的小伙伴学习。


怎样重学

  回想起自己当初初学JAVA的时候,每次遇到问题无法解决时,放弃的念头无数次涌上心头,想着要是有个能够请教的人多好呀。

  为了帮初学JAVA的小伙伴解决这个问题,《重学JAVA》系列中特意添加了《社区解疑》的模块,只要在学习的过程中遇到困难,都可在里面请教,管理员会定时给有疑问的小伙伴解答,如果有社区小伙伴积极提供帮助,还可以获得积分,领取社区奖励。

image-20211121104003827

  参考的教程:

image-20211124225144530


适用人群

  1、如果你还是学生,不知道如何学习JAVA或是在跟不上老师进度,不如拿来参考参考。

  2、如果你也是一个工作者,对未来感到迷茫,不如跟随作者重走大学生活,寻回初心。

  3、如果你非科班专业想要转到IT行业,不如也阅读阅读文章,当做入门科普。

  4、如果闲着无聊,也可以当做是饭后谈资,随意逛逛。

  简单介绍下重学系列后,我们再回头看看初学者常见的一些疑惑,作为一个过来人,表达下自己个人的看法。


初学者该怎么开始学习,学习那些知识,那种方式更加有效(看书还是看视频)

  在个人看来,初学JAVA的话,最重要是将基础打稳,因为JAVA知识体系非常庞大,而基础作为地基,如果不够稳固,那么将来上升到更深层次的东西,很容易就会出现一知半解的情况。

  就像很多速成的培训班一样,课程上教授的更多是应付面试的知识,因此导致很多通过速成班出来的人基础相对比较薄弱,入职后遇到问题后没有一个完整的解决问题的思维(这里并不是说培训机构不好,而是一些速成教程带来的问题)。

  在大学或者自学时,通过专门的教材,可以有更多自由安排的时间,跟着教程从基础开始学习,逐渐培养自己发现问题、思考问题、解决问题的能力,能力的培养并非一朝一夕,而是需要不断的实践、犯错、总结,最后取得进步。

  针对初学者,博主认为初学者主要的学习路线如下:

image-20211123215606527

  至于哪一种方式学习更有效,这个是仁者见仁智者见智的事情。看书的方式:如果你还是在学校,这个是不可避免的,而且书中的知识点描述得更加清楚,忘记时可以及时查阅。

  看视频的方式:更加简单直观,有人将知识点剖析讲解,更加容易读懂,但是听懂不等于学会,还需要自己亲自动手,所以博主建议初学者学习时是以书本为主,视频为辅,两者相结合达到1+1>2的效果。

image-20211124224348876


为什么学习时总感觉跟不上老师的进度

  很多初学者都会遇到的问题,在大学中上课时总会感觉老师讲课的进度很快,自己没搞懂这个知识老师已经开始讲解下个知识了,自信心一直被打击,有些同学甚至对这门课程起了厌恶之心。

image-20211124225720720

  作为过来人,博主以个人的经历分析产生这个问题的有哪些原因:

  首先,上大学后需要学习的专业课程相对较多,同一门专业课上课时间不再和高中一样相对集中,同时生活和各种社团活动都占用着我们的空闲时间,导致我们没有更多时间和精力用来提前预习课文知识以及课后复习学习过的知识,更重要的是没有一个学习氛围。,而学习的知识点如果不及时复习和巩固则会逐渐被忘记(就如著名的艾宾浩斯遗忘曲线-下图所示),最后会呈现出上课的时候感觉老师的讲课的进度很快,没有办法跟上的现象。

image-20211124231146111

  因此,想要在课堂上跟上老师的进度,适当的课前预习和课后复习是必须的,但是这个过程中可能又会遇到新的问题,如果没法解决,则疑问则会越来越多,打击自己学习这门课程的自信心。 这个时候如果有一个可以互相讨论和请教的环境这个问题则可以迎刃而解。

  所以,在重学系列中推出了《社区打卡解疑》的模块,大家可以每天定时到社区打卡,培养提前预习和复习的好习惯,同时,如果在预习和复习过程中遇到新的问题,大家也可以在社区中提问和请教,管理员和社区成员看到后会及时给到反馈。

  坚持打卡和积极给别人提供答疑帮助的成员还可以得到社区相应的奖励(笔记本、书籍、马克杯、日历等),同时也可以交到志同道合的朋友。

  打卡解疑地址: 重学社区

image-20211125215134631


JAVA知识体系太复杂,学了又忘该怎么办

  JAVA自1995年诞生以来,经过了20多年的发展,包含的功能越来越多,体系越来越大,想要全都掌握不太现实。但是学习!=硬背,将知识背出来不代表你真的学会了,学一个知识更多的是去了解它的出现的原因、它能够解决什么问题、以及何种场景下去使用它解决问题。

  如果你让两个不同的人回答:什么是面向对象编程? 相信也会得到两个各自通俗的解释而不是跟书上的定义一样的回答。当学习的知识体系太大时,我们可能会忘记知识某些使用的方式,但是我们知道能够使用这个知识来解决这个问题,这时候并不能说你忘记了这个知识,只是说你忘记了使用的一些细节,通过百度等浏览器可以快速找到对应的方式。

  况且现在的开发工具越来越智能和技术论坛也快速发展,你遇到的百分之95以上的问题在各种论坛上都能够找到答案,因此,你只需要知道解决问题使用什么哪个技术,在论坛上你就能快速找到这个技术的使用方式,而不必将每个技术点都背出来。

image-20211125222247967


做期末设计或者项目时如何运用课本上的知识、总感觉学习到的知识不能完成设计

  相信很多初学者已经或者将要遇到这个问题,平时课堂上老师讲的都能听得懂,但是一旦单独自己完成作业时,感觉这也不懂哪也不懂,好像没有学习过这个知识一样。

  出现这个现象的原因很简单,你只是听懂了,但是并没有学懂。古人有一句话:纸上得来终觉浅,绝知此事要躬行。有没有真正理解一个知识点,需要自己亲自动手实践才知道,因此,当你出现这个问题的时候证明你实践经验太少,那如何防止出现这个问题呢?博主有以下几个建议:

  1、看书或者看视频感觉自己学会了某个知识点,一定要找一些可以实践的案例去动手操作,或者说想象如果要这个知识点传授给别人,自己该如何解释别人才能够听懂。 在这个过程中,你可能会遇到很多问题,你需要将这些问题出现的前因后果找出来,将他们一一解决,这个时候你才是真的理解了。

  2、三人行,必有我师焉。学习时要善于与他人交流,每个人思考的角度不一样,理解到的知识点也不一样,取长补短才能够更有效的掌握知识。交流并不意味着一定要面对面,现在网络发达,完全可以通过各种论坛,交流群相互学习。

image-20211125223911267


怎么知道自己现在学习JAVA到了什么进度

  根据上面的JAVA初学者路线知道学习的步骤如下:JAVA基础 =》 JAVA Web基础 =》数据库基础 =》JAVA框架 =》网络协议 =》Linux,怎么知道自己在对应模块中的学习进度呢?

  方式很简单,首先是需要将模块中的知识学习一遍,然后每个模块都通过相应的实战项目来做验证,如果你能够合理运用模块中的知识完成相应的实战项目,证明你对模块中的知识点理解和初步使用是没有问题(本教程中每个章节和模块都会有相应的课后习题或者实战项目,用来巩固所学的知识点)。

  如果想要更进一步掌握知识,那就需要自己将对应模块的知识点梳理成自己理解的知识体系,将各个模块关联起来,然后,通过更多的实战项目去巩固这些知识。这个过程是随着你的学习经历而逐渐丰富,循序渐进的过程。

image-20211125231423723


学习JAVA过程这么枯燥,别人是如何坚持下来的

  一个人的学习真的是一场孤独修行,博主亲身经历过,也有过无数次想要放弃的念头。之所以感觉到学习枯燥,是因为未知性和没有收到反馈,每个人都希望自己的付出能够有所回报,即使有时候嘴硬说着我愿意付出而不求回报,但是如果能够收到反馈,那就更有继续坚持下去的动力。

  为了让初学者遭遇相同的问题,博主特意在《重学JAVA》系列中添加了【社区解疑】和【社区奖励】模块,博主会定期给一起学习的小伙伴交流解疑,谈谈工作中的趣事,给大家解答学习中的疑惑,同时,博主会给积极学习者定期发送福利,让大家感觉到自己学习是能够收到反馈的,更加有动力继续学习下去。

image-20211125233154434


学习JAVA到什么程度才能够找到工作

  前文提到,JAVA的知识体系异常庞大,那学习到什么程度才能够找到工作呢?博主认为,如果你学习完了上面的知识体系大纲,然后能够从0开始搭建一个前后端项目并实现相应的功能,出去找一份工作是比较轻松的。

  为什么敢这样说?这也是博主的亲身经历,大三下学期的时候,博主也是跟着网上的视频学习完后,自己从0开始搭建了一个项目并将功能全部实现,然后就孤身一人到深圳找实习岗位,经过一周的面试,在几个Offer中选择了比较满意的公司入职了。

  虽然博主当初实习岗位只面试了一周就入职了,但是也踩过不少坑,因此,希望以自身的经历能够给还在学校或者准备出来实习的小伙伴一些建议:

  1、 在大学中一定要将自己的基础巩固好(除了JAVA基础,还有数据结构和网络协议等),老师课程上教的只是最基础的知识,课堂下一定要找时间来自学(内容不仅仅包括书本上的知识、还有各种拓展的知识)。

  2、 如果学校中有专业竞赛或者软件办公室,尽量要参加,即使可能只是陪跑,但是参加这些活动能够丰富你的眼界,认识到更多的朋友,这样你才会发现自己有更多需要学习的地方。

  3、 想要进大厂,尽量从大一开始刷算法题(牛客、leetcode等网站都可以),对于应届生,因为没有很多实习经验,所以大厂更多考察的是你对基础知识的掌握程度(如数据结构、算法),以及大学是否有相应的专业证书或者奖项。

  4、 面试安排要有前后顺序,刚开始面试可以挑选一些自己觉的不太重要的公司,先试试手积累经验,后面再安排自己比较有意向的公司,实习公司能够选择大厂最好挑大厂(选择第一家公司非常重要),这样如果在实习表现好直接就可以转正,毕业后直接入职就可以,不需要跟别人一样等到毕业后再到处奔波,全部重头再来。

  5、 准备出来找工作之前,一定要提前刷面试题,等有四五个面试邀请的时候再出发到要工作的城市,不要还没有面试邀请就直接过去,因为预约面试和简历筛选需要一定的时间,提前过去只会花费更多的钱财。

在这里插入图片描述

  关于算法和面试的教程,博主之前也写过一些博文,感兴趣的也可以去看看。

  算法专栏:算法修行日记

  面试专栏:面试修行日记


工作中会重点运用到哪些的知识

  其实工作中常用到的知识点下面的JAVA知识体系已经基本包括了,更重要的是在学习过程中有意识地培养解决问题的一个思路。

image-20211123215606527


写在最后

  不知不觉,文章已经来到了五千字,由于篇幅限制,其实很多想要表达的东西都没有详细展开,因此博主将自己一些工作经历和学习经验也写成了博客的形式方便大家阅读,进入【主页】即可查看。

  希望文章能够帮助到一些初学者和想要巩固基础的小伙伴,也希望大家能够加入到重学社区,一起学习、进步,地址:重学社区

  如果觉得文章对您有帮助,请给作者点赞、收藏、关注,让博主收到反馈,有更大的动力!