前言
刚进入大学的场景还非常清晰地浮现在我的脑海,但不知不觉我已经是一名大四的学生了,今年也马上要从校园毕业。我是一只存活于某二线城市普通一本大学软件工程的糕,自己学习的技术主要集中于前端方面。小糕童鞋性格内敛且学识尚浅,我写下这篇小结主要是为了反思自己、以便更好地写下未来的计划,说不定也可以帮助一些童鞋少走一些弯路。
学习篇
寒假
学习 React Native:虽然寒假过后就开始春招了,但一开始的我一点紧张的意思都没有。以前端为方向的我还没有真正用三大框架做过东西,因为之前有想做一个记单词 APP 的想法,所以我就在做需求分析和 UI 设计的同时开始一边学习 React Native,这样也顺便复习了一下 react,然后还接触到了 mobx。但是我越写越感觉和网页开发不同,电脑设备太差跑起来感觉很痛苦,于是写了没一半就中止了这个想法。
写博客主题:分别花了 2 天时间给自己的 Typecho 博客和 HEXO 博客各设计 + 写了一个主题,简单实践了 gulp 和 sass。
练习算法、数据结构:我的脑袋很奇怪,算法一直是我的心病,我整个寒假在 lintcode 上平均每天做了 1.5 个题目,克服了一些做题的恐惧感。
读书:《图解 HTTP》精读完成、《你不知道的 JavaScript》上 + 中选取了某些章节精读、《CSS 揭秘》粗读 + 实践。(还立了其他几个阅读 flag,结果没完成,羞愧 T -T)
大三下学期
课堂学习
Java 进阶:专业重中之重的课程,因为专业的小伙伴几乎都是 JAVA 方向。因为非 JAVA 方向,加上我很多心思都花在春招上,所以听的不太认真。结果考题非常细,大家考的都不好 233。
Java 架构:老师讲的是源码分析,像我只知道最基本的 JAVA 知识,听着就不太懂了所以没有听,自己在看书。
编译原理:感觉是很重要的课,不过教案对我们专业要求并不高,最后感觉就学了几种简单的分析方法。
软件测试:不敢不去上课,因为老师比较无情,且喜欢突袭测试。学习实验了一些简单的测试方法,也学到了一点理论知识,在软工这门课上也提到过。
信息安全:老师放养式管理,课本也很难看进去,于是我自己找了《图解密码学》来看,感觉受益匪浅。
专业英语:很久没好好学英语了,记了一些计算机相关的英语单词,同时自己也开始看一些国外的技术文,想要翻译好感觉还是有点难。
软件外包项目:吾等毫无社会经验的学生表示这门课很难听懂,涉及了很多关于财力、人力的管理知识,所以我都是自己看书 233。
日语:2018 年寒假我拿到了日语 N2 的合格证书,学校的日语课很水,五十音图占了大半个学期,所以我基本都是自己在看书。
课余学习
弥补知识漏洞:开始春招了,慌忙地我马上开始查漏补缺 QAQ,这时候的我每天都在阅读各种知识点文章,发现自己到处都是漏洞。
学习 + 实践 Vue:有了一点 react 的基础,学习 Vue 很容易上手了,阅读完官方文档后我马上就试着去做了几个简单的仿做小项目,也顺带学习了一些其他的小工具。
写小结博文:以《JavaScript 高级程序设计》为基础,阅读各种博文加上自己的实践理解,加深了对一些概念的理解,并整理出了博文。
试着学习 jQuery 源码:弥补自己在慕课网上留下的坑,以前没能看下去,后面学习了几个部分。
加大对 CSS3 的探索:由于在 segmentfault 上看到了 comehope 的文章,我开始频繁地光顾 codepen,开始多分析一些效果用的技巧。
读书(上课的时候经常看):《图解密码学》精读完成、《Node.js 深入浅出》部分精读 + 略读、《JavaScript 高级程序设计》部分二刷、《ES6 入门》二刷 + 实践,因为以前用的不多、《WebKit 技术内幕》部分精读,很多地方没戳到我想知道的点,所以没仔细看完。
暑假实习
学习 Angular:当然是公司的要求啦,不过学的版本不是比较新的,以前我也没有接触过 Angular,学习了很多概念。
熟练 git 的使用:因为以前一直是一个人或者几个人一起写,感觉 git 一直用的不规范,两个月的实习让我对 git 有了更深刻的体验。
架构思想和设计模式:第一次接触和参与比较大的项目,才切实感受到一些架构思想和设计模式的好处。
体会完整工程流程:第一次体验了实际的开发流程,经常会有软件工程课上和软件外包项目课上的一些理论知识浮现在我眼前的时候。
参加技术分享会:参加了几次公司内部的技术分享会,也是我第一次有机会能参加这种分享会,感觉还是能拓宽自己的眼界。
读书:《AngularJS 权威指南》基本精读完成、《javascript 设计模式与开发实践》基本精读完成
大四上学期
去实习的时候已经是七月下旬,后面由于我身体不适,所以实际上就实习了 2 个月的样子(哭泣),秋招也没有参加,直接在实习公司转正了,学校这时候也不肯放人去实习,我一直请假。但是后面某天,旷课一次后感觉也没什么问题,结果就成了老咸鱼,每天在宿舍养病,很久都没怎么好好看书,后面直接就回家休息了。
课堂学习
软件前沿技术:老师比较严格所以去了几次上课,最后大作业我介绍了《前端前沿技术》,也是趁着这个大作业的机会我好好地了解和体验了 WebAssembly、WebAR、CSS Houdini。
人工智能:就是数学和算法结合的感觉 T -T,身体原因所以就听过一次课,感觉还是比较有趣,不过我这个脑袋对数学就感觉很头疼,最后作业只写了一个三子棋的网页游戏。
数字图像处理:选的时候超级想学,最后一节课都没有去过(羞愧)。有实验课作业和大作业,所以我在大学慕课上学习了一些课,由于老师不允许我们用一些内置的函数,所以做起作业来很辛苦,各种查资料,途中很顺利的入门了 matlab,然后很认真的做了老师的作业。
课余学习
入门 Three.js、D3.js、SVG:实习后的我找到了一些自己比较喜欢的前端方面更细化的方向,所以我就入门了 Three.js、D3.js 和 SVG 的基础,不过资料相对就没那么多。
WebGL 和图形学基础:学习 WebGL 的话,说实话比较吃力,因为多多少少会涉及到图形学和 C 语言方面的东西,在看过一些基本的入门知识后,我开始尝试去学一些图形学基础,虽然我知道后面肯定涉及很多数学和算法,但是我还是很愿意尝试尝试。
学习编程思想:我觉得这点主要体现在去学习一些思维模式和方法,但是对我来说很难掌握,因为当我无法体会到他的好处我觉得自己是不理解、无法接受的,比如设计模式、函数式编程等。
英语阅读能力:重拾英语,因为越来越感觉如果能很简单的阅读完英语文献、看油管的视频那可以接触到很多优秀的资源。
读书:《Three.js 入门指南》泛读完成,《SVG 精髓》部分精读完成(又是很多书没看完)
代码篇
2018 年我挖过很多坑,要细数的话我自己都不好意思了,因为我没有那么多时间来填完。最后完整写完的大概就是 …
数独小游戏(跟着慕课网做的 )
一个纯前端的小游戏,用了 TypeScript、gulp、webpack 和 ES6 语法来完成的,当时做这个主要也就是想体验一把 TypeScript。
仿网易云商城(JAVA 架构大作业)
老师要求用的技术算是比较旧的吧,老师只给了两个礼拜的时间,我为了顺便熟练一下前后端分离项目,所以把后台返回的格式都变成了 JSON,这样我就可以前端用 Vue 了,但是初接触 JAVA 框架的我后台配置弄了很久,哭着完成了。技术栈前端相关:Vue.js、Vue-cli、webpack 后端相关:struts2.0、Spring 3.1、Hibernate 3、JUnit 4、MyEclipese 数据库相关:MySQL
实现功能登录、注册(判断输入合法)首页显示、分类显示、搜索购物车、订单显示
纳尼酱(课设项目)
一个网页版的记单词项目,我就是和记单词过不去了 … 技术上前端依旧是原来那套,但是都用上了 ES6 的语法。后端选了 Koa2,因为自己以前没用过 Koa 写过东西,所以就尝试一下。但是实际上只有三个星期的时间,所以学到的也都是皮毛,请求疯狂用各种 Promise,项目的结构也调整过,貌似般地用了 MVC。数据库方面因为想保存验证码之类的,所以用了 redis,也是以前没接触过(当然最后学到的只是简单的用法)。依旧选了 MySQL 因为实体之间的联系比较复杂,为了方便选择数据所以就没有选非关系型的。但是自己的需求一开始不是非常清楚,尤其是在如何记忆单词这个方面,所以我觉得设计上还是存在一些漏洞,这也是当时我很纠结的地方。
技术栈前端相关:Vue 全家桶、LESS、webpack 后端相关:Koa2 数据库相关:MySQL、redis 实现功能
实习相关
实习的时候参与了自己部门的两个项目,技术上没有什么非常特别的地方。另外自己还开发了一个 H5 项目的某个模块,没有人带,所以自己一人和项目经理、后端沟通(感觉胆子瞬间大胆了不少 T -T)。项目很庞大,结构比较复杂,所以一开始写的时候感觉很困难。第一次接触了 echarts,写了一个组件,也解决了一些 H5 的兼容问题,最后还是按时完成了。
反思篇
接触潮流在我参与春招之前,一直埋头自己干,对于流行发展的状况了解很少。结果 2018 年了才开始真的用起三大框架来,实属落后。前端技术本来就变化很迅速,除了 segmentfault、掘金等国内平台,国外的技术文章分享平台能获得更多先进的技术资讯。
读书最好做总结有时候我会突然发现自己有一些阅读过的书细节忘记了,结果又拿着很笨重的书从某个地方开始翻开始找重点。我的眼睛不能一下记不住书上的每个字,大部分的书并不是句句都戳重点,每次重新复习非常费时间,所以总结就能把核心部分都整理出来,可以随时拿出来翻看。
要有一技之长即使是选择了前端方向,我却没有一个说得上很优秀的部分,是 CSS、JS、框架还是架构?都在泛泛学,学习的时候在时间分配上自然也很随意了。可以说是给自己定一个目标,以后想做前端哪方面的东西呢?我在 2018 年找到了自己想要的答案,在以后的学习上我也会多分配一些空余时间在这方面上。
就业 OR 读研 没有谁对谁错在去实习之前,我对于这个选择没有任何纠结,因为我不想再被学校统治和压榨 233。但是当自己实习后,或者说当自己的眼界被拓开后,我觉得读研也是一个很好的选择,因为可以学到和接触一些更深刻的知识,虽然很多人说还不是靠自己,但是在环境的熏陶下以及资源的接触机会,还是会有一点不同吧,说实话自己甚至还有一点小羡慕研究生可以有这样的机会。但是最后结合自己的实际情况,我自己最适合的还是就业,学习的途径有很多种,我也并不是有雄心大志的人,就是很简单的想学点东西,所以自己私下的时候边玩边学也没有关系。
做计划 不能停一旦没了规划,很可能漫无目的一段时间后,才猛地清醒自己好像浪费了很多时间。在实习的时候我还比较放松自己,但是到要做总结的时候,就会开始后悔自己这个想法、那个想法怎么这个没有好好完成。不管计划地执行结果如何,前提都是要有计划。
身体才是第一位这点的重要性是人人都知晓的,但是往往只有当自己年纪越来越大才会愈发有体会。当自己身体不舒服了一定要及时去医院看病,自己以为的小毛病可能拖很久都好不了(本人亲身教训 T -T)。
尾声
自己未来的规划什么的就不好意思分享了,我怕写给别人看自己没有做到(着实羞愧),所以等我达成了目标再来吧 233。我确实是一个很普通的小童鞋,没有聪明的头脑,也没有大梦想 Σ(っ °Д °;) っ,总之在这里谢过啦。