学习经历
大三下学期找实习的这段时期,还是挺感慨的,现在暑期实习过半也是时候回过头看一下我的大学都干了啥了 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 可爱啊!