真码农从不用pascal

译自:http://web.mit.edu/humor/Computers/real.programmers
在编程的黄金年代,码农和非码农是很容易区分的: 懂计算机编程语言的就是码农,反之就是非码农。真·码农总爱说`DO 10I=1,10′ 或者`ABEND’ (你懂的,他们永远只用大写字母)。 其他人都在说“计算机对太难了”或者“我不喜欢和电脑打交道,它们太冷冰冰,没有一点人情味”。

但是,时至今日,我们已经来到了一个计算机大爆炸的时代了 – 你家里随便一台家电里都运行着定制的系统,小孩子玩的ipad里面运行着世界上最先进的几个操作系统之一。任何人都可以花个几千块从商店里买一台属于自己的电脑。人人都可以接触电脑,人人都可以学习编程使得真·码农这一物种濒临灭绝,取而代之的是80后的codecademy毕业生。

所以,找到一个方法来快速准确的判断一个码农是codecademy毕业生还是真·码农迫在眉睫。 如果两者直接区别很明显,那么对于codecademy玩家来说,真·码农就是他们人生的下一个目标;对于HR来说,这些差异也可以告诉他们为什么用codecademy毕业生来替换真·码农是一件石乐智的事。

语言

判断一个码农是真还是假,最简单直观的方式是看他擅长的语言。 真·码农用FORTRAN,80后用PASCAL。曾经有人问PASCAL的设计者Nicklaus Wirth 如何念自己的名字。他说,如果你按照名字(name)念,那应该念“Veert”, 如果按照值(value)念,那应该念(Worth). 从这个回答里我们可以立刻判断Nicklaus Wirth是个codecademy 选手:真·码农只认同返回值这一种参数传递机制。真·码农们从不关注过多的无用的概念,在他们的日常生活中,键盘,啤酒和FORTRAN VI的编译器就完美满足他们的需求。

  • 真·码农用FORTRAN处理列表
  • 真·码农用FORTRAN处理字符串
  • 真·码农用FORTRAN报税/炒股
  • 真·码农用FORTRAN实现AI
  • 。。。

如果一个需求不能用FORTRAN解决,真·码农会用汇编来解决。如果汇编也解决不了 – 那这个需求就不应该存在。

 

结构化编程

计算机科学在过去几年里引进了“结构化编程”。很多学者都认为使用结构化的方式来编程,程序会更容易被理解。但是他们给出来的例子并不具有普适性。这使得很多刚毕业的学生认为自己是世界上最好的码农:他们可以用五种不同的语言来写一个五子棋游戏!可以用20行代码翻转二叉树!但是大多数时候,现实世界的任务是:读一个20万行代码的文件,理解并尝试去优化它。

真·码农不会被各种“结构化”定义所约束,他们一般都:

  • 敢于用GOTO
  • 可以写一个5屏的for 循环,并且能快速的找到每一个大括号对应的另一部分
  • 喜欢在if中计算表达式 —— 使代码具有加密性并自动筛掉读不懂表达式的
  • 真码农喜欢写自修改代码 —— 为了节省哪怕1纳秒的运算时间
  • 从不写注释:代码自身的逻辑很“浅显易懂”
  • 由于FORTRAN没有结构化的IF,REPEAT,UNTIL 和CASE,真·码农会用GOTO来模拟它们

数据结构,接口,抽象类,指针等等结构化数据也变的越来越流行。Wirth(PASCAL设计者) 写了一整本书来教你如何使用这些结构化数据来编程。但是在真·码农的世界里,只有一样数据是结构化的:数组。字符串,链表,集合 —— 他们都是用数组来实现的。

 

操作系统

真·码农用什么操作系统?windows?在真·码农眼中,windows就是玩具——小学生都知道该怎么操作它。

Linux看起来复杂很多。 但是大多数时候人们不会用Linux来做真正的编程,他们大多用Linux来写论文,玩MUD游戏和上telnet bbs。

真·码农向来只用OS\370(注1)  。一个好的码农可以在JCL手册中找到如何解决IJK305I错误,一个伟大的码农可以不用任何参考手册来编写JCL代码。一个真·码农可以用心算来发现在6MB核心中的数据转存错误。

同时,OS\370 是一个真正卓越的操作系统:一个bit的数据错位就可以毁掉你几周的工作数据。所以开发者必(bei)须(po)保持警觉。

 

编程工具

真·码农用什么开发工具?理论上来说,只要你把代码敲进电脑的终端,它就可以运行。在计算机有终端前码农如何编程? 真·码农熟知16进制的内存引导数据。每当他写好代码后,都会加上引导代码强制计算机来运行它。(在那个时候,内存还是有记忆的——断电并不会抹去其中的数据。现在的内存变得非常健忘,只要断电就会忘了所有的数据)。

我认识一个真正的码农Jim,他在德州仪器上班。有一天他接到一个客户的电话,声称他的系统在保存一个关键数据时崩溃了。Jim 让他把电话线接口接到计算机上(那时候的计算机有电话接口),并用0/1两个按钮远程重写了部分代码。一个真·码农的工具箱里总会有一个键盘和一个打卡器,有了这两样工具,他就可以写出各种代码。(当然,真正的码农从来不用鼠标)

大多数系统提供了几种文本编辑器供码农使用, 真·码农会小心的挑选一个能反映他风格的编辑器。很多人认为Emacs/Vi是世界上最好的编辑器。这些编辑器的问题是,真·码农认为它们宣扬的“所见即所得”的概念很糟糕 —— 他们更需要的是一个“你要我有”的编辑器。TECO就是这样的编辑器。TECO的命令类似另一种序列化编程语言。(一个著名的娱乐游戏就是,你在TECO命令行里输入你的名字,猜猜它会解析成什么命令组合)。

基于以上的编辑器弊端,很多真· 码农认为直接输入二进制代码效率更高。 下面是真·码农绝对不会用的工具:

  • FORTRAN预处理工具:如MORTRAN, RATFOR等。
  • 调试器——真·码农只会阅读core dump
  • 检测数组边界的编译器
  • 版本控制

 

娱乐活动

真·码农的娱乐生活和他的工作方式很别致。下面是一些能帮助你快速判断一个人是真·码农的秘诀:

  • 爬梯中,躲在墙角讨论操作系统安全性的那撮人
  • 足球场上,拿真人和ps2游戏里的模拟选手比较的那撮人
  • 沙滩上,在沙子上画流程图的那撮人
  • 在超市里,执意自己用激光扫码器结帐的人:他们完全无法相信收银员(尽管他们都用键盘)。

 

日常生活

真·码农的生活环境与其他人不同,为了让他们能发挥最大的工作效率,真·码农应该坐在终端前面,四周环绕着:

  • 一个列着所有真·码农工作过的项目列表。
  • 几杯没喝完的冷咖啡,有没抽完的烟屁股更佳
  • 《操作系统》《编译原理》《JS the good part》之类图书基本。有折印更佳。
  • 一份1969年的日历(方便计算时间戳)
  • 在办公室某个抽屉里藏了一盒奥利奥饼干
  • 饼干下面是一个流程图模板

真·码农可以连续待机长达50小时,他们只需要在编译的时候打个盹就足购休息。如果日程安排的没有那么紧张,真·码农可能会先用90% 的时间做一些与项目无关的玩具,然后在最后一周干满50小时结束项目。当然,这会给项目经理造成极大的心理阴影。所以要了解, 一个真·码农的日常是:

  • 从不朝九晚五
  • 从不打领结
  • 从不穿高跟鞋(不论男女)
  • 通常在午饭时间到公司
  • 真·码农可能知道也可能不知道他老婆的名字,但他一定能背下来整个ASCII表
  • 真·码农从不下厨。

并且,真码农从不用PASCAL

 

Andy

Andy

a lazy and busy guy.

发表评论

电子邮件地址不会被公开。 必填项已用*标注