写于大二下的暑假

还是老规矩,半年做一次总结。这学期的总结有点姗姗来迟,毕竟以前都是在 6 月份就写完了。原因嘛…最近在做小程序的项目,所以一直没空写东西啊啊啊。不过项目还剩下一点东西就可以收尾了,所以也是时候把总结给写了。这篇文章主要聊聊这学期发生的一些事情,学习上的,网络上的,以及我在下一阶段的学习目标。

聊聊学校和课程

在三水的最后一学期没了

大家都知道的,这学期碰上了疫情,只能在家上网课了。其实在哪里上课都没差的,毕竟不是高中生了,不需要时时刻刻有人去督促,只是这个时间点…刚好赶上了在三水的最后一个学期,着实让人感到遗憾。虽然学校地理位置偏僻,人烟罕至(误),但我很喜欢学校的氛围,在这里能够静下心来去思考和学习。如果让我说学校最喜欢的一个地方,应该是图书馆前的长椅。学习累了在长椅上坐一下,看着眼前一片平静的湖水,听着耳畔传来的鸭叫声,真的,再焦躁的心情也会慢慢变得平和。

第一次进图书馆我记得是军训的时候。其实我也忘了明明是军训为什么还能去图书馆了哈哈哈,只记得那是一个午后,随手拿了一本书,找个靠窗的位置就坐下来看了。从那之后到大二,记不清去了多少回图书馆,反正是有空就去,准备期末考试的时候,基本除了吃饭睡觉,都待在图书馆了,没有其他原因,仅仅是真的喜欢这个地方。图书馆的人也一直都很多,印象中只有碰上长假期,人才会变得很少。

当然,我也一直喜欢坐在靠窗的位置,有风吹过的时候,很舒服。

水课变少,专业课变多

这学期基本没啥水课,都是各种专业课:操作系统、数据库、编译原理 … ,说实话,哪个都不简单。

说是网课,实际上基本是自学为主。光靠课堂上老师讲的内容也根本不够,更何况有些老师提供的网课视频就是照着 ppt 读稿,没啥意思,所以重要的还是自己课后得去查漏补缺,真正理解某个知识点。这学期大概写了十来篇笔记,都是和课程相关的,逐渐喜欢上了这种电子笔记的形式,从呈现方式和后期修改来说,都是手写笔记比不了的。其实也多亏了网课这样的形式,给了我很多充足的时间,如果是线下课程,基本是没空写笔记的。

编译原理算是我比较喜欢的课程,很多概念之前在学习前端的时候早有耳闻,但一直没有系统地了解,所以这次算是带着疑惑和好奇心去学习的,而这样的学习心境也意外地对我有非常大的帮助。编译原理本身很偏底层,而且概念繁多复杂,要在这样的情况下保持学习的欲望,一个要点就在于,抛开自己从来没学过的 Fortan 语言,尝试把编译原理和自己学过的语言联系在一起去理解,这样你会对很多学过的概念有更加本质的理解。比如在 JavaScript 中就有作用域链查找这个概念,而它实际上正是语义分析中符号表查找这个底层行为的高级抽象。

这学期还有一个数据结构课程设计的作业,用 C++ 做了一个表达式求值的程序。类 C 的语言真心无爱 … 不过没办法,也只能用这个写了。思路不算很难,但是得做测试和写论文报告(算上源代码大概 2 万字),这就比较烦了。好在最后顺利完成了,拿了 92 分,还是美滋滋的 ← ←

最后就是考试成绩。前几天成绩出来了,这学期的绩点大概是 4.0,还算可以(可能是网课,评比没有线下考试那么严格)。不过学校主要还是看一学年的,由于上学期的绩点比较低(有一门课险些挂科),所以结合后也就只有 3.5 了。

终于把素拓分修完了

是的,终于把素拓分修(水)完了。虽然这东西没啥用,不过不修完没法毕业呀。疫情期间各种素拓活动都是线上的,不像以前一样还得提前抢位置、听讲座,于是马上开启了“疯狂蹭分”模式,终于搞定,以后不用再管这个东西了。

课选上了,但是 …

第一轮选课的时候掉了两门专业课,为了给专业课腾位置,只好把很多好不容易选上的课给退了,不过最后运气还算不错,退掉的课又全部选中了(欧皇附体,实锤了)。

唯一让人不舒服的就是专业选修的安排了,清一色的都是机器学习、人工智能,从可选的课程数量上来说比隔壁计算机少了 10 门,而且虽然说是选修,但是谁不想早点修完学分呢?所以当然是得选的,到了最后,所谓的选修也基本和必修没差了。让我感到困惑的是,这些课程并不是本科适合修读的,而且大部分人毕业后也根本不会从事这些方向的工作,学校硬性安排这样的课程,说实话,很愚蠢,简直是在浪费我们的宝贵时间。但是既然选了,也只能硬着头皮学了,当然,我决不可能把重心放在这些东西上。

技术写作一直在坚持

公众号(@漫游前端世界)是去年 10 月份开通的,由于开通时间太晚,没有留言功能了,这点比较可惜。

去年公众号只发了一篇文章,之后就没有打理了,这学期决定把之前的博客慢慢迁移过来。截止到目前,公众号大概是发了 43 篇文章,这期间也做了一些宣传工作,粉丝数量顺利达到了 100+ 人。虽然和那些知名公众号相比,这个数量不高,不过“万丈高楼平地起”,所有的东西都是慢慢做起来的,要学会耐得住性子。

当然,熟悉我的读者也知道,我的公众号基本是不发转载的(目前只转了一篇)。其实我完全可以向别人多要几篇转载,不用自己辛辛苦苦去写,复制粘贴也能提高文章的点击率,但东西始终是别人的,拿别人的东西喂饱自己,我不喜欢这种方式。总之,至少在很长的一个阶段里,我可以向读者保证:

我的公众号会坚持以原创和翻译为主,不能保证每一篇文章都能带给你收获,但可以告诉你的是,每一篇文章我都是注入时间和精力去完成的,花上一个下午或者一个晚上去写一篇文章,反复修改,这很正常。

最后是这学期的文章汇总,我就直接按照在这个博客网站上发的数量统计了。截止到目前为止,这学期大概是写了 34 篇博客:

还是有几篇技术性没那么强的哈,不过大部分我都是投入很多精力去写的。总的来说,这学期输出的内容比我想象的要多得多,没什么遗憾了,很满意。

新的尝试:第一次发视频

起因是在 b 站发现了一个讲解 Event Loop 的视频,原视频是 JSconf EU 大会上的一个演讲,很有名,各位应该看过。有 up 主做了搬运和翻译,前半部分还挺好,后面明显虎头蛇尾,机翻现象明显。看底下有很多人吐槽,突发奇想,为什么不自己做一个字幕呢?好视频不应该被埋没,于是用 Arctime pro 做了一个中文字幕,过程比想象的繁琐很多,需要反复调整时间轴,非常需要耐心,好在最后效果还是不错的。视频地址在这里:Philip Roberts:到底什么是Event Loop呢?(JSConf EU 2014),如果喜欢的话可以来个一键三连。

游戏:开发者、玩家与角色

今年的《最后生还者2》对玩家来说着实是一个不小的打击,我很喜欢的游戏 up 主纯黑,也因为这件事而直接放弃制作攻略视频。《最后生还者2》可吐槽的点太多了,但作为一位单纯看剧情的旁观者,我想聊一聊关于开发者、玩家与角色的事情。

在《最后生还者2》被全网喷之后不久,我接触到了一款田园风格的休闲游戏《波西亚时光》,在了解游戏剧情的过程中,偶然看到了游研社发的这篇文章:金吉尔该不该死。《最后生还者2》和《波西亚时光》,一款是末世题材游戏,一款是休闲养老游戏,怎么想都是八杆子打不着的关系对吧?但是你可以阅读一下这篇文章,你会发现,一个一样的问题发生在了两款看似毫无干系的游戏上。

“所有的猜测都随着游戏制作组一位成员的发言而结束了。这段剧情的设计者之一发帖回复玩家说,这段剧情来源于她因病去世的一位亲戚;她指出,游戏并没有设计其他的结局,希望玩家释然地接受这一切”

和《最后生还者2》类似的事情,恰恰也在《波西亚时光》发生过。只不过后者并没有近似《最后生还者2》那样充满更加激烈和几乎不可调和的争议,并且最终游戏开发者也选择了向玩家“妥协”,将这块剧情回炉重造。

诚然,作为游戏开发者来说,他绝对有权从自己的实际生活体验中获得灵感,并在游戏中灌输自己的理念和感悟,但当涉及到重要角色的生老病死时,这个过程则必须要比以往更加谨慎。当对一款游戏足够投入的时候,我们实际上是会对角色产生真情实感的:这并不是调侃,我永远也忘不了在玩到《刺客信条:黑旗》结局的时候,回望时人已不在的情景,以及主角手里握着的那朵花。这种情感虽不是建立在三次元世界,但却特别清晰和真切。

回到问题来,重要角色是不是一定不能死?显然不是,就连主角也未必总是有神灵护体。但是游戏毕竟是艺术品,就和电影一样,所谓的死必须经过合理的铺垫和有预示的安排,不能让玩家觉得草草了事,突兀感明显。打个比方:前天晚上还和角色一起畅谈未来,第二天角色直接莫名暴毙了,这太奇怪、太不合理,难道角色就只是开发者用于加快游戏剧情节奏的工具人吗?这是对玩家的不尊重。

玩游戏的目的,对于大部分人来说都是为了获得一种足够愉快的体验,玩家可能钟爱冒险类游戏,模拟经营类游戏,甚至是恐怖游戏,但核心基本都在于“快乐”和“满足”。评论里有句话说得很对,“不快乐的事情在现实生活去体验就好了,为何要强加到游戏中?”

确实是如此啊。现实生活已经有这么多烦恼的事情了,玩游戏则是缓和情绪的方案,宣泄情绪的入口,如果在游戏中还要再一次体验各种违和的、不经妥善安排和铺垫的悲惨经历,那么游戏真的丧失意义了。作为一位开发者,最不应该做的就是,光凭自己的想象认为玩家能够与你承担一样的悲痛,并期待他们在未来的某一天可以对今天一切的悲伤释然。

谈一谈关于互联网的一些事情:

记一次网络勒索事件

虽然不是当事人,但这学期也算是经历了一回网络勒索事件,详情可以看这篇文章。互联网什么妖魔鬼怪都有,大家还是得注意保护自己的隐私,避免陷入不必要的麻烦。

对线上交流的认知

之前偶然看到了 公众号@沙丘研究所 发的一篇文章:中文互联网中“讨论”的消亡,读来真的是感觉一针见血,戳到中国互联网现状的要害了。后来报名参加了公众号开的一次线上沙龙,沙龙请到了方可成老师和其他人,本身还是围绕公共领域讨论的话题展开的,不过针对线上交流这件事,我却发现了一些有意思的事情。

通常的观点可能会认为,面对面交流更加能够促进信息传播和情感互动;但其实在非面对面交流的情况下,反而有时候会因为身份信息的隐蔽和场景的无限制化而比平时更容易发声,从而更容易传达额外的信息。我在想,如果这次是一场线下讨论,虽然每个人依然有机会在现场举手提问,与主持人进行交流,但是听众与听众之间的交流则会明显受到空间和人际关系的限制。因为我们相隔很远,因为我们并不认识,即便有相同的观点,也难以实时交流。
但是在线上讨论的情况下,这种困难被大大降低了,就交流形式而言,每个人的发声是面向所有成员的,而所有成员也都可以对他做出回复,一对一交流变成了多对多交流,线性交流变成了网状交流;其次,就交流内容而言,由于彼此素未谋面,我们可以相对更加“大胆地”提出自己的看法,甚至产生观点的碰撞。这么一想,似乎线上的我们会更加“坦诚”,至少线上并不一定是 virtual 的,从某种角度来说,它可以很真实。

再联系到正在上的网课,会发现呢,其实也是一样的现象。本来以为线上授课,积极性会大打折扣,不过经过观察发现,大家反而比平常积极了很多。这同样得益于互联网所带来的“网状交流”,如果是在线下的课堂,其实永远只有前排的学生会和老师进行互动,也只有前排的声音可以被听见,这是物理空间的限制,但互联网打破了这层壁垒,让每个人的声音都可以被听见。

回复可见是一个死局

既然说到了互联网,那么可以再聊聊回复可见这件事。最初是看到了这篇文章:国内互不联网公司的调性,一次性说完好了,大部分还是说到点上了,不过关于回复可见这一点,我不是很同意楼主的看法。

楼主是从用户的角度出发进行评论的,那么我尽量从用户和发布者的角度去谈这个问题,毕竟两个身份我都经历过。关于回复可见这个设定的合理性,我在以前管理游戏论坛的时候就曾经观察和思考过,当时和现在,我对这个设定的看法都是一样的:回复可见是一个死局。

首先,我们为什么需要回复可见?如果楼主有过管理论坛的经验,就不会问这个问题了。显而易见的事实就是,伸手党的数量远远大于愿意给予真实反馈的用户的数量。如果不设置回复可见,看起来对用户的门槛确实降低了,大家的沟通不再受阻,但也让用户“给予反馈”的这个行为变成非必要的。按照大部分用户的尿性,能少回复就少回复,不回复直接拿资源走人更是再好不过,而这就会造成资源发布者无法获得足够数量的反馈,我们可以想想后果是什么。别看只是简简单单的回复,有的发布者需要的正是这个东西,就好像你辛辛苦苦写了一篇文章,结果大家吸收完文章精华就走人了,一个评论也没留下,在这种情况下你还能说回复可有可无吗?

那你也许会说,设置回复可见不就完了?所以你看,又绕回来了,变成了楼主说的情况。虽然反馈量上来了,但大水漫灌,多数是无意义回复,因为大家想的都是“拿个资源还要回复,太麻烦了,随便打个666意思意思就好了”。发布者虽然获得了大量反馈,但有将近一半的反馈都是无意义的。而且更可怕的是,这种无意义回复会反噬真正的回复,让它们得不到回应。因为对于发布者来说,从大量回复中筛选出真正有意义的回复,这个成本太高了,那么干脆一律不管算了。

最后的结论就是,这是一个死循环,也是传统论坛的通病,无解。不可否认依然会有你来我往的高质量互动,但数量屈指可数,约等于 0。你要带动访问量,没问题;但是要带动高质量的讨论,抱歉,很难。所以,从这点来说还真不能怪别人设置回复可见。有时候我们在讨论某个设定是否合理的时候,也不应该只从我们用户本身出发去考虑问题,用户有用户的想法,开发者有开发者的想法,有时候要学会站在双方的立场去思考问题。

下一阶段的计划

给自己定几个规则

其它琐碎的事情就不一一列举啦,其实我的总结总是不太像总结,记叙文写着写着就变成议论文了(开个玩笑)。不管怎么样,我其实更想借着这个总结把自己的一些想法给记录下来,一方面,我不想让这些东西和时间一样消逝,另一方面,人的想法总会发生变化,我想知道以后再看这些的时候,自己又会产生什么想法。最后的话想聊聊下一阶段,也就是下半年的学习计划。

其实下学期的课程非常多,应该是整个大学期间最多的:

有不少很无聊的水课,不说了,看看名字就知道。虽然如此,前端的学习还是不能停下来,那么怎么挤出时间呢?我希望在这里给自己定下一些规则:

  • 第一,调整好作息,其实我在学校作息还可以,基本没有熬夜和赖床的毛病(要感谢学校早读早练的规定,虽然很烦,但是有利于自我约束),所以下学期基本也保持这个状态。不熬夜,早起。早上可以利用的时间还是不少的。
  • 第二,坚持制订计划。计划总是会有变化,要学会接受这个事实,但是不应该由于懒惰而不去贯彻
  • 第三,多去图书馆。我基本不可能在宿舍这种地方学习的,学习还是去教学楼或者图书馆比较合适。“多”没有一个明显的界限,反正基本是有空就去,尤其是周五到周末这段时间。我给自己定的目标是,不仅要去得频繁,而且要去得早,毕竟广州校区那边的图书馆人满为患,要为抢位置提前做好准备了。
夯实基础,继续前进

下面的计划基本是针对下学期的,但如果暑假有时间,当然提前完成是最好的。

  • 小程序:

    • 专注看一下原理层面的东西
    • 文档 api,至少要过一遍,留个印象。业务场景经常涉及到的东西(授权登录等)也要了解一下
  • Vue:

    • 文档完整过一遍
    • 暑假+下学期的时间,撸一个阅读类的app
  • 阅读:

    • 《深入解析CSS》:尽量暑假读完吧,不要拖到下学期了
    • 《JavaScript 核心原理解析》:拖得太久了,不太妙
    • 《你不知道的JavaScript》三卷:之前读过一卷,但没细读,重新来过吧
    • 《JavaScript 20年》:当作课外书去读就好,其实对这段历史还是蛮感兴趣的
    • 《Vue项目构建与开发入门》《Vuejs组件精讲》,两本掘金小册看一下

    后面有时间的话再看一下 webpack 和浏览器相关的东西,到时候可以再做补充。

    总之,暑假做的事情越多,下学期相对就越轻松,这几天有点怠惰了,需要马上调整过来。至少小程序项目的收尾,必须在8月份之前完成,不要拖延了。事情挺多的,希望人没事 ← ←。