我开发了一个基于 Beancount 的账本托管服务 HostedBeans,欢迎大家来了解纯文本复式记账并试用我的服务。

精子的故事:1

写在前

认识我稍微久点的人,都知道我在两年前,初中毕业的时候,写过一长篇(2 万字)故事《我的初中三年》。

如今看来,当初的文笔和想法,略显幼稚,以至于我现在已经不主动往外推销了。

当时结尾的时候,我也承诺过,有机会的时候我会再写下去。

最近,看到好多朋友都在写类似自传的东西,我死活以为他们的文笔都不如我,但空口无凭。

所以,我觉得将曾经的故事,翻写一遍的时机到了。

直到目前,《疯狂的程序员》都是我看过的,最好的自传小说。

究其原因,一方面是朴实的文笔比较合我的胃口,一方面整篇小说都有一种说不出来的冷幽默,每一章的末尾都有悬念。

因此,我给自己提几个要求:

  • 肯定是第三人称,之前的第一人称的确限制太多
  • 叙事要连贯,一环扣一环,为了连贯可以不按照真实的时间顺序来写
  • 所有人物不使用真名,不出现具体的时间和地点
  • 不深究计算机方面的技术细节,不加额外的解释,也不刻意地掩饰
  • 行文通顺,尽可能不用括号和脚注
  • 用最淡定的语气来讲故事,尽可能少用感叹号和问号

我原来那篇是写了初中三年,这次在此基础上再写高一高二的两年,初步打算分 20 篇, 每篇 2000 字,合计 4 万字左右。

正文

在精子刚上小学六年级的时候,班主任在班里发了一个私立初中(雨田实验中学)的宣传单,这学校就是精子后来上的初中,在当地是非常有名气的,以教学严格和中考成绩高而闻名。

精子当时还并不认得这个学校,回家吃饭的时候只是当个稀奇的事情跟父母提了那么一下。精子的父母当然认得这学校,说有空带精子去看一看。

作为私立初中当然还是有点手段的。比如,要想中考成绩高,你得先有好苗子。

于是入学前先给你设一堆门槛,你得过五关斩六将才进得来,但凡进来的,说明还有有两下子的,而且家里也够重视,这分数能不高么。

进这初中要考试,而且这考试也不是谁都能考的,你得先参加他们办的一个补习班,才有参加入学考试的资格。而且,进这补习班,也要考试。

精子小学那会儿,只顾着玩,从来没把学校的功课放在心上,自然不希望多上这么一个补习班,于是和父母有了一个奇怪的约定。

即精子去参加这进入这补习班的考试。若考上了,说明这学校水平不过如此,不值得考虑,也就不用上了。若是没通过考试,就得承认这学校确实有点水平,值得一上。

那天晚上放学,天都黑了,精子去参加考试。出来的时候,跟父母拍着胸脯表示那题目不过如此,绝对没有问题。

但结果还是马失前蹄,跪在这里了。于是乖乖参加过了几天的补考,开始上这补习班。

精子到了这补习班第一天,就后悔了,早知道,死活也不应该来的。

补习班在一个很旧的小楼里面,200 多人,两间教室,人挤人人挨人,写字都伸不开胳膊,每个周六周日要上一个上午的课。

从那以后的三个月,精子没睡过一天懒觉,每天都要六点多起床。精子后来想,这都能坚持下来真是一件很不可思议的事情。

在这三个月里,精子每次上课都是和几个同行的同学在一起吃零食,聊天,玩卡牌之类,当时精子还没有上课睡觉的习惯。

下课时间则是掰老师的粉笔头互相扔来扔去,满地的粉笔头很是壮观,补习班楼下有炒瓜子的,他们就往那锅里扔。

语文讲的是非常基础的知识,用后来高中老师的话说,这叫“语言文字运用”,就是句子成分的划分,缩句,病句等等的。

教材是他们自己编的,不过老师也没按教材讲过。三个月光讲这么点东西,自然讲的是非常有深度的。

虽然精子没认真听过课,但当时学到的那点东西让他一直撑到了高三还毫无压力。

英语讲的是牛津7A, 因为各种机缘巧合,这本书精子后来反反复复听了四遍,简直都要吐了,况且这本书本来也不难,只是算英语的一个入门。

数学讲的是奥数的题,数学始终是精子的硬伤,说起来精子后来对中国大陆的这奥数教学,以及整个教育制度,是有相当大的意见的。

三个月的时间迷迷糊糊就过去了,入学考试是在小学六年级的寒假。

在那年年初,精子从 KFC 得到了一个日历,在一月份的那一页,有一只萌萌的茶犬,上面写着“有什么愿望告诉我,我来帮你实现”。

精子写了“电脑”两个字,当时精子只知道电脑是一种很高级的玩具而已。

在精子小时候,还没有上小学的时候,精子家曾有过一台电脑,那是他爸工作用的。

精子并不知道有游戏可以玩,只是觉得电脑是个很神奇的东西,还会用铅笔去描 Windows 98 桌面上的图标,拿给幼儿园的小朋友去看。

后来这台电脑被搬到了他爸的公司。

上小学之后,精子才从同学那里听说,电脑还可以打游戏。

后来精子也去他爸的公司玩过几次电脑游戏,那时候他最喜欢 RA2.

不过没几年,精子他爸的公司大概就是倒闭了,精子没有电脑可以玩了。

小学同学里,在当时是没有几个人家里有电脑的。

精子也算是比较早接触电脑的一批孩子,虽然只是打游戏而已。精子喜欢电脑这种精密的东西,这种人在后来被称为 Geek.

他会凭印象把电脑上的图标画在本子上,画得条理分明,再编出一套理论,自圆其说,于是忽悠了不少小朋友。成立了一个小社团,搞得规规矩矩。

精子小时候也喜欢读百科全书,还看完了一共分十二本,本来是给成人看的十万个为什么。

凭着这种知识的垄断,精子在小学当了几年的孩子王。小学时候的精子,是非常活泼淘气的,经常被老师收拾。

后来到了小学五六年级,同学们都长大了,不好忽悠了,精子也不再是孩子王了。

接着说入学考试的时候,精子的妈咪许诺如果能考上这个学校,就给他买一台电脑。

精子的妈咪想来说到做到,也是想要给孩子做一个榜样,不像精子他爸心情好了说什么都行,心情不好瞧谁都不顺眼。

过了半个月,精子去补习班去看入学考试的成绩,结果让他很是吃惊。

(未完待续)

入门 Golang

我从 1 年前开始关注 Golang, 但一直没有时间细致地学习 Golang 的语法。

有关设计哲学,和语法的概览,我倒是看了不少,前两天买了一本《Go语言程序设计》,打算认真学习一下。

作为一个 C++ 出身的程序员,以及一个 Unix 粉,和一个开源主义者,Golang 的设计哲学相当得对我的胃口。

我对 Golang 的理解是“一个服务器端编程语言”,下面我来谈谈 Golang 吸引我的地方。

精心设计过的语法

这是和 PHP 比的,我之前一直在使用的 PHP 恐怕是流行的编程语言中,唯一一个语法没有经过精心设计的。

Golang 是由三位大牛共同设计的,它很年轻,没有历史包袱。

Golang 吸收了一些现代语言的语法,比如数组切片,多返回值等,但并不多,毕竟 Golang 的定位是工业级。

工业级

Golang 不是一个玩具,它甚至比很多流行的编程语言更加严肃,在和 Java 靠齐。

Golang 的语法设计就是为了让代码更加易读,而不是像 C++ 那样留给了大牛们很大的发挥空间。

Golang 自带代码格式化工具,要求所有代码都有一致的代码风格。

社区

Golang 的官网就是非常有活力的,首先就是一个 Hello World 和一个在线编译器。

目前 Golang 由 Google 牵头维护,包括 Google 在内的不少大公司都在使用 Golang.

文档,参考清晰地列在那里,第一时间提供给你了需要的信息,而且 Golang 还有个萌萌的吉祥物。

至于中文 Golang 社区的成长,也是相当迅速的,仅仅最近一年,就出现了两本完整的 Golang 中文教程,而且都是开源的。

本地代码和静态链接

知道 Linux 下最大的坑是什么么?就是动态链接库。

为什么 Linux 大部分软件都要求编译安装,就是因为动态链接库。

Golang 通过完全静态链接的方式避开了这个大坑。

同时 Golang 编译出的是本地代码,服务器无需环境即可运行。

没错,不需要任何环境,不需要任何动态链接库。

静态类型和接口

Golang 是一个静态类型语言,变量在编译时,就有一个唯一确定的类型。

因为 Golang 削弱了指针的功能,因此 Golang 甚至比 C/C++ 更加“静态”.

这使得 Golang 可以在编译时就进行完整的类型检查,在编译时就可以找到大部分的语法错误。

Golang 接口的创新在于,将描述接口的工作,从定义类的时候,转移到了使用对象的时候。

这使得 Java 等语言中原本繁琐的接口功能,在 Golang 中变得非常好用。

Golang 的类型系统建立在接口上,同时接口和静态类型检查也是紧密相关的。

简化的 OOP

C++, Java 中所谓的面向对象思想,略显复杂,Golang 则将 OOP 思想做了极大的简化,只留下了最核心的特征。

并发支持

Golang 的并发支持由 goroutine 和 channel 支持。

goroutine 是一种轻量级线程,目的是对 CPU 核心进行抽象,最大限度发挥多核心 CPU 的计算能力。

而 channel 是一种类似管道的线程间通讯机制,将经典的加锁模型,转换为了类似 Unix 进程间通讯的管道模型。

标准库

作为一个服务器端编程语言,Golang 的标准可以说非常全面,大部分的算法,协议都包括在了标准库中。

对于网络编程,Golang 几乎是开箱即用的。

而且 Golang 也借鉴了 Python 等语言的包管理器,安装软件包非常方便。

错误处理

Golang 没有传统的异常机制。

对于非致命的错误,Golang 使用返回值来报告(Golang 支持多返回值).

对于致命的错误,Golang 直接选择“崩溃”掉(当然也有恢复机制), 不过按照 Golang 的哲学,既然是致命错误,就应当挂掉。

还有 defer 关键字,用于将一个语句“绑定”到函数退出时执行,无论是通过各种途径退出,这可是 C/C++ 里面的大问题。

好忧伤

前辈们告诉我,拒绝的理由根本不重要,都是哄我玩的,也没有必要去听。

我从来也没考察过情书是怎样一个套路,再说现在也不流行这个了。

上一篇分了大概三个部分:我如何关注她,聊聊人生,聊聊理想。

开个玩笑。

我觉得这情书嘛,就像写简历一样,要用最不经意的文笔把自己推销出去,越平淡越感人。

上一篇我从半个月前找她起标题的时候就开始写了,写了半个月,改了 25 稿,没想到最后时刻,唉。

总之有另一个人先我一天表白成功。

也不知是她说错了还是我听错了,本来是打算8月3日的,如果能早几天的话…

她在各种场合,零零散散地也说过她喜欢怎样的男生。于是这半个月我翻了一遍过去一年她在各处的发言记录,以及和我的聊天记录。

然后找她某闺蜜打探消息,最近两个月我和她某闺蜜的话题差不多只有她…

我自恋地以为我还是蛮符合的,总之要把我往她喜欢的方向写。

她说她没看出来我喜欢她,一直以为我是在开玩笑,这是我死活都不能相信的,难道我看起来就是 alone forever 的节奏么。

几乎所有围观群众都看出来了,一直以为她是个很聪明的妹纸,怎么会呢…

她直接就同意了我公开上一篇,这个我没想到,本来以为她会一番推迟的,要知道好久以前她连照片都不让我往群里发。

我当时几乎是平静地接受了,甚至还带着笑,其实本来能和她说上话我就在笑。然后,越来越觉得揪心…

还记得燕儿离开绝影的时候么,绝影又在堕落的边缘,土匪安慰他“你的心思我还不懂啊,你就是怕燕儿跟你分手了,这世界上就没人要你了”。

我当然有这个自信,我有那个才华不愁妹纸,但我总觉得勾搭妹纸是一件草率不得的事情,就好像我之前说没有收入之前不去勾搭妹纸一样。唉~等我勾搭到下一个又不知道是什么时候的事情了。

某已经办了会员卡的前辈问我下一步怎么办。

还能怎么办,接着刷存在感呗,刷到我勾搭到下一个妹纸,虽然这可能要半年,一年,或者更久。

她写的那篇日志,我就当没看见好了。

精子生于 1995 年,英文 ID jysperm.

订阅推送

通过 Telegram Channel 订阅我的博客日志、产品和项目的动态:

王子亭的博客 @ Telegram


通过邮件订阅订阅我的博客日志、产品和项目的动态(历史邮件):

该博客使用基于  Hexo  的  simpleblock  主题。博客内容使用  CC BY-NC-ND  授权发布。最后生成于 2025-02-10.