编程十年 (6):虚荣的C

本文地址:http://www.cnblogs.com/AndersLiu/archive/2011/04/24/programming10years-06.html

作者:Anders Liu

高二的暑假里,我带着自己写的一些程序跑到发小儿家里显摆。他家里也买了电脑,其实他家的经济状况还不如我家,但因为比我晚买了半年,所以价钱便宜了将近一千块钱!性能也提升了不少,我的机器是赛扬366的CPU,14寸球面显示器;而他买的电脑配的是PII450 CPU,显示器也是17寸纯平的。那是新世纪的开始,正是计算机飞速普及和疯狂贬值的年代。

正是在他家里,我才第一次知道,虽然VB程序编译出来也是exe文件,但在没有安装VB的机器上也是不能运行的(后来知道,缺少的其实只是msvbvm.dll这个运行库)。还好QBasic是DOS自带的,而Windows 98又自带了一套DOS系统。无奈之下,只能给他秀一下QB写的一些东西。

谁知道这孙子明知道编程是个挺牛逼的活儿,还故作蛋定,一脸找抽地告诉我,你这个不牛逼,人家牛逼的人都用C语言。其实他甚至不知道编程语言是什么玩意儿,但不知道从哪听来的“C语言”,却正戳中我的软肋。那时的我并不知道编程的精髓在于算法、结构、模式乃至编程思想,而编程语言只是表达这些内涵和将其转变为产品的工具而已。我只知道,在学校里,会一门Basic语言就挺牛逼的,可以让虚荣心和成就感极度膨胀;而在学校外面,还有一种未知的、更牛逼的名叫“C语言”的语言,使我的虚荣心受到强烈打击。

为了“更牛逼”,我决定开始学习C语言。

和学Basic的时候一样,我认为首先要做的是买一本书看。在书店反复斟酌(当然,斟酌的不是书的质量,而是口袋里的银子)之后,我买了一本计算机二级考试的C语言教材。

人类在接触任何新事物的时候,总是会充满恐惧,有抵触心理。我也一样。其实我本打算利用暑假把整本书看完的,毕竟这是一本很薄的书。但是才开个头儿就看不下去了,因为VB的语法已经在我脑海里深深扎根,所以我很难接受C语言的一些写法。凭什么非得#include<stdio.h>才能调用我最熟悉的print(注:此处没笔误)啊?好好的PRINT干嘛非要写成printf啊?变量名凭什么区分大小写啊?程序凭什么不从第一行开始执行,非要写个main函数啊……

于是很快我就丢掉了书,回到了Basic的怀抱,整日与电脑为伍。直到快开学了,补作业。

再开学就高三了,传说中的毕业班。我爸看到我假期里在电脑前废寝忘食的操(注:读一声)行,不由得非常之紧张;虽然他不知道编程和玩游戏的区别,但他很清楚在这上面搞的玩意儿高考是用不到的。所以,一开学就给我定了个规矩,今后只能周末用电脑,平时必须学习课堂知识;为了让我认真履行这个规矩,他还把主机箱拆下来放到他的床底下……

虽然在学习编程时,手边有一台计算机是很方便的,但有的时候,适当地离开计算机,看看书、在草稿纸上写写程序反而更有助于提高。

于是,为了我的虚荣心,我又一次开始了编程语言的学习历程,依然是看纸质书(并且只有一本),在纸上用笔写代码,只不过这时开始用水笔了,不再用铅笔了。至于学习时间,我选择了晚自习时间——为此,可是放弃了每天2个小时的娱乐时间啊……

不过,这简直是有百利而无一害,既避免了堕落,还学习了编程;更重要的是,让我能够攒下一些零用钱,有了腐败(上班后学到的一个词,指出去大吃大喝)的资本。那个时候已经学会了喝酒,而且自打高二下半学期以来,我学会了故作深沉、忧郁和无病呻吟。所以比起玩游戏,我更喜欢和哥们儿一起坐在马路边,吃一把羊肉串,喝几瓶啤酒。

奇怪的是,虽然我没比以前在学习上下更多功夫,学习成绩——或者说成绩排名——却慢慢提高了起来。由于不再逃课去网吧,而且每个晚自习都趴在桌子上写写画画的,老师自然以为是我突然觉悟了,竟然在期末考完试给我评了个“优秀进步生”,还在高三下学期的开学典礼上由校长给颁奖——奖品是废纸(奖状)一张加一摞横格本-_-|||

有些本来学习就不错的一些同学,也对我的变化感到了好奇。有一天晚自习的时候,班上第一名的MM突然蹿到我桌子前面问:“你复习什么呢?”我本来应该是被吓一跳的,可因为过于投入,变成了一脸茫然,然后脱口而出“C语言”。学习那么好的MM自然是没有听过这个词的,于是也一脸茫然。于是我们就相视而茫然。若干秒之后,她尴尬地举起物理练习册,说“问你个题”。

哦,对了,当时我是物理课代表,所以她问我物理问题也是很正常的情况。其实我喜欢物理,从高一起就开始争取物理课代表了,为的是抄作业方便。不过当时物理课代表被一个学习比我好的MM抢走了。后来我当课代表,是因为该MM当了班长;该MM当班长,是因为当时班长忙于谈恋爱,辞职了。

所以说,我的物理课代表只是徒有虚名,就像天上的浮云一样;而以眼前这道题的难度,身为学习第一的她,完全可以自己搞定。所以我的鉴定结果是,此乃刺探军情之伎俩而已。

有点跑题了,地球是圆的,跑着跑着就回来了,所以在此之前,我要继续跑。

其实,后来我也曾思考过,为什么那段时间学习成绩能上来一些呢?这也是高中生活带给我的唯一启发(其他学到的知识都还给老师了)。原因就是——大量重复。其实高中的新知识,高一一年就已经学得差不多了。到了高二,主要的任务就是应付会考(说白了就是副科的高考),先把副科都干掉;另外就是文理分班。等到了高三,基本上就是重复之前的知识。

这是一个很大的陷阱。学习好的同学会嫌烦,反正都会了,何必重复?学习不好的同学会侥幸,还会重复的、还会重复的、会重复的、重复的、复的、的……于是,会有一批人自甘堕落。而我——用我妈的话说——是一个奴性很强的人,非得鞭子抽着才干正事。而高中,或者说目前中国的整个教育,正是一个举着鞭子填鸭的过程。对于我来说,学的东西是不是重复无所谓,可千万不能让那根鞭子砸下来抽到我。

于是,顺水行舟,不退即进。不是爷进步了,是你们Y的退步啦。

不过,大量重复还是给我留下了深刻的印象。正是这种重复性训练,使我对书本知识掌握得越来越劳,颇有“顺手拈来”的感觉。这一点教育着我,在后来的工作历程中,我并不排斥“重复劳动”,当别人正在抱怨“每天都做一样的事”时,我只是思考“这次又做一次这个事,比上次有进步没有?”、“下次还能做得更好点不?”

跑题结束。

就是这样,为了我的虚荣心,我把一整个学年的晚自习卖给了C语言。

其实,当时我每周末还是可以用一用电脑的,但整个高三一年,我却没有编译过一个C程序。由于我用的书是计算机二级考试教材,上面有介绍上机考试的内容,书里面给了一些上机考试的截图,现在看很明显是Turbo C的界面;但当时我并没有见过Turbo C,只是觉得这个界面看上去很像QBasic啊。于是我天真地在QBasic里一行行键入我写的代码,结果自然是无法运行。

后来我在重装操作系统时,因为最初表哥给我的Visual Basic安装盘已经坏菜了,所以我不得不去电脑市场再买一张,这个时候我见到了Visual Studio,它的封面上写着Visual Basic、Visual C++和Visual FoxPro。由于没有卖单独的Visual Basic安装盘的,我犹豫了一下,还是买下了这张Visual Studio。

不过我一直也没想到,这里面的所谓Visual C++,正是微软公司出的C++开发环境,而C++在一定程度上和C是兼容的,至少兼容我写那些破程序是没问题的。于是,我与C++失之交臂。而再次相遇时,她已略显人老珠黄,而年轻的C#则如出水芙蓉般博得了我的爱恋。

那个时候根本没有编译器、IDE的概念,不知道不同的语言是要不同的编译器来编译的,也不知道QBasic也好,Turbo C也好,还是后来的Visual Studio,都是IDE环境。不过幸好,程序的无法运行并没有打击到我,反正高三也没什么事,继续学呗。就这样,我坚持了下来。

  • 回到《老刘连载:编程十年》
  • 上一篇《站在网络边缘,却陷入信息孤岛》
  • 下一篇《科班?自学?》

转载于:https://www.cnblogs.com/AndersLiu/archive/2011/04/24/programming10years-06.html

编程十年 (6):虚荣的C相关推荐

  1. 编程十年 (7):科班?自学?

    编程十年 (7):科班?自学? 本文地址:http://www.cnblogs.com/AndersLiu/archive/2011/04/25/programming10years-07.html ...

  2. 编程十年 (10):我不是比尔•盖茨,我只是厌倦了

    编程十年 (10):我不是比尔•盖茨,我只是厌倦了 本文地址:http://www.cnblogs.com/AndersLiu/archive/2011/04/28/programming10year ...

  3. 编程十年的十种武学境界

    首先非常感谢大家这么多阅读量,评论和推荐.针对大家评论中的问题,在这里做一下统一回复.首先对于要我介绍程序媛的女朋友问题.我周围有一些没结婚的程序媛.她们对男孩子的物质要求都不高.但是女孩子生性浪漫, ...

  4. 编程十年 (2):前传2——哪有这么牛逼的游戏机?

    编程十年 (2):前传2--哪有这么牛逼的游戏机? 本文地址:http://www.cnblogs.com/AndersLiu/archive/2011/04/19/programming10year ...

  5. 游戏编程十年总结(下)(转)

    游戏编程十年总结(下)(转) 一.总结 一句话总结:看完作者的文章,我的感悟是:不到顶尖,终成废土,而且我要是不居安思危,不能够明确自己的处境和社会的竞争,必挂无疑. 这样的故事,真的需要多看. 作者 ...

  6. 编程十年 (4):步入编程殿堂

    编程十年 (4):步入编程殿堂 本文地址:http://www.cnblogs.com/AndersLiu/archive/2011/04/22/programming10years-04.html ...

  7. 程序员父亲的遗产——编程十诫

    我的父亲在和我彻谈编程两个星期之后就去世了. 那个时候我22岁,一个刚刚完成美学学士毕业设计的大四学生.而我的父亲62岁,比大多数我同龄人的父亲都要老.早在60年代,他就已经在田纳西理工大学开始编程了 ...

  8. 程序员父亲的遗产——编程十诫 转载

    我的父亲在和我彻谈编程两个星期之后就去世了. 那个时候我22岁,一个刚刚完成美学学士毕业设计的大四学生.而我的父亲62岁,比大多数我同龄人的父亲都要老.早在60年代,他就已经在田纳西理工大学开始编程了 ...

  9. Vue实现图形化积木式编程(十二)

    执行Blockly生成代码 路由 下一篇 历史回顾 Babylon.js部分 Blockly部分 前言 最终实现效果 本文内容 实现思路 问题分析 问题 原因 不优雅解决 优雅解决 完整代码 后续计划 ...

  10. 【并发编程十九】芊程(fiber)

    [并发编程十九]芊程(fiber) 一.前言 二.芊程(fiber) 1.线程中使用芊程 2.获取当前芊程数据 3.从芊程切回线程 4.创建新的芊程 5.删除芊程对象 6.在不同芊程间切换 7.芊程局 ...

最新文章

  1. 企业网站优化两个重点多加重视!
  2. java设计模式1--工厂方法模式(Factory Method)
  3. 10天学安卓-第六天
  4. 【NLP】医学AI又一突破,微软开源生物医学NLP基准:BLURB
  5. nodejs 图片处理模块 rotate_学会Pillow再也不用PS啦——Python图像处理库Pillow入门!...
  6. 【报告分享】2020数据治理年度报告:规则的激荡与新生.pdf(附下载链接)
  7. 【报告分享】基础设施的新兴趋势-毕马威.pdf(附pdf下载链接)
  8. 地址栏引用PHP中变量,PHP 读取地址栏 参数
  9. [Java] 蓝桥杯 BEGIN-2 入门训练 序列求和
  10. BZOJ4898/5367 Apio2017商旅(分数规划+floyd)
  11. Ubuntu Eclipse 解决中文乱码
  12. 回归分析(数据拟合---MATLAB和1stopt软件)
  13. 服务器共享文件打开未响应,win7共享文件夹会话未响应
  14. 【Calcite】Apache Calcite 框架初探及概念详解
  15. linux内核编译详解
  16. 细菌(disease)解题报告 - 搜索与回朔
  17. 鸟人的Android揭秘(8)——搭建Android SDK开发环境(四)
  18. 网上购车平台上私户,不一样的上私户购车体验
  19. 探索Nancy的module
  20. 程序猿一般喜欢游览哪些网站,推荐?

热门文章

  1. Swashbuckle Swagger组件扩展
  2. struct深层解析
  3. GridView的多表头(排序)实例方法
  4. oracle 简单job
  5. (整理)RMAN备份详解
  6. Angularjs中设置cookies的过期时间
  7. 京东今天还在用 .NET 架构的原因是什么?
  8. Python Json读写(json模块)(转载)
  9. printf_s与printf的异同
  10. centOs环境初始化运行nginx+redis+zookeeper+dubbo_admin