别人骗我编程序——计算机达人成长之路(28)

简介:

9C语言光线成像(三)上当受骗

终于开始C语言成像程序设计了,不过,木鸿飞那贫乏到白痴的图形学原理,无限接近于零的C语言知识,笨拙到找抽的指法操作,早已将他出卖,注定了本次实验将是一个无言的结局。不信?请看镜头:

镜头一:

夏日炎炎,木鸿飞待在蒸笼式的房子中,如同洗过桑拿一般,汗珠百米冲刺一般纷纷落下。不过这更加激发了编程的热情。只见他打开书本放在键盘旁边,为了防止书页自行翻动又将两支笔夹在左右两面上,然后分别将左、右四只手指搭在“asdf”和“jkl;”键上,再偏着头,目光盯着书本。

一切准备就绪,木鸿飞深吸一口气,开始正式输入。他目光如炬,紧紧的盯着书上每一个字符,手指突然发力,宛如一个个精灵,在键盘上优美地舞蹈,顿时一曲和谐的“键盘打击乐”从房间中传出。

很快一段代码输入完毕,木鸿飞兴奋地摇头晃脑,真是意犹未尽啊。本次输入,木鸿飞严格按照指法要求,目光自始至终只盯着书本,哪怕是旁光也没有扫过键盘和显示器,这难道就是传说中的打字经典教程吗,木鸿飞不由意淫起来,同时发出一串串得意地笑声。

该是看一看成果的时候了,为了保证能够清晰的观察到优异的成绩,木鸿飞特意做了眼保健操,然后才将目光转向显示器。哼哼,……,奇怪了,怎么屏幕上的内容与书本上严重的不一致,貌似正确率不足30%

“奇怪了,怎么错了这么多?难道是手指击打时的位移不对?或者手指摆放的基本位置错位了?”木鸿飞自言自语到。

“错误的原因我不清楚,但是有一点是确定的!”不知什么时候哥哥出现在木鸿飞后面。

“哦,哪一点?”木鸿飞连忙问道。

哥哥指向屏幕,说道:“你需要重新输入!”

镜头二:

又是一个挥汉如雨的环境,这一次木鸿飞没有飞快的舞动手指,而是老老实实一字一顿地输入,在每击打一个字符前,都仔细思索一番。比如代码“if”,“i键在k键上面,右手中指。f是基本键,左手食指。”按键后,为了保证正确性,需要看看屏幕,比对一番,完全无误才进入下一行。如是虽然速度慢下很多,但至少准确率上去了。

木鸿飞一边输入,一边哼起了歌。

“为什么这么开心。”哥哥问道。

“我发现这几段代码在内容上相差不多,只有几个字母或者数字略有不同,前面已经输入过一次了,所以后面再输入就是轻车熟路,速度明显要快一些。”打字速度提升,木鸿飞自然高兴。

“我看看,”哥哥拿起书本仔细端详,又看了看木鸿飞兴奋的脸,最后无不惋惜的说道:“其实还有办法让你输入的更快。”

“我知道,是不是提高打字速度,这个需要慢慢练习。”木鸿飞主动承认指法不足。

“有一种速成的方法,……”哥哥语不惊人死不休,“就是拷贝和粘贴。”哥哥将光标移动到某一行上,同时按下CTRL和向下方向键,“这叫选定。”光标逐渐下移,它扫过的屏幕字体纷纷变色,“选定完毕后按下CTRL+INSERT键,就是拷贝这一段内容。然后将光标移动到要复制的地方,按下SHIFT+INSERT键,复制就完成了。”哥哥依法将代码复制三次,然后把光标移动到代码相异的位置,简单地修改了数字或变量名称。木鸿飞发费数十分钟才输入的代码被哥哥一分钟不到搞定了,直看得木鸿飞目瞪口呆。

“在计算机编程中,偷懒不是问题,”哥哥最后总结道,“问题是要找准偷懒的位置。只有想偷懒、懂偷懒并且偷得有水平、懒得有艺术的人才可以成为计算机编程达人!”

镜头三:

木鸿飞正在一边看代码一边输入,然后又回过头复核一遍,如果发现错误,则移动光标到错误位置修改代码。

经过核对,上两行末输错了两个字符,木鸿飞连按两次“上方向键”,再不屈不挠的连续按下“右方向键”,终于到达错误地点进行修改。下一个错误发生在上面一行行首,木鸿飞只有不厌其烦的按下“左方向键”,以便将光标移动到行首。

“如果有鼠标就好了,鼠标一点就光标就过去了,哪用这样一个键一个键的按。”在无穷次的击打方向键后,木鸿飞终于说出了心声。

“我来教你一招。”不知什么时候,哥哥又出现在木鸿飞身后,只见他在键盘上轻轻一按,光标马上移到了行首,又轻轻一按,光标又立刻出现在行尾,“其实真正的高手输入代码时,不用鼠标还快些。你看,键盘上有很多快捷键,比如HOME键可以将光标移动到行首,END键则将光标移动到行尾,F3键则可以查询,……”。

————————————————————————

木鸿飞的打字历程就如同在风雨飘摇中过铁索桥,除了小心翼翼还是小心翼翼。不过,天见可怜,终于4页代码输入完毕。木鸿飞大声的“哦耶”一声,算是发泄了心里的晦气,然后连忙通知哥哥。

“哥哥,这四页代码已经输完了,下面该怎么办?”木鸿飞急切的问道。

“哦,让我来看看。”哥哥放下手中的教案,走了过来。木鸿飞早已心急如焚,所以哥哥不紧不慢的动作在木鸿飞眼里就如同慢羊羊一般。“很好,很好,不错不错。但是还不能运行!”

 “为什么?”木鸿飞的心里苦啊,就如同农民伯伯辛辛苦苦种了一年的地,到了秋天却长不出庄稼来一般。

“因为你还需要再输入一个程序,合起来才可以运行。”哥哥不紧不慢的回答。

“哦。”木鸿飞轻叹了一声,然后带有侥幸地问道,“还需要输入什么页程序?”

“不多不多,”哥哥把书翻到某一页,说:“仅仅四页而已。”

“四页就四页吧。”木鸿飞心里盘算了一下,坦然地接受。

…………

木鸿飞继续在风雨飘摇中过铁索桥,时间滴答的过去,完工的时刻终于到来了。

 “哥哥,这四页代码又输完了,下面该怎么办?”木鸿飞说完,皱起了眉头,“奇怪,为什么要用又呢?”

“哦,让我来看看。”哥哥放下手中的教案,慢羊羊一般走了过来。“很好,很好,不错不错。但是还不能运行!”

“为什么?”

“因为你还需要再输入一个程序,合起来才可以运行。”哥哥仍然不紧不慢的回答。

“哦。”木鸿飞叹了一声,然后忐忑不安地问道,“这次需要输入多少页程序?”

“不多不多,” 哥哥把书翻到某一页,说,“仅仅十六页而已。”

“十六页?还仅仅?为什么刚开始时你不告诉我。”木鸿飞弱弱地牢骚了一句。

“呵呵。其实你已经编了八页了,不在乎再编十六页吗。当然你也可以放弃,不过以前编的八页就浪费掉了。”哥哥的嘴脸活脱脱像引诱蓝精灵犯罪的格格巫。

“早点告诉你,你就不会上当了。”哥哥离开时,自言自语的说了一句。

…………

也许编程有太多的不如意,但是你输入代码的工作还得继续,于是木鸿飞面朝屏幕背朝墙,一心一意敲键盘。

许久,木鸿飞终于有气无力地问道:“哥哥,这十六页代码终于输完了,下面该怎么办?不是又要输入十六页吧?”

“哦,让我来看看。”慢羊羊再次象征性地翻动代码,“很好,很好,不错不错,……

“但是不能运行。” 木鸿飞和哥哥同时说道。

“我就知道有鬼,说吧这次又需要输入多少页程序。”木鸿飞单刀直入,直截了当的问道。

“不多不多,” 哥哥把书翻到某一页。

“是不是三十二页?”木鸿飞做好了最坏的打算。

“你还想输三十二页?”哥哥故作惊讶道,“不过可惜,真的没有了。这次还需要输入两页,你看每行代码都特别的短,很容易输入的。”

“到底还有多少页代码,一起冲我来吧,我一次性编完。”木鸿飞一本正经的说:“可一可二不可三,但是本章已经有三段文字重复了。读者的忍耐是有限的,如果再来一段重复文字,大家会认为我通过复制粘贴的方式骗取稿费,会降低本书的好评度!”

“就剩下两页,编完真的没有了。”哥哥斩钉截铁的回答,想了想又加上一句:“确定一定以及肯定。”

——————————————————

多年之后,当木鸿飞重新拿起这本书时,他很清楚的明白:为了避免重复开发,大家都会自己设计一套编程库,封装很多常见的应用,以后在主文件中直接调用这些库函数即可。木鸿飞第一次输入的四页代码是主文件,其后输入的都是库文件。为了防止木鸿飞临阵脱逃,哥哥故意温水煮青蛙,每次只要求输入部分代码,多次叠加后才全部完工。

木鸿飞就在温水中艰难地完成了所有的代码,但命运之神似乎休假去了,对他的打击才刚刚开始。

按照哥哥的指导,木鸿飞开始编译程序。他按下F9键,经过短暂的等待后,系统单独产生了一个编译错误和警告信息窗口,这可是个好东东,依照提示的内容可以修改程序,虽然全是英文,不过如此简单的单词应该难不住木鸿飞。

“在‘(’处有一个错误,什么错误?”木鸿飞在屏幕和书本上玩起了“大家来找茬”游戏,只见他一只手将书本举在屏幕边,另一只手在代码行上缓缓地划过,一个字母一个字母的比对,大约五分钟过去后,“好像这里少了一个右括号。”补上后在编译,此行错误提示终于消失。然后又进入下一个找茬游戏。

茬不是那么好找的,还没找几个,木鸿飞就已经两眼冒金星,揉了揉眼睛,做了n次眼保健操,还是大白天看到了漫天星星。

“到底有多少个错误提示?”找茬过程中,突然一个想法在脑海里油然而生,于是他在编译错误提示窗口中向下移动光标,直到窗口的底部,上面赫然提示:“108个错误”,心里稍稍安定,108条好汉,虽然比较多,但貌似耐心点还是可以解决的,只是奇怪,最后一个错误不在程序末,而在代码的10%行处,另外的90%行代码没有在编译错误提示框中提及过,难道那些代码完全正确,没有错误?肯定是这样的,一定是这样的,木鸿飞心中窃喜,然后再朝下看去,一行提示跃入眼帘:“每次只显示108处错误,还有更多的错误提示没有列出。”木鸿飞差点当场晕倒过去。

屋漏偏逢连夜雨,行船又遇打头风,“更多错误”的风波还没有结束,木鸿飞又遇上了一个难题:有一行代码,编译提示有什么东西没有定义,但是经过无数次的“找茬”,输入的代码完完全全与书本上的一模一样,木鸿飞只好请教哥哥。

哥哥似乎早已料到木鸿飞编译的困惑,直截了当的提出木鸿飞在不懂C语言和图形学的情况下,即使照抄程序也不能成功。

“不懂C语言,就只能逐个比对的方式修改程序,但是这种方法既费神又费时,成功比对一个错误的平均时间大约是两分钟,如此多的错误要猴年马月才可以比对完?知道这个文件中有多少个错误吗?绝对不止108个,后面还有好多错误信息都没有列出了,看架势至少加个零,仅仅一个文件就如此多错误,全部程序只会更多,等你比对完全部文件,黄花菜都凉了。”

“相反如果懂C语言的话很快就可以发现错误。这里提示缺少分号,其实C语言要求每行代码以‘;’结束,了解了这一点就没有必要找茬本,直接在行末加上分号就可以了,敲,多块啊!”

“退一万步说,即使可以一一找茬成功,也不见得可以成功运行程序。因为书上的内容可能是错误的,比如这一行,这个变量名称显然是错误的,估计作者打字是输入错位了。不懂C语言,只是照抄程序,怎么判断排版错误?”

“还有一种可能,就是作者的程序设计上存在逻辑错误,虽然这种情况比较少,但毕竟可能发生,这时即使程序编译通过,也可能在运行时报错,没有相关知识,到时根本不能处理。”

“所以你想照抄一个程序的想法行不通!”最终,木鸿飞的企图如肥皂泡般无情地破碎,留下的只有失望和惋惜。

“赶快放弃照抄程序的行动,认真学习基础,相信有一天你会卷土重来的,那时候你在把设计好的程序秀给大家看,不更好吗。”哥哥一语惊破梦中人,“不要觉得这几天辛辛苦苦的输入可惜,至少你练习了指法,难道没有发现你的打字速度提高了吗?”

 

 

 本文转自 zhuyunxiang 51CTO博客,原文链接:http://blog.51cto.com/zhuyunxiang/436571,如需转载请自行联系原作者




相关文章
|
12月前
|
SQL IDE 前端开发
猿创征文|计算机科班生的成长路之那些相见恨晚的开发工具
猿创征文|计算机科班生的成长路之那些相见恨晚的开发工具
78 0
|
编解码 算法 前端开发
计算机科班生做不好哪些事情容易毕业即失业?
**关注程序员耳东,编程转码真轻松** 上次写完《刚入职的程序员做不好哪些事情容易被开除?》,群里的粉丝读完之后效果不错,但是有大学生粉丝在问: “ 东哥,那我还没毕业的呢,做不好哪些事情就会毕业即失业啊? ” 这篇笔记我就聊聊这个话题,科班生做不好哪些事情容易毕业即失业。
157 0
|
人工智能 分布式计算 算法
程序人生 - 热议:高数、线代应该成为计算机专业学习的重心吗?
程序人生 - 热议:高数、线代应该成为计算机专业学习的重心吗?
196 0
程序人生 - 热议:高数、线代应该成为计算机专业学习的重心吗?
|
Kubernetes NoSQL 网络协议
BAT 老兵的经验之谈,成长路上这个道理越早知道越好
BAT 老兵的经验之谈,成长路上这个道理越早知道越好
135 0
BAT 老兵的经验之谈,成长路上这个道理越早知道越好
|
大数据 云计算
计算机小白与阿里云的爱恨情仇
应届毕业生一路打怪升级学习阿里云的故事
|
消息中间件 设计模式 算法
偷偷地告诉学弟学妹们一个高效学习编程的秘密!大学四年悄悄惊艳他们,嘘
偷偷地告诉学弟学妹们一个高效学习编程的秘密!大学四年悄悄惊艳他们,嘘
164 0
偷偷地告诉学弟学妹们一个高效学习编程的秘密!大学四年悄悄惊艳他们,嘘
|
数据采集 人工智能 算法
经历分享|这些图灵奖主原来就藏在身边
这是一个真实的故事,在笔者今年参加考研复试的时候,发现了一些有趣的联系!
681 0
|
移动开发 缓存 前端开发
圣司:我的前端成长之路,内观自在,外观世音,追寻内心平静
最文艺的前端成长之路分享,相信我,读完它你一定收获良多。
圣司:我的前端成长之路,内观自在,外观世音,追寻内心平静
|
算法 Java C++
漫漫大学江湖录 - 爱与恨唯与工作更交织
前言 其实在18年11月有了华为,就已经宣告结束了大学校招历程,是时候写下总结了,再不写估计很多东西都忘了。 在一些程序员社区混久了,从别人的学习、求职、工作经历中越发感受到很多的正能量,也本着攒RP值的原则,向学弟学妹们,尤其和我非名校双非本科生学弟学妹们传递点正能量,因为博主也是非名校出身,而且在整个求职的过程中能够很明显地感受到名校学生那种得天独厚的优势,同样的实力,名校学生进入BAT等一线互联网企业确实要容易很多,即便技术很水,一样有华为等企业保底,而非名校的可能连简历筛选这关都过不了。
2506 0