《梦断代码》是一本故事书,在我读了两章后如此判断,作者很擅长将自己或他人的编程故事通过生动的文字传递给他人。
15岁时,我和作者一样痴迷于游戏,但不同的是,15岁的我还不具备修改游戏底层代码的能力,但作者却可以“创建一些子补丁”,使游戏按照自己的想法发展。虽然这和我俩所处时代不同———1975年的电脑的硬件技术明显远远落后于我的15岁,2013年。但扪心自问一下,如果我十三岁有一个自己修改游戏的机会摆在我的面前,我当然会愉快地……拉倒吧快,我只想玩游戏,才不想自己做游戏咧!由此可见,作者进入编程行业还是很理所当然的。
事实上我对作者感同身受:当第二天的新版本就要发布时,只余下仅仅数个小时,数据库还是没有与页面对接时,哪里出问题了?“难道我们以前没做过软件吗?做过。”“是没有做全面测试吗?显然不太充分”“怎么会搞得一塌糊涂?鬼晓得。”不得不说最后那句鬼晓得真的是说进我的心坎了:在写代码时,我们也这样问过自己,难道以前没有连接过数据库吗?代码还是从以前那儿扒下来的呢!难道语句逻辑有错误吗?怎么可能,上一个连接成功的程序现在还可以继续运行呢!那为什么连接不上数据库?鬼晓得。
作者还讲述了一个程序员都知道的事:程序员都是从零开始计数的。程序员为什么要从零开始计数?作者讲述了一个最直接了断的原因:因为计算机从零开始计数。emmm……这不废话吗,要不是计算机从零开始计数,我还用得着从零开始计数吗!不过这一个小点发散了我的思维,我记得有一个程序员的笑话是这样的,程序员老婆在程序员上班前嘱咐程序员,下班时如果看到街边有卖西瓜的,记得买1个,如果还碰到有卖鸡蛋的,再买上20个。于是程序员下班后提着21个西瓜回家了。
程序员理解的程序是这样的:
int watermelon=0; if(iswatermelon){ watermelon=1; }else if(isegg){ watermelon+=20; }
最后输出21个西瓜。
但不对啊,程序员老婆的意思是这样的:
int watermelon=0,egg=0; if(iswatermelon){ watermelon=1; }else if(isegg){ egg=20; }
所以我又想起了那句话:程序员在和机器作交流,所以程序员需要弄明白机器到底是怎么想的。