# 笃行

转专业之后大二的生活，想来也是丰富多彩的。

## 实验室

说起来，真正和计科院有关的事情还得追溯到大一下学期，转专业成功后的那段期末。那时凑巧刚加入计科院就错过了大一下学期的第一轮实验室招新，好在赶上了第二轮补招的实验室招新，后来简单做了一下面试题，就直接进入了实验室学习。大一的那一整个暑假我都在实验室度过，现在想来也是一段很有趣的经历。

计科院的实验室还是很多的，主要是人工智能相关的实验室，其中做 NLP 的比较多，但我个人所了解的实验室并不多，加入的也不是人工智能偏向的实验室。我~~当前~~之前所在的实验室是 SKLCC，主要偏向于物联网应用，除此之外做网页的任务也有，实际上计科院的 csteaching 平台主要就是我们实验室维护的，想玩 AI 也有相关的项目，也比较欢迎大家加入。

现在回想起来，大一之后的那个暑假我主要在实验室里跟着大二的学长负责打杂。先是辅助实验室已有的一个物联网项目，我当时写了一个简单的给流水线物料标二维码的系统。当时也确实什么都不会，SQL 都没学过，一切也是从零开始，边学边做，倒也算是做得有些样子。学校里参与的这些项目，其实如果不涉及太过复杂的 AI 处理，主要任务量都集中在前端，毕竟这些项目大多数都复杂度有限，后端的东西一会儿就能弄完。因此虽然说当时承接的二维码系统算是一个后端任务，其实我主要还是在用 PyQt 写一个二维码工具，写的主要是图形界面。

后来二维码这块东西算是结束了，随便摆了几天，去老师那里接了个新任务，去做一个真正的物联网项目。起初是跟着几个研究生去做一个简易的传感器监测程序，说实话除了物理层面的对接上有些困难，整体还算简单。做这个小项目的原因也挺草率的，就是由于实验室平时用的物联网平台收费太高，接个外部数据库还要额外花钱，感觉实验室里这么简单的功能不需要搞这么复杂的平台，干脆自己写点小程序得了。后来小程序做完了，老师觉得还不错，就打算让我接着做下去，做一套比较完整的物联网平台。

整套平台的基本制作过程花了整个大二上学期。说实话，这主要是由于大二上学期我比较摆烂的原因，主要的工作实际上就是那个暑假做完的，大二上学期做的倒算不上很多，就是大致完善了一下整个平台。

大致是在大二上学期末，整个系统大致有个雏形了。然后老师想到，能不能做一个 3D 界面的传感器监控平台。我感到这是一个很有趣的突破点，但对当时的我而言，这仍是一个挑战。我找了许久，感到 JS 的 WebGL 技术可以对我产生一些帮助。我很快购买了《Three.js 开发指南》看了起来。不过这本书由于版本比较老，实际应用的过程中我还是踩了不少坑才跑起来的，这就不提了。如果大家以后遇到 JS 甚至 WebGL 有关的问题也可以来问我，现在我勉强算是比较精通了。

假期摆烂是常态。大二上学期末由于疫情原因，学院比较建议大家都回家，不要留校，我们实验室也响应号召让大家都回去了。一回到家那彻底完了，摆烂基因突然但不意外地发作，整个寒假几乎完全忘了要做项目这回事。后来一直推迟开学更是狂喜，摆烂时间又延长了，真是太快乐啦。

然而时间是不等人的，很快比赛的正式通知就下发了。前面忘了提，做这项目的目的就是为了参加比赛，混个什么奖，然后去看看能不能保研。然后整个过程真是非常极限，我在两个星期内将一个半残废不能拿出来看的项目增加了两倍多的代码，还顺带着写完了开发文档，各种材料，还录了个演示视频。于是参加了计算机设计大赛的校赛。幸好紧急情况下效率增加 300%是我的个人天赋，校赛混了个还不错的成绩，成功上推到省赛。当然这也和上推省赛有 6 个名额，物联网分类只有 5 个队伍报名有关系（）

后面留给省赛和国赛的准备时间都很紧，也都很极限。现在国赛的材料算是交上去了，能不能进决赛，就看运气了。

有人看到这里可能疑惑了，这项目就我一个人做吗？当然不是。但整个项目 95%都是我一个人做的，队友添的乱比做的贡献多，所以我不想提。大家以后做项目一定要找好队友啊！不要让人白嫖你自己的成果，结果自己还累得半死。如果遇到摆烂队友，一定要时刻去督促队友把该学的学了，然后每隔两三天就要去检查一下队友那边的成果，免得花了半年啥都没做出来，那就完蛋了。最好一开始就上 Github，发现队友一个星期没有 commit 就去问问咋回事。救急真的比自己重写一遍还累，大家一定要掌握好合作的诀窍。如果队友摆烂到没救了，赶快把人踢走，摆烂人起到的效果是负数，一个人做都比跟着摆烂队友好，切记。

队友摆烂的直接结果就是——我感觉自己往全栈的方向发展得越来越厉害了。感觉救前端直接把自己救成了前端程序员，大半时间都在重写前端代码。本来我只用过 React，结果整个过程下来我用 Vue 比用 React 还熟练了，太怪了。

## 阅读

虽然我说是大二上的那个寒假在摆烂，但我其实没有完全摆烂，还是看了点书的，虽然算不上很多。

我没有什么特别的爱好，为数不多的爱好是买书。当然买了看不看，就是另一回事了。主要是计算机类的书，有时候看腻了，就去买本文学哲学领域的书看看。我其实不算是个喜欢阅读的人，相比起读正经书我更喜欢看网络小说和刷 b 站度过余生。但碎片化的信息总有一个接收阈值，当达到这一阈值后，再刷下去就索然无味了，于是就得开始看点正经书了。

老实说，整个寒假里真正看完的书应该也就五六本的样子，看了一半就扔一边的书倒是数都数不过来。整个寒假虽然多数时间还是在摆烂中浪费，但抽出点空余时间，也确实看了点东西。寒假主要看的前端的东西，主要是自己一直在后端这块工作，而又因为一些事情需要用到前端，于是就顺带着看了点，没想到一连看了好几本。说起来我真得感谢我寒假认真地看了这么好几本书，要不然我后面整个项目没法去救前端就整个垮掉了。

看书自学倒也是个循序渐进的过程。初识一个领域，有些大部头是必须要啃的，开始读着很慢也正常。后来读得多些了，就感到看到的书中内容大多重复，跳着看也就很快读完了。一开始读英文的大部头也是如此，开始看着累，后来习惯了发现也就翻来覆去几个词，顶多有些作者个人特色强点，喜欢用些生僻词，但同一个作者能用到的那些词语也很有限，读个一两章也就熟悉了。

有人可能会问读书是否比看视频学习更好，我倒不这么认为。实际上我觉得只要能看进去，看视频的学习效果比读书更好。但读书的好处是实际耗时短（没错，是“短”，一套七八十个小时的视频每天看两小时得看一个多月，而同样的内容看书两个星期就能看完，前提是你已经比较习惯专业书籍的阅读节奏了），而且对我而言比较容易掌握节奏。每天看上一点，遇到不懂的地方就反复去翻，体验是比反复看视频的同一个片段好上一些，也少点喧嚣。但还是那句话，我从不认为看书比看视频更好，习惯哪种学习方式就用哪种，无所谓，也没有什么成为大佬非得读上几本《算法导论》《CSAPP》《SICP》这种说法，这就是纯装逼。

具体书单推荐就不写在这边了，指南后面也有推荐书单，感兴趣可以参考一下。
