在所有开始之前,写写停停一个多月,还是觉得有好多东西没写完的H5游戏项目总结,总算写到了可以见人的地步,为了方便阅读(主要是字看着一多就写不下去…),也从一篇分成了好几篇。
第一次这么系统地写项目总结,做叮咚帮的时候就一直想写,但是当时事情实在太多了,睡觉都没什么时间,后面写的一些小项目又确实没什么技术含量,暑假写完国赛项目之后也想写来着,专门写写技术,不是文档上交上去吹的那一堆,但是紧跟着就各种秋招笔试面试了,不过反正后面写毕设论文也还是要写的。
二零一七年九月五日到二零一八年一月十六日,在网易游戏呆了一百三十四天,邮箱里日报数了数没数清,少说也上百篇,有单篇一千二三百字的,也有四五句话的,本来想可以一篇篇整理发出来,总是觉得太碎片了,还是需要整理一下。在项目工期比较紧的情况下,日报确实是一个不错的方式,不仅可以有效地控制进度,对程序员自身来说,来不及系统性的总结,可以每天记录下今天所做的事情、明天的计划、遇到的问题和所学到的东西,也方便之后进行回忆总结。
本系列是对我短暂的一百多天H5游戏编程的一个总结,从无到有,从零到一,不管是对项目而言,还是对于我自身而言。
目录如下:
2017年,真的很平淡的一年,没有之前那么忙,没有去很多地方,看很多风景见很多人,没有看很多演唱会,没有参加很多活动,没有写很多代码,好像一年做的事情都没有以前一两个月多,但是终于让生活慢下来,终于有时间做一点自己想做的事情,学一点想学的东西。
壹月
一月还能干什么?复习啊!1月1日花了一整天写完了网易云课堂微专业大作业,部署完学校官微新年要上线的应用,然后沉迷学习(和微博)不可自拔。这可能是整个大学我们寝室最疯狂的一次备考,凌晨两三点睡早上六点起,其实我确实没几门考试,但是在学霸寝室的氛围和好奇心的驱使下看完了一整本计算机网络记了整整三十页A4纸的笔记以及转发了无数条锦鲤。期末考试过后叮咚帮的重构和新功能的开发进行了一段时间,还有实验室一个项目bug的修复,印象中好像整个过年都在改这一堆bug。另外之前实验室老师也给报了网易云课堂java web微专业,Spring课程考试没来得及提交(其实是临近提交截止前一两分钟系统就提示不让提交了,这个bug后来我当了助教发现可以稳定重现。。。但是当时助教大大死活不让我补交),以为肯定通不过赶不上做这期的最后大作业了,后来竟然没有考试分数的情况下61.98分飘过……所以整个春节,修bug+写一个电商项目的java后台,对了这个项目就是现在今年秋招java开发工程师的新人培训项目。
贰月
写完在学校官微的最后一个活动页,觉得自己这辈子不会再写动画了,找不到项目原地址了,找到了半成品时候录的一个gif
其实本来也没打算再写的,但是之前没写过这样子的动画,所以玩一下。
交接完在官微的工作,突然有些感慨,从当初只想当一个懂一点代码的运营,到后来代码越写越多,到突然要管理整个工作室,对外撕需求,对内撕代码,顺带偶尔画画原型图。好不容易把所有的事情理顺的时候,发现好像不是我想要的生活。好像太少太少时间真正用于自己写代码了,可是我确实什么都不懂啊。好像确实不喜欢也不适合当一个管理者,那就把它交给可以真正管理它的人。仍然觉得这是个很好的团队,有除了我之外都很有钱的历届老大,有很厉害的UI设计,有真正可以聊代码的学长学姐学弟学妹,有我们谈论过的未来,有1223的火锅,有几乎大学里所有的开心。好了回忆over。
二月末开学后发现自己终于结束了不是在上课就是在上课路上或者在翘课路上的生活,闲到发慌,买了几本砖头厚的书正式开始学习。第二次看《JavaScript高级程序设计》,第一次刷《算法导论》,偶尔改改实验室项目的bug,开始了悠闲到等同于度假的生活。
叁月
坚持了一段时间跑步,每天5公里左右,放弃是因为杭州雨季实在太长了(对,就是这个原因!),写了人生中第一份简历,投了网易和阿里,幸运是都通过笔试进入了面试(虽然现在还是觉得怎么算都及不了格),不幸是对能进入面试这回事确实毫无防备,总之收获了一波面试经验,还有一群来自全国各地确实很厉害的大大们。
肆月
四月看了几本设计模式方面的书,突发奇想开始读JQuery的源码,顺带零星看了一些JQuery组件库的实现,虽然现在不是很流行了,但是其实一些设计还是很精妙的。
伍月
大概是五月,开始担任网易云课堂助教,可能对我来说最有意义的是开始深入思考一些以前从来不会去想的问题,不仅仅是帮一个学员解决一个问题理解一个知识点,而是为什么可以这样解决。另外练就随手甩出一堆文档的技能。
和fish去了厦门,和杭州一样都是随手一拍就是风景的城市,体验了飞机上看闪电的惊喜。
正式离开叮咚帮,整整一年,永远祝福,永远感激。
去见了周柏豪!!!超近啊!唱歌超好听啊!超好看啊!!!
陆月
和婧宁大宝贝去了东极岛,景色超美。
随手投了几家公司的日常实习生,因为7月要打比赛,怕8月份太无聊想去实习。投了恒生、还有家忘了是什么名字但实习工资确实高的公司,面试是都过了,但是恒生因为实习时间对不上,他们要求最迟7月中旬来实习,所以pass,那家公司对技术要求比较低,感觉好像学不到什么还是不停做业务,也pass。但是突然觉得好像面试挺容易的??
柒月
写国赛项目,一个在线学习平台,一个前端+两个后端+一个产品经理,组员都超nice。还是写得挺爽的,试了下vue+PWA,都是第一次使用,可能是原型系统不是正式上线项目的缘故,所以也是怎么大胆怎么来,工期还是比较紧的,后台管理系统+移动端+PC端一个月,后来时间实在来不及了后台管理系统直接用layui搭了个框架让后端用JQuery直接写。虽然结果不是很理想,和去年一样还是三等奖,但是也没多大遗憾的。
捌月
不停的笔试面试。本来做好了准备要投哪家哪家哪家,但是填简历这回事实在是太烦了= =,花了一天填完三家公司简历后终于决定放弃了,投了阿里、网易、网易游戏、滴滴出行、一家做人工智能的创业公司,除了阿里没过笔试(因为笔试的时候已经基本确定offer了就没怎么做,当然认真做我也应该过不了的,我也不知道为什么别人分享的笔试题都那么简单,我的???很懵逼地考了一堆react???算了随缘…),其它基本上都拿到offer,很早之前都很想去网易,所以也没过多选择。
说起来正经校招拿到offer的只有网易,网易游戏是日常实习进去,后来老大给补的校招考试,容后说。滴滴也是,投的日常实习岗。好像当时还没什么危机感,大不了不留的话等春招嘛,就算春招也找不到合适的工作,那也慢慢来嘛人生路还长呢,保持自己在学习的状态就好。但是确实缺乏一些实践经验,因为学前端到现在,写的项目虽然不算少(虽然大多数没什么技术含量),但是很多时候都是我自己一个人瞎研究,没什么bug能测试上线就好,就算使用一些自己觉得比较合理的架构方案,或者新技术,也很多时候是自己觉得要这样用而已,想见见外面的世界,所以迫切想找一家公司体验一下,看看真实公司里是怎么写代码的。
首先是网易互联网笔试,过了等面试。这期间顺手投递了上面四家公司。
第一场面了网易游戏,四面,各种被怼,以为过不了了结果居然过了HR说面试官推荐投校招。第三面是部门老大面的,可是我当时不知道啊,还把他认成了HR,毕竟一上来就跟我谈人生观价值观,然后吹了一通牛逼心想反正你也听不懂,问到产品逻辑的时候,想哇网易HR都这么厉害的嘛!连产品都懂!不过我那么些原型图不是白画的呀,那么些活动页不是白做的呀~后来被问到函数节流问题(原问题是一个十万级数据的表格,想一次性显示出来,可以直接ctrl+f搜索到的那种,但是不让用户卡死,有什么方法),一下子懵了……我似乎搞错了什么……emmmm……他应该不是HR……意识到这点的时候,已经快接近你还有什么想问我的这个问题了…
因为想了想几场面试表现都不算太好,以为肯定挂了,第二天睡到十一点被HR电话吵醒的时候还以为是诈骗电话,不过这一段暂告一段落。
第二场是那个创业公司,当时投递因为看技术团队有点小厉害,微软+阿里系,本来接到网易游戏实习offer的时候就不打算继续面了,但是那家公司的HR直接邮箱发给了我笔试题,一道是实现一个静态页面,另一道有点意思是实现选中高亮的标注功能,那时候无心准备笔试面试,看着就很想写,晚上7点半收到笔试题,吃了饭8点的时候开始写,写到12点左右感觉差不多了给HR发过去。第二天HR邀面试,我说我已经接到offer了就不去了,HR说你来试试嘛,我一想增加点面试经验也好,就去了,同天同地正好面滴滴。去了继续做了一套笔试题,HTML+CSS+JavaScript+网络协议+算法+react,除了react部分全靠蒙其它感觉应该还可以?然后两轮技术面一面HR面就算过了,不考虑这家公司的另两个原因,第一,面试官是当我面改那份很像从网上copy的笔试题的,嗯,根据打印的标准答案对的那种…第二,CTO跟我说了一通业务十分紧张压力之下更容易快速的成长学习等等等等,心里一想,谁还没创过业啊,哼……繁忙的业务确实是快速学习的一个方式,但是不停的业务其实是不利于总结和成长的,也会逼迫程序员更关注实现而非代码设计和底层原理。后来看HR发朋友圈这家公司好像融到A轮还是B轮了,还是祝福。
同天面滴滴,一面面试官是一个超好看的小姐姐,问了一些基础问题+一道白板排序算法,二面一个大叔,问了操作系统计算机网络以及大学课本数据结构的绪论说了什么内容还有如何不用椭圆公式实现绕一个椭圆轨迹运动。
激动人心的时刻到了,接下来过了几天面网易互联网,说激动人心,因为我的二面是春招的时候很我聊得很开心然后把我挂掉的二面面试官。一面比较顺利,基础知识,好像没几个问题没答上来,印象中第一题问了DOM树的画法,面试官认为应该要包含属性节点,但是我回去查了下w3c规范,最新的规范里属性已经不当成节点了,虽然很多浏览器还没有实现,见DOM树问题。
二面聊了五分钟??可能还没有???问题一:哎?我是不是面过你啊?……不我真的没给你不通过……问题二:说说这半年干了什么?问题三:说说websocket断线重连?问题四:说说怎么解决websocket时延?好了结束了~我:???面试官:对啊之前都面过了还有什么好问的啊?我:???我等了快一个小时才等到二面???后面继续漫长等待HR面,人生中第一次体会到了十分饥饿的感觉,好不容易等到饭点HR小姐姐带一批人去吃饭又被点名留下等面试结果等到最后。当天面完了回学校直接奔自助火锅店一个人吃到天荒地老。
所有校招面试都告一段落,后面基本上也要实习没时间也没精力再去填简历笔试面试。
玖月
因为网易互联网面试感觉差不多能过,犹豫了很久要不要去网易游戏实习,最后还是去了,不管怎么样都多添一份经历。事实证明这个决定至少现在没有让我太后悔。
所在的部门是职能部门,日常负责各个游戏官网的维护还有活动页的制作,听起来很简单嘛,然而看完了这个部门的组件库和编码规范、历史项目代码,整个实习期间还是一个活动页或官网都没做,上来就是一个游戏,这个游戏暂时完了后又到另一个游戏项目组支援。实际上这也是整个部门第一次接两个游戏项目,一个3D为主,一个2D为主,3D的那个游戏刚开始加我两个前端,一个node,后来加了一个前端;2D游戏就很厉害了,H5端开始完全是一个前端+一个node写的,后来功能越来越多上线急来不及,加上3D游戏那段时间APP端急着上线策划和产品大大没空管我们,所以我们整个组被派到支援2D游戏去了。刚开始说要去开发游戏的时候一度怀疑是我那天面试和老大吹牛吹狠了……
其实去签实习合同前一天收到了包大大的微信说通过面试并且去了他们部门,但是反正已经答应HR了,临时反悔一是怕被终身拉黑,二是既然有这个缘分,总要见识一番。
整个9月和带我的大大一起,熟悉引擎,构建项目,现在想起来应该是在雷火平均下班时间最早的一个月。知乎上有个段子形容得很贴切:
刚工作的时候,加班到八九点就会回家,那个时候路过陆家嘴天桥,看到华丽丽的楼宇霓虹,常常会忍不住感慨“劳资也有今天啊”。
兰后,这种感觉没有持续超过一周,因为后来我就从来没有在这么早的时间下过班。
总体来说,还是学到不少的,游戏编程方面也好,数学物理方面也好,代码设计方面也好,浏览器性能方面也好,具体见前面目录,大致可以总结我2017年9月以后的生活。总会遇上莫名其妙的问题,也总能找到方法解决,很忙碌也很满足的一段时间。
拾月 | 拾壹月
大概是十月,网易游戏校招笔试开始,笔试当天就很犹豫要不要去,去吧考得太好或者太差都有点尴尬,不去吧好像有点可惜。恰好那天有点发烧,加上现场笔试有点远就没去了。然后周一请假,周二开站会被老大问是不是没去笔试,然后扯了张试卷让我在会议室很懵圈地写了一上午三个小时,考了所有大学学过你能想到的课程,这个真不吹,数据结构、算法设计、操作系统、计算机网络、设计模式、C++、Java、概率论、线性代数、微积分、离散数学、智力题、24点(这个最坑了,2 2 2 2,想了好久没想出来,后来查了一下这个是组不成24的)、哪些游戏是网易代理的…前端考了函数柯里化、canvas绘图、实现一个组件还有一些其它的常规问题,所有代码都是手写,仿佛一场,不对,很多场期末考试裸考。
后来老大们阅卷表示虽然你做得不咋地但是我们还是决定要你的,于是我很不厚道地说手头有几份offer需要想一下。
最终选择网易杭研的offer,第一,虽然做游戏很好玩也很有前景但是我确实没那么喜欢写游戏,即使现在仍然觉得很好玩,但是我还是明白自己三十分钟热度的。第二,技术方面的成长吧,我还年轻,不想那么早给自己定位,还是想接触很多新鲜事物的,框架也好,语言也好,概念也好,项目也好。虽然这里也能接触到很多做传统应用接触不到的事物,但是总是觉得少了点探索的热情。
在雷火,整个部门人都很好也很厉害,不管是老大呀,PM呀,一起吃饭的哥哥姐姐呀,测试姐姐呀,合作的UI小姐姐呀。我觉得真的无关谁拒绝谁吧,从来不觉得这份offer不如杭研的,仅仅只是一份选择而已。
另外十月份,课程原因学了点PHP,虽然一个学期没到学校上过课,但作业还是要写的,顺带学了一下。之前维护官微应用的时候线上代码有很多PHP写的,有时候需要修改了解了一点点语法,趁这个机会也还算系统地学了一下,不是很深入,但是后面还是可以深入玩一下的。
拾贰月
上海 CAllStar演唱会!!!
支援UNO项目,学了一下Phaser,撸了几个功能,写了一批动画,最值得一提的是,画了几个icon哈哈哈哈哈。
是这样的,做的几个功能UI都有变动,但是UI稿迟迟没来,其中有一个icon找遍了所有的设计稿都没找到,问编辑小姐姐(相当于产品经理)迟迟没有回应,看着不舒服随手用PS改了一下,后来再问编辑小姐姐,小姐姐说挺好的就用这个吧~然后其实还有好几张图是我P上去的,我想他们应该也是没有看出来的。
游戏美术确实很忙,这里就不得不表扬一下游戏工作室给的设计稿了,让我练就了一手切图修图的神技能,毕竟同一个组件不在一个图层组、各种图层样式特效PS神操作想单独拎出一个图层都难、该合并的不合并不该合并合并过后的只能抠图再切了、特殊字体文字格式化再改文字切图这个只能图章工具+橡皮擦+拉丁字母的相似度了,感觉自己毫无畏惧…
结束!睡觉!后面想到再补充!终于写完了!很开心!
展望2018
2016年对2017是毫无期盼和flag的,只想好好休息一年,之前各种事情熬过太多夜了,身体和心理上都有点透支,2017休息得也差不多了,是时候立点flag了。
- 学好英语-想有点量化标准,暂时还没想好要不要奋斗个考试
- 健身-为了减肥也好,为了身体也好
- CS基础课程:首先大学翘的课太多了,名正言顺翘的,偷偷翘的,遇上过很多讲课很棒的老师,虽然成绩不咋地但是学到了很多想学的东西,也遇上过更多讲课实在听不下去的老师,本来大学就很水,但是还是有颗好好学习的心的,离职期间无聊刷了下中国大学mooc和网易公开课,发现有些课程质量出乎意料地高,现在周末依然持续在刷,还是会坚持吧。当然视频课程永远只是入门最佳,后面想深入了解还是需要看一些书的,这个后续再说。
- github和博客,随缘吧,遇上想写的东西会更新的
我好像确实不擅长计划,还是随缘吧…看多少书写多少代码总结多少文章,反正计划也是赶不上变化的,玩得开心就好~不设上限,设点小下限就好。