持续创作,加速成长!这是我参与「掘金日新计划 · 10 月更文挑战」的第14天,点击查看活动详情
今天是10月24日,1024节,突然想总结一下自己这普通而又平凡的大学生活,回顾一下自己大学四年作为双非普通高校计算机类专业学生做了哪些和编程相关的那些事儿。
编程之路前夕
2018年高考成绩出来,开始了纠结的选学校选专业过程,高考成绩586在当年河北的算是只能上普通一本的分数,再加上自己是农村走出来的,家里的第一位能上大学的,根本不知道自己喜欢什么,该选什么学校、什么专业,这算是大学的第一次迷茫。后来听亲戚家的一个大学毕业的二哥的建议,既然没有什么特别的科研志向,那便无脑选择计算机类专业。学习嘛就靠自己选了,当时的分数也就能选河北省内排名前几学校,第一志愿是燕山大学,可惜差两分,燕大的录取分数线586,最终结果就是被第二志愿河北大学的软件工程专业录取。
正式踏入编程之路
九月开学,我怀揣着好奇、懵懂和憧憬来到学校,不知道自己将会面临什么,也不知道未来会怎样,对于自己的专业也没有什么概念,等到10月份我才有一台笔记本电脑。大一一般是用不上电脑的,但是我参加了一个编程技术社团,也正是这个社团让我正式的踏入编程之路。进入社团,我们第一个任务是使用html+css模仿百度页面实现一个百度页面。
当时没有截图,现在有些图片找不到了,就是现在这个样子了。一开始做的时候啥都不会,还觉得这个可难了,现在看来就是小儿科。做完百度页面,社团java组开始培训java基础,首先就是配环境,现在还记得大概的流程:首先下载jdk安装包,然后解压到一个目录,接着进入配置系统环境变量,最后验证是否安装成功,在命令行输入java和javac。
第一次培训,配环境就配了大半时间吧。
后来整个大一就是上专业课和社团里平凡普通的学习java基础。
逐渐入门
步入大二,有了java基础,我也成为了社团java组的组长,负责给大一新加入社团的学弟学妹培训java,从小到大第一次给别人上课,而且还是一个上午,对我来说是一个很大的挑战吧。后来到大三还成为了社团主席。
另一方面,大二要开始参加各种比赛了,第一个比较重要的就是大创了,这个项目时间长、耗费的精力也多,我们要自学卷积神经网络,安装anaconda,然后在anaconda里安装tensorflow运行环境。为了入门神经网络,我们从minst手写数字识别开始做,完成后开始挑战更有难度的CIFAR-10数据集识别,最后搭建网络识别ImageNet数据集。
做完深度学习部分后,我们还需要做基于大数据的图片识别,这个部分我们又需要自学Hadoop,在卷积神经网络提取大量特征数据后使用Hadoop实现快速的图像识别。后期这个项目真的很难,我们在搭建神经网络识别ImageNet数据集时始终难以达到较高的准确率,尝试了调参、换模型等方法,而且还遇到了电脑GPU难以满足模型训练要求、每次训练需要几个小时才能看到结果。所幸方法总比困难多,我们向导员求助,获得了学校云服务器的使用权限,在网络模型方面也取得进展,使用ResNet50进行训练,最后准确率达到95%以上。项目最后只拿到了省级证书,稍微感觉有点遗憾吧。
我参加的第二个项目是参加中国大学生计算机设计大赛的项目,这个项目涉及到文本情感识别的实现,具体可以看我之前的文章文本情感分类。这个项目也遇到了很多问题,有了上一个大创项目的基础,在实现深度学习网络稍微简单了一点,但是也需要花很多时间学习,怎么把文本转化为神经网络可以处理的数据、文本词向量是什么、Embedding层等等。项目最后获得了国家三等奖,我获得最高的一个奖项,努力没有白费。
有成功的就有失败的。大学生数学竞赛、互联网+,这些比赛,都以失败告终。我没有那么聪明,智能水平只能算中等水平吧,很多事情必须全身心准备才能做好,偷懒一会,结果就不那么好了,这就导致一段时间内只能集中精力做成一件事。
入门javaWeb开发
大三,我开始自学javaWeb技术,从servlet开始学习,看servlet书籍,最后在数据库课程作业时,使用servlet开发了一个社团管理系统,当时边看书边做,参照书中案例实现自己的需求。最后效果图如下。
GitHub地址:github.com/jiahong1314…
第二个项目是在线商城项目,这时候在有了servlet开发基础上,开始学习Spring+SpringMVC+Mybatis技术(简称SSM)。
GitHub地址:github.com/jiahong1314…
第三个项目是我的毕业设计,每年技术都在更新换代,刚学会了SSM框架开发,又有了SpringBoot、SpringCloud框架。这个项目采用了 SpringBoot + MybatisPlus + Vue作为基础框架,使用SpringCloud的微服务架构有效的拆分应用,多个服务模块独立运行,占用独立进程,实现敏捷开发和部署。同时为了加快首页加载速度,引入redis缓存技术,将首页轮播图、讲师和课程等频繁访问的热点数据存到redis缓存中,避免多次访问数据库造成的IO开销。除此之外,笔者在系统设计中通过引入LSTM网络模型来实现对课程评价文本的情感分析,可视化展示课程受欢迎情况,有助于学生选择合适课程进行学习。
实战面试
考完研,我开始投简历面试,这个时候感觉还没那么难,我面试了六家公司,有五家给了offer,但都不是大厂,最高的是一家央企给了年薪22w。
大四下,考研上岸、毕业设计完成,我开始想自己的水平是否能达到工作要求,我加入了春招,制作自己的简历。 但是等到大四下,参加春招的时候,就是地狱模式了,投了好多家,因为我已经考研上岸,我投的都是暑期实习岗,投了很多家,做了360、字节、百度、便利蜂、高途的笔试题,只有高途通知我参加后续的面试,最后只拿到两个offer,大厂一个没有,后来看到牛客上很多应届毕业生都在哭惨,好像今年春招很难,能拿到offer就烧高香了,网络上互联网寒潮舆论开始盛行,心里算是有了些许的安慰,至少自己没有那么差。
结尾
六月份,毕业生开始离校,大学四年就这么结束了,我就是应届毕业生中一枚小雪花,没有波澜壮阔,也没有完美收尾,最大安慰就是考上211院校的研究生,未来有了再次改变自己的机会。