我在公司的第一个月

版权声明:本文为博主原创文章,未经博主允许不得转载。有问题联系[email protected] https://blog.csdn.net/weixin_40411846/article/details/79845654

为什么选择这个时候实习?

大多数人听到我去公司实习的时候都是一脸惊愕:为什么大二就去公司实习?你去公司到底做什么实质性工作啊?学校里不上课了吗?
我的回答是:因为我觉得对我很有帮助;全栈开发;学校里根本没有(有意义的)课。

我具体做什么业务?为什么对我很有帮助?

我从2018年3月8日正式进入公司开始实习工作。我记得很清楚,这天是9点多到公司开始工作的,下午4点多提前下班的,我印象非常清楚。从此以后我再也没有提前下班过。
第一天就是学习AES加密算法的实现过程,并在网上找一段能跑的java代码,得到对不同大小的文件的加密和解密的耗时数据。对于二本四非的大二学生我来说,我之前对加密和安全没有太多的了解,只知道MD5和BASE64(这些应该算是“编码”吧?)。老板先丢给我一本厚厚的关于密码学的书,翻到AES部分让我学习,全部看懂之后开始上手代码。网上的JAVA AES加密算法代码很多,我就直接用了sun包里自带的aes加密代码,完成了加解密工作。
但是在加密txt文件的时候I/O问题让我陷入麻烦。当txt文件超过一定大小后,出现了OOM堆栈溢出的问题。我又各种查查查,学习了java.io和java.nio,掌握了java I/O大文件的技术。
AES的数据取得后,老板开始教授我关于他的专利加密技术,并要求我用java语言实现。这个要求就几个字就说完了,实现加密和解密算法,但我整整花了将近2周。
由于涉及公司利益,在码云上关于此的仓库是私密的,无法分享给大家。但经过老板的允许,其中非常关键的字节数组存储的二进制串循环移位技术已在CSDN上公开:字节数组存储的二进制串的循环移位,关于此网上仅此一文,详情请前往blog查看。
起初我一直非常想快点完成这个加解密算法程序,我想当初谈的时候说要我来做Android App的怎么天天让我写java application啊。可当我完成算法后再回过头看这2周的java编码,我觉得还是收获颇丰的:面向过程的细致编码和思考,读写处理的线程思考,加密技术的学习等等。简单来说就是一定程度上夯实了我的java编码基础之基础。
完成在公司的第一个活儿后,老板要求我学习服务器后端知识。我一开始也是有点不理解的,我一直不喜欢后端的开发工作,最大的原因是我不会!我在这方面一点理论知识基础都没有,JavaWeb一片空白,计算机网络这门课还在猴年马月。但公司工作的一大好处就是,它会给你压力,工作的责任会让你不得不接受不喜欢做的事情。
因为公司接的网站项目是基于SpringMVC+Mybatis的,所以我就从Spring开始学起了。先是写了SpringMVC和SpringBoot的demo程序,后来花了几天时间从公司网站仓库上clone了后端代码来逐行学习,在软件设计模式这门课上把mybatis-spring官方文档对照公司网站项目学习了一番,在图书馆借了JavaWEB,SpringMVC和SpringBoot有关的书籍有选择性地看完了我觉得重要的内容……(好久没有那么认真且快速地看书了!在学校里大把大把的时间去看书,真的很久没有这样了。)经过这些努力,让我对公司网站项目的架构有了大致了解,每个类每个方法之间的项目联系,作用和关联有了清楚的认识。但这个时候我还没有具体写实质性的后端代码。
学了一阵后端后,后端leader让我和另外一个只做后端的同事买阿里云服务器(因为搞活动,非常实惠,配置也很出色,比学生认证的配置好一倍)。第一次在黑底白字的centos命令行界面各种操作,新奇!兴奋!以前一直抱怨没有环境学习linux命令行,现在机会来了!有需求,有实际应用场景,自然而然地就会学就会用了。
3月底的时候公司全员开了一次会,交代了下一个时间节点前大家要完成的任务。老板交代我完成甲方网站配套的公众号和小程序开发工作。关于微信公众号,我知道它可以非常低门槛的,只需要点点鼠标就能完成自定义菜单、自定义被动消息回复、群发推送文章等等功能,但关于开发我是一脸懵逼的。我校信息学院团委就用公众号开发实现了学生查询课程进度信息的功能,大家每学期都会使用,非常方便。我脑海里公众号开发一直给我一种高大上的感觉,而小程序对我来说就更加困难了:我从来没有学习过HTML,CSS和JavaScript。
然而很多时候人都是被自己吓着了。
先说公众号的事情,经过4月3日到6日的开发,我已经实现了甲方对于微信公众号(服务号)这块的全部需求——网站账号绑定微信账号,查询信息,网站执行逻辑功能后向用户发送模板消息,依据网站架构完成自定义菜单。我真的非常感叹互联网的牛逼之处。我就在网上查了查,就找到了java微信后端的全套开发教程,一步一步地完成了任务。微信公众号、小程序的后端一般都是用php写的,但其内核都是接收请求,发送POST/GET请求,执行数据库操作而已。
再说小程序的事情。小程序没有公众号那么一帆风顺,因为它的门槛有一点高了:微信小程序的后端服务器需要一个有ICP备案和HTTPS证书的无端口号和IP的有效域名。甲方公司的网站域名和ICP备案都还没办下来,我只能先纯本地脱机编码完成小程序的基本框架搭建。我是一点不会前端开发的,所以我写起来非常吃力,时不时向已经被甲方折磨得死去活来的前端leader大哥指教。还好小程序本身非常轻便和简单,只要克服前端的问题就完全没有问题了。(好像是废话?)
经过公众号和小程序的开发,我开始接触前端,学习html,css,javascript,还是非常有趣有意思的。在这里推荐一下前端leader大哥推荐的javascript速成教学,我花了几个小时看了全部教程,最起码让我能看懂JavaScript代码了。JavaScript是一门非常强大的脚本语言!

为什么学校里课没有意义?

这学期我的课少得可怜,只有18个学分要修。我现在不看课表都能罗列一遍:操作系统,数据库原理,软件设计模式,近代史,专业英语,体育(羽毛球),形势与政策。没了!真的没了!二本四非农学特色院校的计算机课程,真的不要有任何的指望!要理论深度,老师自己完全没有操作系统的深层次知识,讲授课程流于书本表面;要应试难度,课程说是说计算机专业课,连个作业都没有布置过;要实践应用,操作系统用的教学OS,连指令集help都没有,也没有指令集文档,这已经可以判死刑了吧?别的不用说了……其中《专业英语》这门课更是登上了“我心目中最傻逼的上海海洋大学本科课程”榜单。
我已经打算考前集中mooc学习应试备考了……

总结

这一个月,我的主要成果有:一种高效的加密算法的java实现(数据已用于相关文献),一个带消息处理和逻辑功能的依托网站的微信服务号实现(已正式上线),一个基本的依托网站的小程序(未上线,仅本地)。
这一个月,公司实习给我的感觉就是:高效——我学习理论和技能比在学校里高效得多,同事们都很有干劲很高效,甲方不太高效hhh。

感谢

感谢老板李鹏林对我的信赖与支持;感谢于庆梅老师对我的敲打与支持;徐利军老师对我技术上的大力帮助支持;冯国富老师对单片机方面的帮助;贾凌春班主任与王蒙茹辅导员的帮助与支持;同事们的多多关照和技术传授;帮我去图书馆借书的好室友。

猜你喜欢

转载自blog.csdn.net/weixin_40411846/article/details/79845654