学习经历
大三下学期找实习的这段时期,还是挺感慨的,现在暑期实习过半也是时候回过头看一下我的大学都干了啥了 hhh
大学学习路线
后端
2021 年伊始,我沉迷在golang的美好中无法自拔,golang真是太美妙和轻松便捷了相比java而言,有这样的感受可能与我java的学习之路实在太过于冗长了有关。
我的java学习是从基础语法到 JavaWeb 开始的,在 JavaWeb 时还系统地学了 JDBC 这一套东西,之后再转向了 mvc 学习 spring 框架,期间还差点选择继续补了 struct2 的坑,实在是太浪费时间了!在现在的视角里我认为从 springboot 之前的技术掌握个基础概念即可,2021 年了大可选择从 springboot 入手写 web 应用,学会 sbm(springboot+mybatis)这一套,可以尝试上手搞搞消息队列,整整微服务这些东西了,这样的后端学起来才更好玩更有成就感!!
反观golang的学习路线,一步一个脚印,从实用出发,没有那么多沉重的历史包袱,用原生库都可以轻松搞出一个 web 应用程序,太符合我推崇的「用到再学」的理念了,把写 web 要用到的东西用得很熟练,转手就可以倒腾 grpc、微服务等框架,学得快写得爽,我写golang的快乐已经很逼近写anyscript的了。
当然!golang和java绝对不限于写 api 只是会写 api 更容易找工作一点。
基础
java永远是我的启蒙老师,从面向对象到泛型、写套接字到搞 web 分层… java这个体系对我的编程帮助真的是无限大的,让我摸清了 web 整个体系的样子。我用swing库写过 GUI,结合上socket写自己的服务器(写得超烂),迷恋streamAPI让我接触到函数式编程,倒腾过kotlin-springboot来替代java—springboot,不过最后kotlin还是沦落到只被我用来写测试用例 hhh…而且结合 idea 写 java 代码的有各种奇技淫巧体验感真的很棒,现在用react-ts加vscode写代码总是觉得缺了点什么东西,当然拿强静态类型的语言和anyscript来比较纯粹就是耍流氓。
再往前讲就是用 C 和汇编研究csapp—lib、哈工大操作系统网课这些东西,这个阶段的学习代码打得不多,主要是一些计算机基础知识的学习,难得的是疫情居家学习期间不用像平时上课一样去课堂浪费时间,成功让我补完了计网、计组、操作系统、汇编等东西(还有空回顾了王小波的小说文集 hhh),在DOSBox上跑代码的成就感真是无与伦比,甚至还能摸鱼学一点 vim!
从大一到大三这段期间,我零零散散地搞了很多东西,期间还穿插着把前端学了一下,那时候总感觉自己陷入了一种兜兜转转学不深的怪圈之中,当下回想感觉其实也还好,这些零散的东西无名中拼凑出了我对计算机学科的热爱。
我如何找实习
我正式开始准备暑期实习很晚,第一份简历投递的时候已经是 4 月初了,在这期间还经历了一段小插曲,时间上算是完美错过实习黄金时期了…
时间线
-
三月份
入学后我才正式开始准备整理自己的知识框架并制定学习计划
PS:3-4 月份是春招和暑期实习的高峰期,其实应当在年前\寒假就开始准备了,三月份再准备来不及了
那时候决定是走后端 Java 方向,整个三月份我的复习内容是 java 基础和 springboot 框架,项目准备是动手整合 sbm 和一些常用业务工具,如 token 校验、访问权限控制,同时这个阶段为了解压在补充学习
javascript -
四月份
上旬,在背
java八股文和写算法题度过,为了算法题的测试用例,又摸鱼学了kotlin,这段期间对java8新特性也着了迷,从streamAPI到函数式编程,可能也是为了更快地写算法题 hhh,并投递了几份简历开始准备第一次面试中旬,由于简历写得实在是太过于难看(项目积累和技术水平不过关),最后收到面试邀约的并不多,再接着看到身边和牛客的同学们陆续拿到 offer 参加实习,心理防线有点崩溃了我开始反思这一个半月来的选择是否正确,我突然意识到我做的并不是真正喜欢的东西,我的代码无法给我带来成就感了,结合之前的积累,我果断决定换到前端方向再出发
下旬,得益于之前项目的积累,我没用多长时间就补完了网页基础三件套,并重温了 vue2 的知识,主要在为写项目做准备,从 babel、webpack、es6 语法、vue-router、scss 等这些项目必不可少的工具都认真地去看了一遍,解答之前写项目的疑惑
-
五月份
全面转入前端学习的一个月,从 vue 起手写了很多 demo,恶补了 vue 全家桶的知识,最后用 springboot 和 vue 写了一个致敬「my liittle airport」的音乐播放器送给朋友当生日礼物,期间借了很多 js 相关的书籍,慢慢研究《红宝石第四版》、《你不知道的 JS》全系列,月中重写了一个 web 应用准备与朋友一起将其转写成小程序,是很充实收获丰富的一个月。这段期间学习了如何搭好脚手架,最重要的是建立起现代前端体系的理解:状态管理、路由控制、渲染逻辑…
-
六月份
上旬,在牛客背前端八股文同时一边学一边重写小程序(uni-app),也投递了修改完简历,这个期间我的前端学习是有体系且按部就班的,主要以项目驱动为主,写好项目后就借了同学的服务器开始倒腾,学习项目部署,把音乐播放器、小程序都部署到了线上,弄懂了跨域问题,对项目配置部署的了解更是加深了很多,还整了域名和 dns 解析,顺带配置了一下赠送的 https
中旬,这次简历写得比较完善简历关通过率提升了很多,也成功收到了人生第一份 offer,在之后转入了全面准备面试的状态,每天的时间基本都花在了项目总结完善和背诵八股文身上,有了这份 offer 的加持,我的状态也渐入佳境
下旬,陆陆续续地安排了很多场面试,并迎来了多门课程的结课考试,忙炸了的一个星期,期间还第一次参加中大厂的面试,尽管最后没有如愿但在面试经验方面还是小有收获
-
七月份
考完试后多了很多空闲时间,暑期的临近让我加紧了找工作的步伐加强了背八股文的力度,在牛客 OJ 上做完了前端的题目,万幸的是不久我就又拿到了一份 offer,无心恋战的我也开始为参加这家公司的实习找房子,谁曾想在两天后的一场面试中我意外地和面试官(也就是现在的 leader)聊得很投缘,机缘巧合就参加了这家公司的实习,暑期实习到这也暂告一段落了
感悟
面试就是一个很随缘的事,双方聊得来,自然就过了,之前的焦虑不甘心,在确认 offer 的时候都变得很平淡,相当不习惯的是背题的时光结束得太突然,好在实习学到了很多东西
最近在干嘛?
写什么业务?
我组负责的是公司数据中台的数据应用部分,主要负责的是为客户提供可快速实现数据可视化报表的工具,平时干最多的活就是完善各种各样图表的制作功能,如通过数据生成热力图、气泡图等等…
技术栈就是react-ts这一套 umi+dva+ant-pro,组件库用 antd,图表生成用 antv,布局通过ant-pro实现,组内也有各种各样魔改的通用组件以供使用,这也意味着平时我经常需要给组内通用的组件做一些优化,还好 leader 和同事都很照顾我,给经常找不到代码放在那里的我无偿提供了很多慰藉
实习第一个星期主要用在适应从 vue 转到 react 这套技术栈上进行开发,这四五个工作日基本全在看文档。入职第二个星期,leader 帮忙开了代码仓库的权限,让我熟悉代码顺带做点小优化,改个小 bug,我索性拉了条分支在上面魔改,期间摘了几份代码交到 leader 会审查的分支上(后面才知道这条分支就是线上开发环境的构建分支,写的功能面向全组还实时可见…)contribution 多了以后 leader 也放开了,直接让我上手写了业务需求。
业务代码的书写总体上难度还是不大的,印象中写了一堆异步加载、上拉加载的需求,比较有难度的应该就是调用图表需要画 canvas 了,平时大部分时间就是对对接口,写写测试用例,甚至还摸鱼摸出了几个国际化没写好的问题,挺清闲的,不加班真的赛高
业务之外在学什么?
svelte+windicss,我一直喜欢小而简的东西,用得爽才走得好编程之路,这套东西感觉用来写项目会很爽,学着先用用快乐一下 hhh。angular受到我组anyscript的影响,用惯了java我真的狠狠痛恨一开始就没整好的typescript项目,我的想法是等新电脑到了就装一个webstrom来写angular,说实话,我的内心深处的第一 IDE 非idea莫属,万一我能用webstrom完美模拟出idea的独特手感呢,那angular大概率会被我用成小java- 想找个 nodejs 的后端框架学一学,用 ts 写后端应该也很爽,对
koa2一直很有好感,纯粹因为名字好听…
编程之外
编程不是我人生的全部,在独居后我更是意识到了这一点,最近每到周末总会想着多出去溜溜来躲避孤独,广州挺大但能去的地方其实不多,所以还是盈余了很多时间,利用这些时间我也慢慢喜欢上了整理物件,换一套好看的床单就能收获很强的幸福感 hhh,买了氛围灯后的晚上,我会懒在沙发上看记录片,这绝对是我这一天中最放松的时刻。学会和自己独处挺难的,在和李哥逛街我买了一个 popmart 陪我,金牛座的 dimoo 真的 hin 可爱啊!