😥纪念第一次线上合作项目由踌躇满志到暴死
总结这一个多月以来坎坷的前端学习之路
7.21-8.27,刚好是一个月多几天的样子,这三十多天见证了我们的项目由一开始的踌躇满志到现在的暴死,无人问津
⛓前言
来卷前端其实契机非常巧妙,从我决定转行学习计算机开始,我其实学的一直都算是后端方向。从C到C++,然后是熟悉标准库,把数据结构与算法自学一遍,尽可能地自己不看书复现一遍…但是由于我的本专业——土木,注定不能给我加分,而我又不认识学计算机的大牛们,因此我希望自己能做一些项目出来,将来在简历上也是一个加分的项目。正巧我不知道从哪里看到的字节青训营这种可以跟队友组队做项目的训练营,于是我很快就去想办法掌握了它的第一资讯,在暑假专场报名开始的第一天我就想办法加入了进去。遗憾的是,这次青训营字节没开后端方向,只有前端,IOS和大数据的方向,前端我好歹是之前了解过一点HTML和CSS,IOS和大数据真就算是要从零开始了,于是我只好报名了前端方向的训练营。
📃测验
青训会针对报名的人做一个简单的区分,而区分的大致方式,就是让报名的所有人去做试卷,然后根据结果把报名者分到提高班或基础班。提高班的同学可以听直播课程,与讲师互动;而基础班的同学就只能听录播的课程,也无法与讲师互动。我只了解过一点HTML和CSS,JS几乎没有接触过,因此这样去做试卷相当于是两眼一抹黑。我只记得考了很多JS相关的选择题,很多语法结构我那时都是没有了解过的,因此做题也只能靠猜。问答题考的是对DOM的理解,当时我连DOM是什么都不知道,就更别提理解了。当然现在我也谈不上理解,顶多是能把概念说出来,知道它是文档对象模型,可以操作文档结构罢了。唯一谈得上亮点的是编程题,由于编程题可以用C++编程,因此我算是占了很大便宜,而且考的也不是很难,就是LeetCode初级的难度。甚至字符串匹配我直接用了C++原生的方法,不过就是没有全部用例都通过就是了。因此本人算是毫无悬念地进入了基础班。
🎨组队
进入基础班后,第一要务就变成了组队。本以为进入基础班的都是只会一点点的萌新或者是了解一点HTML或者CSS的编程小白,没想到讨论群里面要么是精通Vue的大佬,要么是后端部署以及服务器架设的高手。我见过的招募最低条件都是会三件套(HTML、CSS和JavaScript),而我一个JS才开始的人怎么都算不合格。这个时候机缘巧合我加上一个大佬,表示我可以慢慢学,大佬又是高校老师又是带着我们学习,让我燃起了学习的信心,我一度以为项目经历算是有着落了。

字节青训推荐的项目就只有三个:前端监控项目、low-code平台和仿掘金,前两个都是我之前没听说过的东西,搭网站虽说比较繁琐,其实用原生三件套也能搞定所有的东西,但是前两个项目可能就要牵扯到很多未知领域和很多我未曾学过的知识了。但是大佬笃定了要搞前端监控项目,说这是“项目驱动学习最好的例子”,希望我们能一起坚持下去。

🎓学习
一开始队内气氛真的很不错,大家互相鼓励、互相信任,都相信最后能把项目完成,彼此之间能建立深厚的友谊。

大家在群里面讨论问题

对token概念的强调

我的第一次push,也是第一个小案例:To-DoList

我算是群里面掌握前端技术栈最少的同学了,必须马上赶上他们,因此我算是开始了马不停蹄的学习。
事实证明一开始就去啃《JavaScript高级编程技术》是不太明智的,很多内容写的很抽象,它更像一本字典。而且习惯JS这种弱类型的语言也花了我一定时间,还有DOM、事件等等各种各样需要学习的东西。ES6虽然算是语法糖,但是新增的东西很多很多,也有很多东西确实很抽象,像promise、模块化、箭头函数、const和let等等这些东西又花了一定的时间去学习。
我算是尽自己所能加快学习步伐,想尽快学习到Vue,为开发尽一份力。但是到Vue之前还有很多山坡要爬,还有Nodejs、AJAX、axios、模块化等等需要去学。到真正开始Vue的学习,我不知道已经过了多少天了,但是我算是坚持了下来。Vue的学习,我看的是尚硅谷的网课,足足六七十小时的课,足以体现其内容的庞大。我原先以为Vue就是一个开发框架,需要学习成本,但也能很快掌握。但是事实证明我错了,学习Vue就像学习一门新的编程语言一样,而且Vue还有复杂而庞大的生态需要学习,作为初学者如我,靠自己看文档是无法掌握这一技术的。
一个多月说长不长,说短不短,我从一个DOM是啥都不知道的门外汉到现在基本熟悉Vue2脚手架开发流程,会编写组件以及看懂大佬的部分代码,已经算是让我自己比较满意了,我热切地希望投入到开发中去,去为代码的完善做出自己的贡献。
🎭变故
越是到关键时刻越容易掉链子。我们的大佬到了项目离提交日期越来越近之时,似乎也变得越来越忙了,一开始只是忙得没时间回复我们,后来主分支的架构也很久没有更新了,也很久没有告诉我们技术栈需求是什么,更没有人问我们进度如何。于是后来群里面的气氛变得越来越僵硬,以至于到了后来经常好几天没有人出来说一句话。现在回想起当时,也许那个时候很多人就已经放弃了吧。
到了离项目提交仅存几天时,大佬才想起来要给我们讲一讲项目代码和流程,但是这个时候已经太晚了。晚上他开了一个视频会议,共享他的屏幕,但他不能说话,只能在word文档上面打字讲项目详情或者是回复我们。而那个时候是周五的晚上九点,看来大佬正在遭受资本家的无情剥削,这让我是否要淌入互联网这趟浑水第一次有了一些迟疑。但是想了想本专业毕业后在工地上打灰007的惨状,我的迟疑又马上被打消了。
其实这番话一出来,大家心里都明白,项目应该是搁浅了

大佬最后还是勉强把任务划分了下来,让三个人从空框架从零开始做前端监控,且不说复杂的埋点、image beacon这些我找文档都不好找的技术要如何在三天内速成,前后端交互的接口也是一个也没有,大佬的意思似乎是用静态数据(其实就是假数据)做一个壳子出来算了。剩下的三个人则负责写项目的文档和页面结构和样式美化,这任务相比渲染数据似乎显得有一点九牛一毛了。
结果自然是负责数据可视化和埋点的三个同学都罢工了,他们罢工的是多么彻底,就像人间蒸发了一般,再也联系不上。
没办法,最后只好由队长和我去想办法把文档写出来,我又去现看echarts的文档,利用所谓的静态数据去渲染出来页面,好看起来有那么一个访客数据的样子,起码说不定真的能把壳子交上去。又是忙活了一晚上和一上午,我写了PV/UV的数据可视化,队长负责整合CSS和所有的分支,最后我想办法又是瞎编又是乱造,总算把文档填完了。但最后我们意识到一个严重的问题:我们没服务器去部署这个所谓的前端监控平台,这下算是彻底崩溃了。我们编再多都没用,没有实际部署和效果,我们根本就提交不上项目,更别说得到认可了。而此时打包票保证后端实现和服务器部署的大佬已经几天联系不上了,因此项目可以算是彻底GG了。
两个试图挽回的无奈的人

📋总结
自然,这次青训虽然没能让我得到梦寐以求的项目经历,还是让我以比较高的学习效率在暑假学到了很多东西。例如Vue2的组件化编程、JS的基本使用、axios…这些都必然成为我将来职业化的垫脚石之一。组队经历虽然失败,还是让我学到了不少道理,也感受到了几天不错的队内氛围,希望以后入职后的公司氛围能有我们一开始那几天的那么友好啊。