vczh的日常
首发于vczh的日常
考不上三本也能懂系列——前言

考不上三本也能懂系列——前言

在准备好了好几天之后,给GacUI的脚本加上Coroutine的主要工作在两个晚上就完成了,所以我终于可以开始写这个系列文章了。这个系列当然不仅仅包括Coroutine,只是之前答应了 @RednaxelaFX 说,跟语言有关的就放在他那里。这样这个系列的文章就不一定全部都在这个专栏里面了。为了让大家也可以从我的专栏里面访问到,我就写个前言,顺便当目录用。

前言(就是本篇)
考不上三本也能给自己心爱的语言加上Coroutine(一) - 知乎专栏
考不上三本也能给自己心爱的语言加上Coroutine(二) - 知乎专栏
考不上三本也能给自己心爱的语言加上Coroutine(三) - 知乎专栏
考不上三本也能给自己心爱的语言加上Coroutine(四) - 知乎专栏
考不上三本也会实现数据绑定(一) - 知乎专栏
考不上三本也会实现数据绑定(二) - 知乎专栏
考不上三本也能实现C++编译器——前言
考不上三本也能懂系列——处理声明(一)
考不上三本也能懂系列——实现C++类型系统 (新!)

为什么要做这个系列呢?主要目的是为了破除迷信。在多年知乎上摸爬滚打之后,我终于明白了知友们的言论,都是很极端的。一个东西牛逼,就一定要拿诺贝尔奖你说话才算数。一个东西简单,那么小学生都要会做。贫穷指的都是山区里面吃不饱饭的,富裕则一定要使用存款利息就能买学区房的。那么编程也一样,要么就说凭什么中专就得被扔简历,要么就说你不读到博士你就什么都没学。这都是狗屁!真理永远只有一个,标准也永远是全球统一的。

人类的世界是残酷的,你贫穷就是因为比你有钱的人都想干你,所以维持你很贫穷,这就是唯一的原因了。所谓的秩序就是这个样子的,不牺牲落后的人,怎么保证人类可以在耗光资源之前,能达到征服银河系的目标,从而让种群永远的存活下来?

既然走错一步就会死,那么破除迷信就显得很重要了。编程这个事情,是不需要智商的。大三的时候我曾经抓了一个新鲜热辣的大一的妹纸(who is 汕头人)教编程。其实所谓的教,就是每个星期手把手上一堂课,系统的地我认为要学会的东西都按顺序讲出来,目的是为了看我自己对编程的理解对不对。我就是抱着一种教废了就算了的心情去教的。然而结果人家大二就能自己实现正则表达式引擎,大四就已经能从0开始执行一个动态语言了。后来我用这个语言写了个Linq,给她当测试用例,这么复杂的代码跑过了,证明实现是有质量的。这个人后来拿过微软网易百度腾讯的offer,干得风生水起。

然而你说她聪明吗,其实根本不聪明(逃,就是一个普通人,而且还有点蠢,很多简单的东西讲了多少遍才明白(侧面证明了拿offer也是不需要智商的(逃)。这证明了,你要在本科四年里面搞出这么多事情,你只要有一颗正常的大脑就可以了。她能做到,你们当然也可以做到。但是这跟知乎上那些从五花八门的专业全都要跳来当码农是不一样的,因为虽然你可以做到,但不代表你可以马上学会,立刻赚钱。这就跟传说中爱迪生找钨丝的故事一样,实验了多少遍才找到结果。学编程也是一样的,只要你练习了一百万行代码(每天500行,也就是6年而已,6年很长吗?),你什么基础知识语言类库不能学会?当然并没有人愿意去练习一百万行代码,殊不知这就是唯一的办法。

你们也不要觉得一百万行很吓人,其实做个GacUI的那本脚本引擎,才屁大点事,四万多行就没有了,其中做个Coroutine的核心功能就没了一千多。GacUI那么简单的类库,十几万行就没有了。所以一百万行其实做不了多少事情的,也就写几个程序而已。大学的时候我有一个同学,高中的时候给知名P2P软件写过代码,上大学自己维护了一个VB写的聊天程序卖给了一大堆大学和公司,他自己说那个时候他已经写过一百万行代码了。然而就算是这样,毕业的时候也因为面试出了岔子,只好去读个硕,然后去了苹果公司。这么牛逼的人本科毕业的时候都找不到靠谱的工作,你觉得你半路出家行吗?

所以不想努力的人,趁早滚蛋,不然以后栽在这上面,那多不好。但是你愿意努力,只是觉得自己蠢,这没有问题。蠢无非就是多花点时间嘛。虽然考不上三本也能实现Coroutine,但是你跟我的区别无非就是能不能在两个晚上做出来而已。难道做一个月就不是做,就不算做出来了吗?当然不是。

当然,做出来的意思并不是说做出来一个Demo。Demo都是很容易做的,你要是发现谁谁谁说自己会什么,其实只是做了个Demo,还是说只是完成了老师布置的作业,那么其实就等于“可能还”不会。一个真正的程序,当然要处理现实世界会出现的一些复杂的情况,你还要懂得怎样保证自己的程序在绝大多数情况下是对的,所以这也需要很多技巧。有些人可能会说,可以用Coq等系统验证程序啊。好吧,你用Coq给clang++写个证明,应该可以写到80岁,然后发现写不出来。

当然我知道我光这样说你们也不会相信的,所以这个系列的存在意义也是如此。我会挑一些表面上看起来高大上的知识,然后告诉你们,为什么考不上三本也能学会,也能把这个程序做出来。所以这个系列也是一个指南针,因为我说的这么直白,要是屏幕前的你发现自己恰好就是那一小撮还是学不会的人,那你可以好好考虑一下自己的前程,是不是真的要做程序员(逃


Coroutine虽然简单,但是写的时候你的代码也要处理一亿个分支逻辑,所以还是花了点时间,做了出来还是觉得很爽。这几天用了消耗了这么多脑力,刚才称了一下都只剩下17x斤了,果然就算是写自己早就知道的东西,也需要消耗大量的脂肪。那么大家就期待明天的第一篇——《如何实现Coroutine》吧。Coroutine一篇是写不完的,所以我会分开写,看完第一篇还没学会也不要害怕,后面还有,都不会再说(逃。关注了这个专栏但是没有关注我的,你们可以通过轮询这篇文章来发现即将发在别人的专栏上的正片。

编辑于 2018-10-19

文章被以下专栏收录