当前位置 博文首页 > ZZZhonngger的博客:非计算机科班如何系统学习Java后端开发技术

    ZZZhonngger的博客:非计算机科班如何系统学习Java后端开发技术

    作者:[db:作者] 时间:2021-07-28 11:55

    ?微信公众号:Zhongger
    我是Zhongger,一个在互联网行业摸鱼写代码的打工人!
    关注我,了解更多你不知道的【Java后端】打工技巧、职场经验、生活感悟等
    大三、大四的同学还可以找我帮忙【虎牙】内推噢。

    一、前言

    前不久,也就是国庆期间,我受信科党支部副书记的邀请(因为我是党支部的一名预备党员),给20级的师弟师妹们分享一些就业经验。因为新生入学了,我们党支部要给新生开展入党动员,其中有个环节是关于大学生活的经验分享环节,在现任支部成员里面,我在技术和就业方面还行,所以被邀请到给信科的师弟师妹分享一下这方面的经验。我当时觉得这是一个很好的事情,可以提前让新生们了解到本专业的一些就业方向,有助于他们将来确定就业方向、打磨技术和提高就业竞争力。于是我花了一些时间准备PPT,打算给新生们开展一个就业启蒙的分享会,之所以说是就业启蒙,是因为:

    • 新生刚入学,专业知识与专业认知尚未形成,讲解过多就业方向的细节与途径会让他们难以接受。
    • 我本人的就业经验尚少,只是希望以一个过来人的身份分享我的经历,能够让新生有所启发就够了。

    那天晚上我花了大约20分钟给新生们做完了分享,获得的反响还是不错的,所以希望把那天分享的内容摘取一些下来形成推文。在答疑解惑【主要是:非计算机科班如何系统学习Java后端开发技术栈】的同时,也能够给大一大二大三的同学一定的启发~

    二、认清专业本质,发掘自身兴趣

    首先,我的本科专业是信息与计算科学专业,属于数学系的专业,所以我大一大二的课程大部分都是数学类的课程,像数学分析、高等代数、概率论与数理统计、数学建模、数值分析等,而计算机类的课程较少,只有C、Java和数据结构。

    信息与计算科学专业,原名”计算数学”,1987年更名为“计算数学及其应用软件”,1998年教育部将其更名为“信息与计算科学”,是以信息领域为背景,数学与信息,计算机管理相结合的数学类专业。该专业培养的学生具有良好的数学基础,能熟练地使用计算机,初步具备在信息与计算机科学领域的某个方向上从事科学研究,解决实际问题,设计开发有关计算机软件的能力。

    当时大一、大二期间还是挺迷茫的,有时候思考自己以后的路该怎么走的时候总是会陷入纠结。我本人也曾经有下面的纠结:
    在这里插入图片描述
    很多同学都会有这样的纠结,在大一大二期间,会思考着是将来从事本专业的工作,还是学习其他专业的知识,从事其他行业?有时候遇到自己本专业知识啃不下去了,又可能想要放弃;当遇到自己感兴趣的知识点,又对自己的专业重燃了信心…自学其他专业的知识时,例如很多人自学Java期间,写的第一个程序System.out.println("Hello World!") 觉得挺简单而且很有成就感,就立志要成为一名Java工程师,但学到后面多线程、高并发等知识时又苦于没有专业的老师去带领而放弃了学习…又或者说将来不打算从事技术类岗位,想往管理类职业去发展,就可能参加了很多社团、组织,立志要从干事升到部长再到主席团,用这段经历为今后的面试加分,但有时候遇到在学生组织里面干的事情很枯燥、像打杂,经常开一些很形式的会议时,可能就会不打算留任了…也有同学啥也没干,就按时完成课程,度过了大一大二。

    所以说了这么多,认清专业本质,发掘自身兴趣是很重要的,我建议是大一大二的同学要先对自己专业的培养方案、知识体系、就业方向、升学方向有一个体系化的认知,再结合自己的兴趣爱好,是真的喜欢对着屏幕写代码呢还是喜欢进入到一个团队与他人沟通交流?如果只是看到互联网码农的高薪,而对写代码没啥兴趣,那我就建议不要入行了…即使是入行了职业的发展也是会越来越窄。

    三、打好专业基础,积极参加项目实践

    不论将来是否从事本专业的工作,都应该学好专业知识,打牢专业基础。 这里我以数学类专业为例,本专业本科的就业方向主要是:数学老师、数据分析师;跨专业的技术类就业方向主要是:计算机软件类的研发岗。

    那么如果打算当数学老师、数据分析师的同学,我就比较建议去考教师资格证和做家教、参加数学建模竞赛去培养数据分析思维;如果将来打算从事计算机软件类的研发岗,就推荐去找一些老师做项目,参加学院里的工作室等,积累项目经验。

    对于其他专业也是一样的,如果将来想从事本专业的工作,那么就多参加一些本专业的学科竞赛以及实习实践等,如果想跨专业从事其他行业,那么就多找相关的项目去做,积累项目经验。

    好了好了,讲了这么多,终于要到正题了。

    四、非计算机科班如何系统学习Java后端开发技术栈

    1、学习路线

    找一个适合自己的学习路线,看自己要达到什么样的水平。如果只想进个小厂,那学完Spring Boot、Spring、SpringMVC、Mybatis那一套,写个后台管理系统基本上是可以拿到小厂offer,我去年一月份就去面试小厂实习了,那时候我真是菜得一批,拿着个学生管理系统的项目就去面试了,被面试官问到HashMap的底层数据结构是啥我都不知道,很多现在看来的八股文只要背出来就能回答出来的东西我当时都不知道,但最后还是拿了offer,当然薪资也是低得可怜,1.5k,天河区,你敢信?我显然是没有去的。然后我那时候就放弃继续去面试了,一放寒假就在家里闭关学习,系统地去学,最终参加了实习春招才进了虎牙。所以,如果想进比较大的厂,学的东西还是要深刻一点。

    我当时是找了微信博主【三太子敖丙】的学习路线去学习的:

    他的Github项目里面有更详细的内容,大家可以进去看看:
    https://github.com/AobingJava/JavaFamily

    当然对于应届毕业生而言,时间和精力比较有限,要在比较短的时间里系统地学完这么多知识点是不够的,所以我挑了下面几个比较重要的来谈谈。

    • 计算机基础。无论是考研还是大厂面试,计算机基础都是会被考察到的,这一点大家一定要引起重视。重点:数据结构与算法、计算机网络、操作系统。
    • Java基础知识。必须熟练掌握,Java后端开发人员不能不懂,语法基础、集合、多线程、JVM、设计模式。
    • 数据库。理解数据库原理,学习MySQL,另外,MySQL的InnoDB存储引擎、索引等知识也是面试中经常被问到的点。
    • 基本开发框架Spring全家桶,Spring Boot、Spring、SpringMVC、MyBatis等,不仅仅会使用它们开发Web后台,而且要知道框架实现的底层原理。
    • 缓存。现在都推荐学习Redis了,同样,不只是要会用,还要知道其底层原理
    • 消息队列。(加分项)推荐学习Kafka,同样,不只是要会用,还要知道其底层原理
    • 分布式、微服务。(加分项)现在比较流行的框架是Spring Cloud、Spring Cloud Alibaba、Dubbo
    • 常用工具。 Linux、IDEA、Maven、Git等,以及容器技术Docker。

    其实对于校招,以上的知识是完全够用了,至少对于今年来说。但以后就不知道了,毕竟后端人上人,以后肯定是越来越卷,所以程序员都是要时刻保持学习的状态才不至于被淘汰啊,我写完这篇马上就去学习!

    2、学习途径

    (1) B站、慕课网等视频学习网站。当然我还是比较推荐使用B站学习的。各种你想学的课程都可以搜到,而且还是免费的,视频的质量也不错。我这个半路出家的非科班程序员,就是学了B站上的【尚硅谷】系列Java课程,才成为了一个在互联网公司摸鱼写代码的打工人。

    (2)书籍。看视频学东西快是快,但讲的东西不够系统,如果想更为系统学习的同学可以去看一下对应的知识的书籍,看完后肯定会有不一样的收获。

    (3)大佬的微信公众号、博客。比如:三太子敖丙、Java3y、JavaGuide、帅地学编程,这几个博主都主要是写Java出身的,文章读起来既不缺乏技术深度,又能感觉到字里行间中透露出的逗比气质

    (4)GitHub、码云等平台。里面有很多优秀的开源项目,自己如果不知道做什么项目的话,可以去里面寻找,把开源的代码pull下来,自己试着去搭一搭,积累自己的项目经验,成为以后面试的谈资。

    (5)LeetCode、牛客网等刷题平台。每一个互联网人必备的刷题网站,无论是各大互联网公司的笔试题还是算法题,在里面都能刷到。我一般是算法题在LeetCode刷,计算机基础知识类的题目在牛客网刷。

    (6)学会总结,别人的东西理解了就是自己的,总结成博客、推送,可以用作日后复习,写在简历上也是个加分项。我大概是去年七八月份开始写博客的,这是我CSDN的数据:
    在这里插入图片描述
    虽然比不上众多优秀博主,但看到自己写的总结被推荐就很有成就感。

    https://mp.weixin.qq.com/s/hq5GbYBe98YsBDNA3u2s5Q
    在这里插入图片描述
    坚持输出,指不定哪天就成网红了是吧?

    五、最后

    每个人的学习方式或许不同,这篇文章也只是我个人自学Java后端开发技术栈的一些心得体会,分享出来与各位大佬多多交流。如果大一大二大三或者其他已经出来工作但是想转行学Java觉得这篇文章对你们的学习有所启发,点个【在看】,然后抓紧时间行动起来,开始你们的Java学习之路吧!

    我是Zhongger,一个在互联网行业摸鱼写代码的打工人,卑微求个【关注】和【在看】,你们的支持是我创作的最大动力,我们下期见~

    在这里插入图片描述

    cs