2018 年的一些感受

栏目: 编程语言 · 发布时间: 5年前

内容简介:这篇博是上篇博客所说的年终总结,主要是一些思想上的东西。 全文充满私货,无比主观,请选择性阅读,并谨慎传播。这是一个很严肃的话题——我应该在什么样的环境下具有什么样的身份,以及在对应的身份下我我作为一个学生,这对我来说应该是一个再简单不过的问题——首先我根本就不应该想太多这方面的事,和同学搞好关系就是了。 但是我同样也是一个网络上的内容创作者,这就导致我多了很多需要注意的事情。

这篇博是上篇博客所说的年终总结,主要是一些思想上的东西。 全文充满私货,无比主观,请选择性阅读,并谨慎传播。

身份

这是一个很严肃的话题——我应该在什么样的环境下具有什么样的身份,以及在对应的身份下我 应该 怎么表现。

我作为一个学生,这对我来说应该是一个再简单不过的问题——首先我根本就不应该想太多这方面的事,和同学搞好关系就是了。 但是我同样也是一个网络上的内容创作者,这就导致我多了很多需要注意的事情。

我个人接触知乎比较久,大概经验都来自这个网站(仅讨论 2017 年以后的知乎)。 这是一个非常典型的知识变现的智商税收割平台和大量抄袭者的引流来源,在这个网站上你能看到各种为了面子(就是关注,赞同数之类的)而发表哗众取宠言论的人。这部分人的“创作”也就是快手抖音换了个题材、增加了义务教育的知识面的翻版而已(典例:知乎编程组)。这已经总结了很大一部分低质量内容了,我就不再详细说其他的了,毕竟我的博客又不是垃圾堆。

我在小学的时候也有这样的心理,就是靠让自己出糗(或者别人——当然这就已经是一种巨大的罪过了),来博取别人的关注。这是人类的本能,据说婴儿哭就是出于这种心理。 但这样的人把这种习惯带到了网络,而且想必他们也都小学毕业了,体现出一种强烈的市侩感——这说明有很多人,甚至包括一些步入而立之年的人,他们的心理年龄都停留在小孩子阶段。

这也促使我在心中构建出了更完美的只是交流平台的模型——比如,基于严格的邀请制。比如,基于带权限的操作(比如获得 3 个赞同,才能赞同别人。这可以大大地筛选内容的质量,减少垃圾内容被刷流量的现象。知乎这种商业营销网站当然是不可能的了,StackOverflow 的人戾气又太重,我只能把期望寄托在虎哥的网站上。但虎哥天天打游戏、买垃圾桶、买包、写诗,还不修 CI,我基本已经不抱期望)。

当然,这种行为的一个子集,即通过让自己看起来很牛逼来博取别人的注意力的这种稍微看起来性质好一点的行为,还有另一个名字——装逼。

获得别人的认可,是可以给人带来快感的。我自己也十分认可这一点(这也属于我的一个心结,其实是不好的)。

这是前提。

在这个大环境下,我曾经为了吸引别人的注意力,给自己打上各种标签来彰显自己的各方面,比如 Kotlin 布道师,JetBrains 爱好者,高一 Android 开发者云云(从这些标签来看,这是很早以前的我了)。 这给我带来了一定程度上的关注——毕竟我在做和我年龄不符的事情,大部分人在我这个年龄还在打红警,魔兽,看综艺等。就和之前网上大红大紫的那位 00 后 CEO 引起反响的性质一样(在电视节目里一脸嘲讽地说现在的大人拿着很低的工资还整天打王者荣耀那个)——人们出于猎奇心理,开始对我的云卖艺行为进行起哄了,用几句话总结就是“年纪这么小还会编程,真厉害”。

在这样的起哄下,我的关注者变多了,我也开始变得更得意了——在称赞之下,还是很难保持冷静的。可随着我逐渐走入层次更高的圈子时,我发现我只是一个普通的存在。酷安上经验丰富的小于 18 岁的 Android 开发者比比皆是,更有从 GitHub 上抄代码、拼起来变成一个 工具 箱 App 然后借此以各种形式盈利的高中生们(我记得我在酷安见过一个自称女高中生的代码搬运工,不过我觉得多半是男的(毕竟不希望这个世界上存在这么低俗的女性)),他们比我会玩,也比我有人气。 再加上我已经删掉的博客里曾经提到过的一些高中不愉快的经历。 再加上被忽悠进学校 OI 队,被一个 codeForces id 叫 fstqwq 的狗逼(还有几个其他的不怎么在网上混的,还有 loj 现在的维护者,还有个以前写过 Haskell 的(哇,这都什么人啊))完完全全地在算法竞赛上吊打,被教练认可为较低层次的学生后。

这时我开始产生一些思考:我到底厉不厉害?我是不是其实只是一个菜鸡?

这时我大概又走向了一个低谷。 在这个时候,为了练习编程、提高自己,我写了很多代码。已经是黑历史的 FriceEngine(是模仿别人在 Android 上做的类似物。那个人叫我不要拿他大一写的东西去黑他了,我就不说他是 lfkdsk 了),原本只是一个考前复习但是给我带来很多关于 JVM 背后知识的 algo4j,等等。 我也开始把自己网上的自我介绍改成普通的高中生程序员。其实我根本不算程序员,只是一个编程爱好者,兴趣使然。

这时的我,固步自封,把自己局限于一门技术——Java,及其相关的知识(IntelliJ Platform,Kotlin,JNI)上。 然后,自封这个领域的专家。

给我带来重要的转机的,是一个网名叫 SuperSodaSea 的人,他精通(能背标准,记得每个语言特性在三大编译器下的行为,以及标准的规定的那种。总而言之,就是非常强) C++,也会写 Java,曾经是 Minecraft 论坛的版主,以及从那个年代开始就有女朋友了,是人生赢家中的人生赢家。

我认识这个人,是因为我在网上写了些文章讲我的练习项目 FriceEngine 的设计。这个项目让我对面向对象程序设计带来了比较深的理解。那时的我,把这种贴图库称为游戏引擎,还写了“论文”介绍这个项目,还在学校闷声投稿,拿了个二等奖,成为了我高中在学校背着父母老师偷偷编程的资金来源。

中间过程省略不提(毕竟这又不是回忆录,我这么垃圾的人有什么好回忆的),反正就是他在和我讨论网上的身份时(这时我们互相知道对方是 00 后),他说了这么一句话。

我不想用我的年龄标榜我自己。

这句话在一小段时间后给我带来了醍醐灌顶的感觉,因为我还看到了另一个人在知乎写的一个回答,里面大概有这么些内容:

人们一般情况下欣赏一个人,是因为要么这个人在他的成长环境、现状、发展时长下,达到了其他人在同样条件下达不到的境界(上面提到的所有的会编程的人,包括知乎编程组那个);要么这个人在绝对意义上就很强大(魔理沙那种)。

对于第一种,那当然就是那时的我了。这样的我,放在这个社会上,什么都不是,半毛钱不值。有无数经验比我丰富的编程爱好者,也有无数人拥有比我更远大的理想,也有无数人拥有比我强的行动力(写到这里的时候正好听歌听到小小欲望的星空,简直太应景了)。而且我还自以为是。

而如何是第二种,就不一样了——这样的人,无论在哪里都很吃香。

然后呢?在这之后就和现在很接近了。我不再是一个 00 后,而是一个兴趣使然的编程爱好者。 以这样的方式融入社区,或许才能让人心服口服吧。赤羽业和潮田渚决斗的时候也选择了承受所有攻击,对不对呀。

当然我还是不会去鄙视以 00 后标榜自己的人,比如光喻那种优秀青年,谁舍得鄙视?羡慕都来不及。

至于年龄优势,迟早是要失去的——我都大一了,已经不年轻了。 因此,我才去提前接触社会。而一切实践都是在 2018 完成的。

顺带一提,年龄这事一直让我很苦恼。我的前辈经常在听了我在计算机方面的诉苦后,建议我“本科先好好学基础课,研究生再开始进行专业学习”。 这就是让别人考虑自己年龄的恶果。凭什么我要和那群不学习的人走相同的道路。

舒适区

这是个很可怕的事情,在我刚才提到的经历里就有。 任何人在对一项技术(其他类似物同理)已经较为全面地掌握时,会面临两个选择:

  • 去学习新的技术
  • 就这么继续使用我现在熟悉的技术

又由于圈子一般都是按技术划分,选择后者看起来更有优势——选择前者意味着让自己回到一个菜鸡的状态,进入新的圈子靠卖萌获取资源,选择后者意味着自己能保持自己在圈子里的地位,并且始终能使用最顺手的工具进行各种活动(在技术圈子里当然就是编程了)。

根据我的观察,深入理解 C++ 的人,大多数都停留在 C++ 了,不再学习其他技术——因为 C++ 能拙劣地模仿各种各样的编程方式。它足够不安全,因此拥有强大的抽象能力。这是一个基本因素。

当然我这不是黑 C++ 厨的意思,只是某帮和 C++ 厨高度重合的圈子的人真的很不愿意和外面的世界打交道。比如,有人喜欢自己发明别人六十年前发明的东西,然后换个名字,开始在网上吹,造成各种各样的历史开倒车现象(比如 constexpr vs type level functions),使得软件工程始终落后计算机科学数十年(都是不尊重历史的自大狂导致的恶果)。有些很典型的例子,比如在有 refinement type 及 SMT 的情况下去拿 contracts 鄙视 type 的,拿 dynamic scoping 鄙视 lexical scoping 的(staging 被完全忘记了,静态分析也被完全忘记了)。 如果需要运行时 refinement type,那么为什么不选择 Perl 6 呢?是不是。

一言蔽之,就是这群人走入了自己的舒适区,不愿意再改变了。 有一个巨大的这样的群体,就是不愿意拥抱时代变化的上一代人。

除了开历史倒车之外,这种固步自封还限制了这些人自己的眼界,使得他们无法和别人合作(其实是不想),导致一直以来整个业界的水平 == 当前最牛逼的人一辈子搞出来的东西的水平,而不是当前所有牛逼的人共同搞出来的东西的并集。

在几十年前的函数式编程领域,人们为了解决百花齐放的、优秀的函数式编程语言的使用者之间互相看不懂别人的代码的问题,共同努力,设计了 Haskell,获得了很好的成功。在这之前其实还有一次事故,是人类试图修建巴别塔(Algol 60),结果遭遇神罚(写不出实现)的故事,但这是因为他们的目的太不现实——很多编程语言能具有的功能是互斥的,所以巴别塔是不可能的。Haskell 这样的设计目标就很好,也获得了成功。

现在的函数式编程社区,使用 Haskell 代码交流想法已经是不二之选了。它就像世界语一样——即使我介绍任何一个函数式编程语言,我只要给出等价的 Haskell 代码,就可以很容易让人看懂。

相比之下,整天重新发明历史的人显得多么卑微。

事实上,拥抱变化给人带来的一直都是正面的改变,就像我们玩冒险迷宫村一定要把所有职业都转职一遍,最后才转职成开罗君一样。这样,在其他职业没有满级时可以不断升级时积累的经验,满级了就立即进入新的职业,即使基数变化,但升级时的提升是累加的。

拥抱变化的人很多,比如某个研究高级语言虚拟机的人跑去搞分布式计算,某个研究形式化验证的人去搞分布式存储,甚至也有某个以 C++ 为世界第一编程语言的人,为了理解函数式编程社区的人的言论而去特地学习 Haskell 的(即使他最后还是没搞懂为什么 C++ 的 dependent type 是半残的,但这也已经是很难得的精神了,至少他在讨论函数式编程时,不会像现在的 SSS 一样直接陷入痴呆状态)。

我曾经也有自己的舒适区(曾经用 Kotlin 写任何代码),后来我开始使用 Perl 编写一次性脚本,使用 C++ 编写简单的图形应用,使用 Haskell 编写编译器,一下子技术栈就拓宽了,之前 Kotlin 作为各种领域的 DSL 的痛点在这些语言里面都没有(Kotlin 在写一次性代码时会有啰嗦的地方,比如强制检查安全——一次性代码我才不需要安全呢。Kotlin 写图形之前只能靠 Swing/JFX,又慢又吃内存。Kotlin 没有 Haskell 那样的 Monadic 操作,即使有了 first-class 的 continuation,也没有 typeclass(主要是那套 Applicative 库,很难跟不懂 Haskell 的人解释))。 我现在其实也还有使用 Kotlin 的地方,就是给 IntelliJ Platform 开发插件。

这是我在 2018 年改变的一点。

结束

2018 年 12 月深夜,于北冰洋上空。

这一年,我成年了。同时在我身上也发生了最大的变化。 很高兴 2018 的最后几天能在我的故乡度过,那是一个气候宜人的美丽的地方。


以上所述就是小编给大家介绍的《2018 年的一些感受》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

深入理解C++11

深入理解C++11

Michael Wong、IBM XL编译器中国开发团队 / 机械工业出版社 / 2013-6 / 69.00元

《深入理解C++11:C++11新特性解析与应用》内容简介:国内首本全面深入解读C++11新标准的专著,由C++标准委员会代表和IBM XL编译器中国开发团队共同撰写。不仅详细阐述了C++11标准的设计原则,而且系统地讲解了C++11新标准中的所有新语言特性、新标准库特性、对原有特性的改进,以及如何应用所有这些新特性。 《深入理解C++11:C++11新特性解析与应用》一共8章:第1章从设计......一起来看看 《深入理解C++11》 这本书的介绍吧!

JS 压缩/解压工具
JS 压缩/解压工具

在线压缩/解压 JS 代码

JSON 在线解析
JSON 在线解析

在线 JSON 格式化工具

HTML 编码/解码
HTML 编码/解码

HTML 编码/解码