大二后台生,一年的练习生涯云收雨散,余波未平....

大家好,我是melo,一名将近一年的后台练习生,2021即将告别我们而去,一年的练习生涯即将结束,趁着跨年之际,抓住生涯的末尾,对2020以及2021年做了一次复盘。

大学前的暑假

高考结束那会,我只觉得考得很崩很崩,不想谈论试卷,回到家就是一股脑的把自己泡在游戏里,碌碌无为的过着每一天,没有勇气去直面高考。
高考填报志愿那会,在出省与不出省之间纠结,211还是计算机资源(工作室氛围与资源),最终选择了后者。
等到游戏打够了,静下心一想,虽然念的大学跟平日里模拟的落差很大,但所幸所读的专业还是自己一直以来心心念念的计算机类,开始拾起曾经自己的梦想。
开始咨询同乡会的师兄姐,开始在b站上自学c语言,翁恺老师的课程真的是生动有趣,有很多有趣的思维题,就这样“玩玩闹闹”到了开学......

截图至今都还保存着

大二后台生,一年的练习生涯云收雨散,余波未平...._第1张图片

大一上 --> 栽了更头

开学后,不知道从哪听说到了acm这回事,虽然心心念念的还是工作室,自己更想要的也许是长久积累沉淀,最终完成一个项目的满足感,而非在四五个小时赛场上的紧张刺激快感,不过抱着试一试的心态,还是去尝试了一下,毕竟工作室也是大一下学期才开始招新。

ACM之旅

准备Acm协会设计部的面试与笔试过程中,初次接触了杭电oj,洛谷等刷题网站,设计部的考核有两种方式,一种是做题,一种是设计海报(高中学的ps早就忘光光了hhh,小后悔当时没做笔记),最终硬是靠着暑假学的一点c语言和翁恺老师的思维题通过了笔试,成功加入了Acm协会设计部。
在协会里边认识到了很多不错的师兄与大佬(很多都是OI生,起步早我们很多很多),开始了一边刷题一边接受算法培训课的艰苦日子,一切向着最终的新生赛进发.......
在新生赛之前,协会的月赛我也都有去参加去练练手,当时自我感觉还算不错,取得的成绩排名也还可以,不过发现自己似乎只是为了一个目标,忘记了去静下心来体会比赛对自己有没有乐趣可言..
最终新生赛了,如果按月赛排名的话,是可以进入集训队的,只不过没想到的是,为了照顾到更多的新生,今年的新生赛注重的是数学与思维题目而非特定的算法题,觉着特定的算法题对非协会人员不太公平。而平日里那些模拟,思维题自己都不加重视,做过去没有举一反三多加扩展,一变了题就GG了,而且新生赛真的突然多出来好多陌生面孔好多大佬啊哈哈(果然大佬都不稀罕打月赛),最终也是在决赛里栽了更头,没能进队。

结合高考失利的成长

实际上,继高考后的再一次失利,我还是如高考般不愿去面对,不想谈论题目,自己跑到了食堂,觉着自己对不起师兄,一直以来请教问题,一直以来的努力似乎都白费了。
不过这一次也有所不同,或者说自己更成熟了点,会静下心来思考一下这个过程自己是不是乐在其中,还是只是为了进队这个目标。细思几分之后,才想起当初选择大学的时候,看重的是工作室做项目,自己更习惯更想要的也是长久的积淀出一个完整的项目。同时,我也意识到了自己如果只是功利的为了实现某一个目标的话,会经常去抉择“优先性”,觉着哪些题比较重要,哪些题应该是不考的就没放那么多心思在上边,新生赛跟高考一样,都是突然变数很大,跟自己平日的模拟很不一样。

但如若总是念着变数很大,题目很不一样,其实有时候只是在逃避问题,也许最终的失利,恰是因为自己平日里没有举一反三,没有深入问题的本质,总习惯性的功利性的去“押题”罢了。

积攒的一些小笔记

大二后台生,一年的练习生涯云收雨散,余波未平...._第2张图片

c++中的stl学习

大二后台生,一年的练习生涯云收雨散,余波未平...._第3张图片

洛谷记录

当然很多是重复的AC记录啊哈哈

大二后台生,一年的练习生涯云收雨散,余波未平...._第4张图片

塞翁失马,焉知....

没有了新生赛进入集训队的目标后,其实也给了自己好好准备大一下专业分流的机会,有更多的时间和心思去准备学业,最终也是考出了心仪的成绩,分流到了心仪的班级--软件工程卓越班

C语言课设

主要实现的是一个自动售货机,可以实现基本的用户注册,登录进入售货机界面购买,管理员CRUD商品,所用的技术主要是:文件流操作,动态链表(当时的课也就讲到这里)

主页面

大二后台生,一年的练习生涯云收雨散,余波未平...._第5张图片

顾客界面

大二后台生,一年的练习生涯云收雨散,余波未平...._第6张图片

管理员界面

大二后台生,一年的练习生涯云收雨散,余波未平...._第7张图片
大二后台生,一年的练习生涯云收雨散,余波未平...._第8张图片

图形化界面版本

后边因为学校不让用VS,非要我们用上古神器Turbo C++ (真是李大普,最后还是拿着上边的版本去参加学校的课程设计大赛,拿到了二等奖)
最次吐槽一下,课设大赛是等到大一下临近期末才举办的,拿着久违生疏的代码实在提不起兴趣,对这个比赛本身也没有多大期待,emmm看到有些同学甚至准备了比赛答辩的PPT,自己属实是不上心了。

主页面

大二后台生,一年的练习生涯云收雨散,余波未平...._第9张图片

顾客界面

大二后台生,一年的练习生涯云收雨散,余波未平...._第10张图片

管理员界面

大二后台生,一年的练习生涯云收雨散,余波未平...._第11张图片
笑死了,这一块就随便做一做的
大二后台生,一年的练习生涯云收雨散,余波未平...._第12张图片

大一上寒假

忙活完考试,该拾起最初的目标了--进军工作室,改变学历啊哈哈哈。

易班(大一加的社团)的师兄师姐们真的帮了我很多,很庆幸当时还多报了一个社团,两个完全截然不同的社团性质,易班带给我的不仅是前端后台知识,更多的还是工作室氛围,以及大学社团的文化特色。寒假的时候,也是跟师兄要了学习路线,我算是比较明确的就选择了后台这条路,当时看的高淇老师的基础课,敲着敲着就到了大一下,工作室开始准备招新的时间段了。

大一下 --> 改变学历

工作室之旅

开学不久,各大工作室便开始陆续招新,听了好几个宣讲会,最后比较喜欢研发师兄姐的热情态度,以及宣讲会活跃的氛围,一轮便下定决心专心做好研发的考核。要说acm锻炼了思维和码力,那在这两轮的考核期间,则是锻炼到了复杂的业务逻辑处理能力,以及各环节之间耦合度的处理。
工作室的考核,周期相对比较长,分为了两轮,虽不至于像比赛那般紧张刺激,但到了ddl的时候,还是会忍不住去继续优化和完善功能。

第一轮考核--盐系笔记

我们第一轮考核的内容是设计一个本地笔记软件,类似于甜不辣这种,在这一阶段,技术要求方面是在JavaWeb之前就可以了,优化和GUI占了一大块头,我本人是比较喜欢树状结构来梳理笔记的,当时就决定要做这一个功能出来,对应到Swing里边就刚好有一个Tree控件。
大二后台生,一年的练习生涯云收雨散,余波未平...._第13张图片
UI就将就看看吧,Swing是真的丑
大二后台生,一年的练习生涯云收雨散,余波未平...._第14张图片

第二轮考核--网页微信

第二轮考核就需要用到JavaWeb了,还需要学习前端三件套自行搭建一个网页微信出来!!!没错,几乎微信的很多功能我们都实现了,在线聊天还需要用到WebSocket

emm但是感觉二轮考核的时候,65%的精力都在前端上边啊哈哈,一轮考核期间封装好的都直接拿过来用了,相关的留着以后再讲,下学期还要招新呢,不能把题目透光光了。

最终经历了两轮考核,从寒假学的Java基础,到二轮考核做出一个网页微信出来,涉及到的知识点很多很多,JavaWeb,MySQL,Git,Websocket,更重要的是优化方面:因为考核要求不能用框架,优化层面主要是采用了反射+泛型封装好BaseDao数据层,还有手写的数据库连接池工厂模式+配置文件生产相应的JavaBean(后来改成动态代理+工厂生成代理对象了),动态代理实现全局异常处理和日志打印,单例模式和建造者模式的巧用等等,这些优化,才是写项目真正的乐趣所在!!

关于这些优化,以后要是有时间的话会来补上博客的!flag插这了

大一下暑假

考核完其实差不多期末了,直到寒假才有机会来继续学习后台方面的知识,到这个阶段已经要上升到框架的学习了,当时是满怀敬畏之心,跃跃欲试上手框架的,从mybatis开始,再到spring和springmvc.....,但是突然就感觉,好多原本自己考核优化的工具类,引以为傲的东西,其实人家都封装好了,直接开箱即用....,到这个阶段,写起代码来更多变成会用并记住怎么用,我们的目光变得更多放在业务和架构层面上。而这一阶段,也还没有时间去深入框架的原理,学习新框架感觉也失去了乐趣,改变了学习计划,打算先把基础的,永恒不变的东西先学好-->数据结构和设计模式。
学习数据结构的过程,一方面是考虑到下学期也有开设数据结构课,另一方面也是希望能早点开始每日一道LeetCode的节奏。不过一开始的刷题还没那么带有目的性,只是随意刷刷,学到哪就刷刷哪个模块的题目,就这样从链表的一些特殊操作,LeetCode题目开始,学习栈和队列,最后学到了快速排序那一章节。设计模式,断断续续也就学了工厂模式,单例模式,

所学清单

  1. git巩固和实战模拟冲突
  2. maven依赖原则
  3. spring
  4. springmvc
  5. mybatis
  6. springboot
  7. mybatis-plus
  8. 设计模式(零零散散主要是暑假看)
  9. 多线程和并发锁事(主要是开学头看,还有一些没看完)
  10. 数据结构与算法(到排序)
  11. Nginx(很多进阶还没学)
  12. Linux服务器应用
  13. shiro权限框架(学习中,后边没用到也就没深入学了)

练手项目

第一次团队开发,虽然没得线下协同合作,单纯只是在线上合作,合作开发了一个工作室招新小程序和工作室招新后台管理app,第一次了解了一个项目的开发流程,我们总共有五个小组,UI,前端,后台,安卓,大数据。

  1. 各组讨论定好需求文档,然后后台开始设计数据库,搭载环境,UI开始画稿。
  2. UI画稿,定好稿子。
  3. 前端和安卓拿到原画稿,开始画页面。
  4. 前端和安卓决定好需要什么接口,接口的传递参数返回参数等,然后分发接口任务给我们后台去编写。
  5. 后台开始编写接口,然后测试没问题之后编写接口文档,交给前端和安卓。
  6. 测试阶段完成,后台开始配置一些上线后需要的环境,拦截器之类的东西,同时进行一些优化。

项目优化

  1. 全局异常处理
  2. AOP实现异常日志单独打印到特定文件
  3. WebSocket实现App实时通知
  4. mybatis拦截器记录日志
  5. 参数自动校验
  6. 预防XSS攻击

大二上 --> 沉淀技术

终于,熬过了寒假的线上合作开发,来到学校工作室给我们分配好了工位,终于可以开开心心当个"打工人"了。有了工位,不用再每天匆匆忙忙赶图书馆抢充电位,晚上图书馆又早早闭馆不得不回宿舍。刚开学季空闲时间还是比较多的,在还没真正开始开发项目之前,又回顾了一下寒假所学的知识,再学习了Linux,nginx,redismaven私服

第一个维护项目

很快,我们拿到了第一个项目,师兄继承下来的维护项目。一开始拿到师兄的项目时是绝望的hhh,项目的复杂度很高,各个模块之间的关联性又很强,通常需要我们结合师兄编写的模块关联图,模块功能流程图,再通过网页控制台接口调用,debug调试才能对该模块有较为清晰的理解。

收获

学会了如何阅读他人的项目

  1. 有接口文档优先看接口文档,然后搭配网页控制台,在后台相应接口处设置断点debug,理解该接口的调用过程
  2. 有条件的话还能去打开前端项目,直接搜索某个接口名称

第一个从零开始的项目(尚待优化)

这个项目主要是实现一个预约抢票+现场排队叫号的系统,有点类似于医院挂号,提前预约好特定的时间段,然后到现场叫号。说来也巧,这个项目中就刚好用到了并发和redis相关的知识。
关于这一块优化,后边还会再专门拿出来讲讲,说起来,自从做起项目以来,就很少更文了。

技术栈收获

  1. RestTemplate调用接口
  2. MapStruct实现VO跟PO的转换
  3. 多数据源配置
  4. SpringBoot抽离yml部署,bat运行
  5. 定时任务
  6. JMeter并发测试
  7. 微信授权登录,唤起扫一扫功能
  8. Java中的各种日期

课程设计--字典树实现背单词软件

最近临近期末,刚好在搞课程设计,选中的题目是字典树,字典树普遍的应用都是用在过滤文本,过滤敏感词汇,未免单调了些,过滤的作用还能体现在哪呢?某天突发奇想,想到不妨用这个过滤来过滤单词呢?首先搭建一个高频词汇表,一个用户自定义熟词表和生词表,进入背单词模式时,就可以选择用熟词表来过滤高频词汇表中出现的单词,以此达到拼写+背诵的功能。由于现在还没开始答辩,暂时还不方便放出来,后续有机会的话我们再单独放出来瞅瞅。

不过这个课程设计仅限于C语言实现,做起了实属吐血,也没有心思去搞图形化界面了,单纯加深对字典树的理解。

所学清单

  1. 数据结构到图 (主要重心,几乎两三天就会做题,但主要是学校的anyview平台) -- 做项目就很少更文了,下次一定!

9月和10月做题比较多,循环队列,排序和哈希
11月开始跟着学校的树课程,12月跟学校的图,这段时间还是项目为主

  1. Dubbo+zookeeper应用 (10-12到10-17)
  2. redis (断断续续10-21到11-4)
  3. maven私服 (断断续续10-22到10-24)
  4. mybatis-plus
  5. JUC(零散的笔记,有空整理成文)
  6. jwt(很小块的一个笔记,但是蛮重要的)
  7. Nginx项目应用(服务器之间的各种跳转)
  8. SpringCloud组件(主要只是视频学习,还没真正实战)
  9. Docker(视频)、RocketMQ入门

存在问题

卷?

虽说自己平时不是很卷,到了考试前才会开始比较卷一点,像上文说到的,大一上准备acm的时候,在新生赛之前的课内课程,内心是有点抗拒想尽量拖到比赛后再认真学的,以及大一下工作室考核期间,身边的小伙伴很多都没去上课,熬夜赶工,我好像还是兢兢业业去上课了hhh
但是真正学还是等到比赛结束,工作室考核结束,还有考试月可以好好卷,刷往年习题,相当于考核后就已经全身心扎在学习上了吧,继续深入后台方向的知识还得等到寒假的时候了。

这种卷是否有意义呢?

最后得到的成果,虽说也不赖,但总感觉不是很实质性彰显技术水平方面的,都是一些其他的Buff加成,校一等奖学金优秀学习标兵奖,还有大一上的时候四级考了605分,大二上也就是一周前还在速成备考六级 (说到这个已然麻了)。

身处"卷"中风暴,需秉持自我

现在分流来到了最"卷"的班,立志今年不卷的我,有时候也很难做到啊喂!!
不过有在慢慢变得不那么"卷"了,现在已经临近考试周了,还没开始备考(甚至还想趁着大家都在复习,有些课自己平时有听可以稍微放一放,不想分配那么多时间在备考上,考试周这么大块的时间不如接着学点新技术hhhh),属于是摆烂中....就是不知道会不会摆烂摆过头挂科了(bushi)

综合能力

急躁

如果是项目中遇到了问题,会比较想赶快解决,没有系统的去学习,而是抱着试一试的心态,盲目的找寻解决方案,没法静下心来去认真思考。

全能or全不能

对很多事情,会想着尽量学得细一点做得认真一点,不会说过多的甄别重要性与否,学得细,做笔记,写博客,然后发散和回顾知识点。
不过也因为这些总结和发散的时间,少了很多去学习新知识的精力,视野方面就稍微狭窄了一点,所用的技术栈也没有更新。

  • 相关的总结发散主要在这篇专栏中,后续工作室招新大一新生的时候,也会再来回顾回顾一些面经:聊聊Java

不过感觉所谓学得快,也只是接触得多,会用而已吧?真正深入原理的还是偏居少数。

软实力方面

会尝试去跳出舒适圈,曾经自己是个不太愿主动表现的人,现在在社团中担任部长,以及工作室担当负责人,很多大大小小的社团活动,康乐活动都需要策划和组织,虽然感觉只是单纯的"苦力活",不过想真正做好还是需要考虑到很多方面,更需要跟成员们打好交道,协调好各个部门,向他人呈现出最好的我们。

学习方法

笔记太"多"

在学习的过程中,会过分追求笔记的完整性和工整性,找一个学习视频之前会习惯于先去找有没有现成的全面的笔记,只看重了完整性,杂而不精。
很多用法性的笔记其实可以不用记太多,这些到时网上一查就有了。

  • 真正应该记的是总结性思考性,或者说能够辅助自己记忆的笔记。

身心状态方面

窝在工作室窝久了,一整天没运动,大概是早上/中午吃完饭过来,中午在工位上倚着电脑椅仰睡20-30分钟,晚餐吃外卖,待到晚上10.30左右。

下学期争取晚上早点回去,赶上10点可以去操场跑个步!

感谢博客园

博客园算是一个老牌博客网站了,文章的质量和数量在各大平台中都算佼佼者之一,这里的程序猿们,给出的意见和建议也特别多,评论氛围相较之下更优一点,在这里的每一篇随笔,虽然自己积攒了很多笔记,但是要整理成一篇博客,还是需要多加润色,以及发散知识点的!!

  • 同时这里的高水平高水准,也让我的某篇博客引发了诸多"歧义",自己对于其他语言的理解不全面,很多东西只是知道理论没有深挖底层,导致闹了笑话,一度还上了评论榜(尴尬).

新的一年

寒假

把这学期的项目以及下学期要用上的工作室招新小程序,APP用所学的分布式知识优化一下!!!分布式的深入应该暂时还不会踏足,趁着寒假有大块的时间,把JVM设计模式并发琐事MySQL高级这些大块头再深入一下。

大二下学期

学校终于要开设计网操作系统了,作为以后面试的敲门砖,要好好啃起来,开启读书模式!
与此同时还有一门算法课,可以来拾起大一上那些算法了,跟着三叶姐的脚步!!!

最最重要的,希望自己不再是一个“全能”的人,能在某一个领域专攻,或源码,或算法,或比赛,或开源项目!!也想知道有哪些比赛,开源项目是比较值得参加的,就目前了解的还比较少,欢迎一起交流!!

愿:永远年轻,永远热泪盈眶,永远在路上...

你可能感兴趣的:(大二后台生,一年的练习生涯云收雨散,余波未平....)