毕业快乐,计算机系学生做了啥?_java

毕业了,2016届的我毕业了!相比往年,今年的毕业季多少有点惨淡。就如我之前说的很有可能大四上学期的聚餐可能是我们这批人最后一次,是的,由于疫情和种种原因的影响,我们五湖四海、各奔东西;到最后,回来拿毕业证的只有寥寥数人!既是意料之中,也是意料之外,身为班长的我,确实有点期许,也是有点失望,以及少许的自责;没能组织好大家,四年来没有一次能全部人在一起合个影,挺可惜的!我特别珍惜这份友情,入了社会就会显得更加难能可贵,也祝大家毕业快乐、事业顺利!!

初入大学

  也没有像电视里一样难么夸张,我既没有离开高中的不舍(可能因为我高中很好的朋友很少),也没有对大学的那种特别憧憬的感觉,但是快到学校有点小激动是真的,缴纳学费,之后就是按部就班,进宿舍,然后去自己教学楼交一些其他的费用;这里有个很巧的地方,我就是在教学楼碰到了我的室友,当时还不知道,就在那聊天,然后到填写资料的时候,发现我们竟然是一个宿舍的,手机还又是一样的,真巧!

  之后就是开个班会,这里得说一下,其实我们是经常见我们班导的,不像其他同学说的一样,一年见不到两三次。班会期间我们开始选中队长迎接接下来的军训,而我,是在没人自荐的时候选择站了出来,这也是受中学老师的熏陶,说到了大学要自己主动,要不然没人会来管你,什么都得靠自己。所以我也就成了中队长,也是为后面当班长做了个铺垫!

  军训真的是挺累的,而且热,经常38度,但是军训确实有意思,大家在一起玩的很开心,教官是我们上一届的学长(刚开始我还以为是已经工作了的),军训很多电视上都有过美好的爱情故事出现,是的,我们中队也出现了,这让本来就不富裕的计算机系的女生变得更少了,中队长当下来也是咸鱼一条,不过最后还挺幸运的,拿到了全校的优秀学员证书!很快军训也结束了,小小修整之后,正式开始大学生活!

毕业快乐,计算机系学生做了啥?_sql_02

大学四年的学习之路

  其实大学里(不讲人物,太多了,就讲讲学习方面的),很多学生是不怎么学习的,大部分时间都是用来玩的,我也是,大一我也是峡谷中的小钻石,当时由于电脑买的不好(被电脑城坑了),所以我有很多时间都是在网吧上分的,不能叫网吧,应该是我们学校的电子阅览室,然后就是学校的前街后街有几个网吧的会员,也就是正常学生三部曲(吃饭睡觉、手机玩到死/游戏打到过年、上课下课),也就这样,我整个大一其实也就是这样度过的,可能是因为上课也比较认真,然后喜欢跟老师瞎扯,考试前会跟室友去图书馆恶补几天,这也导致我的成绩也是一直靠前;

  混完大一,也要开始混大二的,大一的话,影响深一点点的可能就只有高等数学、网页设计这两门课了。也算是学的还行的课,哦对,还有c,但是只是入门,现在也忘的七七八八了。大二我的专业课好像多了很多,但是依旧没有影响我一颗想要玩得心,很多专业课都没认真的学,有点可惜,比如计算机网络原理、操作系统、c语言实践,也都是完成最后的课题,拿了个优而已,没有去深入学习,挺后悔的!我记得好像是下学期,是我第一次接触Java,但也只是了解,不过有点好处是,我开始会想着去学习,我问了朋友怎么学编程,然后给我发了个Java的学习视频,然后就在我的收藏夹里一直闲着,当然也会零散的看一点,没什么效果,大二也就这么学习完了,但是还是不影响成绩前几的课程完成情况,大二那年也是我第一年获得了国家励志奖学金,还是挺欣慰的!

  大三也就是我正真想到要好好学习的时候了,因为毕业临近,身边也有很多学长出去实习了,整个信工就我们大三成了老大哥了,收藏夹里的Java视频终于不用吃灰了,可以见见阳光了,我学第一遍Java的时候根本没弄懂,然后就第二遍!应该先说下大三的课程,再来讲Java学习史!大三有很多课程很有意思,ps(这个不知道,好像是大三的)、数据库、jsp、各种实践、计算机组成原理、软件工程,这些课程里,我是万万没想到,ps是我学的最好的,最感兴趣的:

毕业快乐,计算机系学生做了啥?_java_03

然后还有之后的数据库,老师是一个很强的老师,也让我收获很多,这也是刚好跟学的jsp相关,这让我知道一个网站是怎么建设的,有了这么一个概念,但是少了一个环节,那就是javascript;刚开始还好,jsp只需要写点样式就好了,到后面学习了springboot我就需要知道前后端分离的技术了!先不说这些,继续我的课程,之后的软件工程和计算机组成原理我是没怎么用心听得,很多心思都花在自学上了,大三也就这么过去了,依旧拿到国家励志奖学金。

  大四其实不同多讲,就是学习了两个月,然后实训考试一个月,之后就是实习了,然后因为今年的特殊原因,最后毕业大家也没能聚在一起,很可惜,这是四年来大学的大致学习情况!有个很好玩的事情就是,我之前还是挺喜欢去图书馆的,看书、借书之类的,但是由于我丢了一本书,然后赔了三倍的价格,我就在也没去借过书了,不过那之后我都是直接在网上学习的,看视频了!

我的技术学习线路

先循循渐进讲讲我的技术学习路,之后再大概列出来,最开始接触关于专业相关的可能是HTML吧,学的很认真,当时的作品很简陋,看了下邮箱,作品已经过期了也就不展示了,毕竟还是大一的四年了快,然后就是之后的c语言,学的不怎么好;之后就是操作系统,也没怎么认真学;然后就是数据结构,也只知道堆栈;然后就是Java,刚开始也只会swing和awt。给我的感觉是到了大三才算是系统的来学习专业方面的知识了。

Jsp+数据库才算是打开了我学习的大门,才让我体验到了编程的乐趣,那种发自内心的热爱编程,当时还是使用纯jdbc去代码里写sql的那种方式做了一个属于自己的网站,只有登录和简单的增删改查,但那很快乐。虽然快乐,但是技术都是很老的,数据库使用的还是sqlserver 2012,这也让我不甘于停止,我需要学习新的知识,新的技术;

写完这个项目之后,我又重新学习了一遍Java,这次比较系统,是大三那年过年在家学习的,用了一个多月,认真的学习了一遍;过完年,大三的下学期,我开始学习前端三件套(html、css、JavaScript),前面当做复习,学的也快,JavaScript学习用了很久,大概花了一个星期,基本用法会了(后面还学习了),于此同步的是,后端我是直接学习SpringBoot的,我对mvc流程都不是很清楚,servlet也不是很了解,甚至此时我自己配置tomcat都不怎么会,我就在这样学着,我记得是大概五月份的时候,快要期末,然后就停了一个多月,到了六月底才又开始学习,不过学了很久SpringBootJavaScript但是我不知道我应该怎么将他们联系起来,所以之后我就问我的朋友,也是经常带我学习的朋友,之后就有了我第一个前后端分离的项目(但是页面还是写在SpringBoot下的static里面)仓库管理系统,大概到了七月中旬才完成了!写完之后,我发现自己对基本的sql、orm这些都不是很熟,因为之前用的都是jpa,所以我反过头来准备学习ssm,也是这个夏天七、八月让我学习了很多东西,我当时的学习状态也很好,几乎每天都是早上8点起来,然后学习到晚上11、12左右,如果碰到很好玩的,我会到一两点。就这种状态,这个暑假差不多学了:



  1. SSM
  2. JavaScript高级部分
  3. linux的基本操作
  4. mysql常用操作
  5. Vue的学习


暑假就简单把这些学习了一下,这也是我收获很大的一部分,让我知道整个前后端分离的大概流程,整个暑假都在学习,之前两个暑假都在上班,现在觉得很浪费时间,让我在选择的话,自己暑假节约一点,拿点奖学金还是可以做到暑假不去做暑假工的,当然家里很有钱,然后自己用起来也不会有愧疚感也是可以的,完完全全把重心放在技术上(只有当你学习一个东西,有了成效或者很明显的结果的时候,才会勾起对他的热爱,当然这个过程是持久战)。

不能说我学的多好,但是我自己对技术还是很热爱的,虽然我是比较普通的那一批大学生,技术也是一般般的,但是热爱是我之后一直追求和渴望新的技术或者往深层次学习的精神支持。

到了大四,刚开始还有两个月的上课时间,这是我比较珍惜的时间,其实到了大三下学期我就很珍惜每一节课了,都没逃课了,这两个月就是一直在总结复习一下之前东西,然后在之后一个月的实训的时候,当时是安卓和linux吧,一个是我没有往过那边发展,可能也是实训的东西太简单,基础的安卓我还是会写的,毕竟是基于xml和java的,而xml在学校学的还行,所以我大部分时间都在写一个手机销售系统;linux也是一样,也是讲一些基本的命令,都是我会的。

所以要说一下这期间我学的系统,是一个基于springboot + mybatis + vue + iview的crm管理系统,写的很艰难,但是还是完成了;这个时候呢,我不会上线部署了,我又去请教别人和看一些博客,才发现基于springboot的jar上线非常简单:

nohup java -jar xxx.jar &

这样就可以完成上线,但是我的实操项目是放在static下的静态页面,所以并不算完全的实现了前后端分离,而且我这个项目是基于Vue的,所以我没法上线,但是要开始准备实习了,我就没有时间去弄这些了;

  在我正在找实习的时候,我的一位学长叫我去他公司,也是朋友介绍的,然后做了点简单的面试,然后就进去了,这也是我第二次很大的成长,有了企业开发的一些认识,刚开始比较闲,在这我第一个实战项目来之前我学习了:



  1. docker
  2. redis
  3. nginx
  4. springboot集成各种第三方框架
  5. spring data jpa
  6. spring data rest(这个应该很少人使用,适合后端人少的情况)
  7. java8
  8. mybatis-plus
  9. spring security、shiro(但是这个几乎没什么用过)
  10. 宝塔工具的使用
  11. 版本控制的使用


这是我在公司一个多月收获的知识点,在后面,大概12月底,要开始做公司的项目,具体的就不说了,说学到了什么:



  • 首先是基本框架,表结构的设计(这个是一直改)
  • 加入安全框架(上面那个只是学习,但是没有真正去用)
  • 搭建自己的文件服务器,这个是由于我们学习成本限制,所以用不起OSS,就需要自己搭建文件服务器
  • 短信服务
  • 还有一些定时任务之类的、shell脚本之类的


这个实战让我收获最大的是全局架构,就是一个项目需要怎么去考虑,怎么提高他的扩展性、代码的复用性,还有就是遵循开闭原则等设计原则。

然后就是过年放假了,我是年28才回家的,那个时候是疫情已经在爆发了,我口罩都没有多少,我是前一天买的,21号买的才6块钱十个,我买了两包,然后到22回家再去问,很多店都没有了,然后有一家有,但是要50块才20个,我也不知道说什么,然后没买。过年在家里也出不去,自己也不太想打麻将那些,就闲的无聊,学了下面这些(都是因为好玩才学的):



  • python基础
  • 小程序开发
  • SpringCloud eureka那个系列
  • spring security的执行原理看了下
  • zookeeper了解了下
  • rabbitMq


好像就这么点,也很多时间都在玩,哦对,这期间把自己的毕业设计项目写完了,把论文的初稿写完了。

然后我是三月多一点就来学校这边了,我在外面住,学校是不让进的,公司那个项目需要准备交付,要测试部署,所以就来了,后续就是改改bug,然后开始加入另外一个物联网项目,当然只是写简单的rest投影,然后期间把Spring Cloud Alibaba那些懂学完了,然后自己打了个集群玩玩,这个需要感谢一下阿里云,免费大学生计划,可以领取免费的服务器,然后我就叫同学们也去领了,才能让我学习这些东西,也多亏我电脑挺好的,有32G的内存,能让我开很多虚拟机,也因为用宝塔之后,管理这些服务器变得轻松了很多,可以看下我的服务器:

毕业快乐,计算机系学生做了啥?_java_04

需要管理6台服务器和一个文件服务器,当然还有很多集群的UI,如hystrix、mq、nacos、sentinel等,这些因为太多了 ,所以就自己输入ip就行;

然后就开始学一点多线程、JVM之类的,顺便把Kibana和ElasticSearch简单的学了下;之后我就没事干了,也没去公司了,然后觉得无聊,就觉得可以用所学的知识自己去做一个实战项目,给后面需要学习的学弟学妹们参考,于是就拉上我的两个同学和一个同事(本来是写Angular的,但是很忙,就帮忙解决前端的一些难点)开始了开源项目的书写,是模仿csdn的。主要是现在的开源微服务项目实在是太少了,然后有也大部分都是讲组件使用的,所以我就想做一个可以使用那些微服务组件又有许多业务逻辑的比如:mybatis各种级联操作,柱状图,饼图等的后端业务逻辑、java8代替SQL的使用方式(很多)等等很多可以用在实际生产中的业务逻辑可以参考;组件方面、比如还有nacos集群搭建,mysql、redis的数据同步等;会贴上我的开源地址;

这些就是我的学习技术的路线,然后分享一下技术栈,也是一个计算机系大学生需要掌握的部分的基本知识;

技术栈分享

语言类



后端框架类



分布式



前端框架UI之类



版本控制和包管理



中间件缓存等



操作系统


linux:​​韩顺平​


容器技术


docker:​​docker学习视频​


数据库



  • (mysql、oracle、sqlserver最好都是了解,这里只说mysql):​​mysql​
  • mysql重要的几个部分:


  1. 基本的SQL操作
  2. 存储过程了解一下即可
  3. 分析sql的步骤
  4. 索引的使用以及失效的情况
  5. 一些基本的sql优化


这里可以看下我之前的博客:

毕业快乐,计算机系学生做了啥?_sql_05

其他



一些工具的推荐



  • postman
  • 阿里巴巴代码约束
  • 宝塔面板


新增学习线路



总结

上面那些学个七七八八的完成一个全套的web网站是没有问题的,学习东西虽然简单,但是需要将这些知识串到一起,灵活运用是很难的,而且只有一次次bug的出现及修改,才能提高自己,才能写出一个好的代码,一般大学生需要掌握这些东西,基本上算是编程起步了,入门了,而我庆幸我也学的七七八八,大学前两年可能有点荒废,后面因为各种原因来我再次选择了编程,当然后续还有很多东西需要学习,是学无止境的,我也会继续加油!