大家好,我是对白。
今天给大家分享一位22届双非学弟拿到字节offer后的复盘与反思,从他的字里行间可以看出他是一位目标感很强的人,有付出就会有回报,以下为原文。
按照惯例,先进行一下自我介绍(可能是面试综合征,毕竟面试一来都是自我介绍):
本人做的是前端开发,目前在四川某不知名双非院校就读计算机专业硕士,即将毕业。
一. 为什么我会就读双非硕士?
其实认识我的一些前端方向的同学,或者私聊我里面也有过不少同学询问我为什么会就读双非院校的硕士研究生,事情是这样的:我是19级考研,当时计算机专业其实已经是很火爆的考研专业了。然而自己本科就读的是医学院校,对计算机专业以及计算机专业的热门度都缺乏一定的认知,认为考研考个360分随便都能上了吧?于是一志愿报了四川某985院校,显然我低估了计算机专业的卷度, 当时虽然没有现在那么卷,但也很卷!查成绩那天,初试370的我以为可以稳过了,然而复试还是被筛下来的(具体原因我也不知道,可能是专业、院校歧视?)。家庭背景等诸多因素决定了我没有条件二战,我自己也不想二战,一想到二战压力大,公共课的真题自己都刷过等,我有点无法接受,于是决定走调剂。很感激现在的辅导员给了我调剂复试的机会,让我现在的导师在复试中看中了我,给了我升学的机会!于是来硕士学习(摸鱼)了3年之后,找到了一份还不错的工作。
二. 我的专业,前端基础怎么样?怎么学习的?
我想这可能是大家最关心的问题,我每次面试自我介绍的时候都会跟面试官提到,我是因为本科在校期间完成了一个科任老师带的医疗系统小项目接触到的计算机专业知识以及研发有关的东西,自己产生了比较浓厚的兴趣,于是决定考研跨考计算机专业。所以在我研究生入学时,我的专业知识基础仅限于考研时候学的那一点儿,而且基本都忘了,前端基础仅限于上面所提到的这个项目中,自己作为前端研发所了解的一小丁点布局知识(当时我布局还是用边距来实现,连float都不会,别笑我)。研究生入学后,研一期间所有计算机专业基础知识课程都是必修课,所以我是有机会补上基础的。然而对于本科就养成不好的学习习惯的我来说,要不是因为上课要点名,不然能看到我来上课就不错了,更别指望我认真学了。
于此同时,导师把我招进实验室,肯定是为了让我多帮她做项目,当时由于自己前端基础差嘛,在研一还没入学那个暑假,我遍早早的来了实验室,开始补前端的基础知识(三件套),以及项目研发需要的Vue.js、Node.js、webpack、git等有关知识。所以整个暑假都是以每天刷视频课的形式,看这些内容。当时自己总是处于一种不求甚解的学习状态,每天二倍速刷7~8小时的视频课,然后做点儿笔记,自己下来看。
三. 我是怎么练习项目的?
前面提到,我在暑假那段时间在补前端知识,到开学一个月后,导师交给了我第一个项目,美其名曰“ 让我在项目中锻炼,这样成长的更快”,实际上懂的都懂。
第一个项目是一个学校内部使用的项目申报系统,主要是拿来做学生申报项目,对应指导老师、学院、学校来进行项目流程审批的这种,主要基于vue+koa+sequelize来进行研发,由于自己在暑假学过node,所以第一个项目基本是由自己一个人完成的,也达到了当时自己很满意的伪全栈的目标。经过三个月的反复试错,不断写BUG、改BUG的过程,终于勉强算是完成了,实际上现在来看,项目做得很烂就对了,即使已经部署在在学校内部使用了两年多了。不过第一个项目确实让我学习了很多知识,不管是从大层面的一个项目到底有哪些角色,前后端怎么交互,怎么管理项目进度这些,还是到小层面的前端如何使用flex、grid进行布局,异步操作如何处理,怎么进行身份认证等。
第一个项目完成后,导师觉得我的学习能力还不错,进步的比较快(有更好的压榨价值,bushi)。于是交给了我第二个项目,也是我最后一个项目,便是她自己公司的线上项目。
这个项目是一个在线电子签名系统,主要是基于vue element + spring boot + mysql来进行研发,当然这会儿我根本不懂spring boot,所以只参与了前端的研发。电子签名系统可能涉及的一些前端知识,主要就我面试中常提到的canvas、图片的处理,格式的转换,电子文件在web中的渲染,性能优化,数据存储,身份验证,双向通信,i18n国际化等知识。相对于第一个项目,这个项目中我学到的更多的是,如何自主的找自己需要的插件,如何高效的查阅技术文档进行使用,如何快速完成需求迭代,如何快速根据线上反馈的问题进行定位和修复等。
除此之外,自己在这两个项目之外的业余时间,也有做过一些小项目。比如做做游戏,小的后台管理系统这种,在这儿就不展开说了。可惜的是,我还没做自己的博客,以后补(如果入职之后有时间的话)~
四. 我有没有实习经历?
如前面经历所说,大四期间都在准备考研,所以没去实习。
研究生阶段,主要还是在老师公司帮忙做项目,名义上没有出去实习过。