编程十年 (6):虚荣的C
编程十年 (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相关推荐
- 编程十年 (7):科班?自学?
编程十年 (7):科班?自学? 本文地址:http://www.cnblogs.com/AndersLiu/archive/2011/04/25/programming10years-07.html ...
- 编程十年 (10):我不是比尔•盖茨,我只是厌倦了
编程十年 (10):我不是比尔•盖茨,我只是厌倦了 本文地址:http://www.cnblogs.com/AndersLiu/archive/2011/04/28/programming10year ...
- 编程十年的十种武学境界
首先非常感谢大家这么多阅读量,评论和推荐.针对大家评论中的问题,在这里做一下统一回复.首先对于要我介绍程序媛的女朋友问题.我周围有一些没结婚的程序媛.她们对男孩子的物质要求都不高.但是女孩子生性浪漫, ...
- 编程十年 (2):前传2——哪有这么牛逼的游戏机?
编程十年 (2):前传2--哪有这么牛逼的游戏机? 本文地址:http://www.cnblogs.com/AndersLiu/archive/2011/04/19/programming10year ...
- 游戏编程十年总结(下)(转)
游戏编程十年总结(下)(转) 一.总结 一句话总结:看完作者的文章,我的感悟是:不到顶尖,终成废土,而且我要是不居安思危,不能够明确自己的处境和社会的竞争,必挂无疑. 这样的故事,真的需要多看. 作者 ...
- 编程十年 (4):步入编程殿堂
编程十年 (4):步入编程殿堂 本文地址:http://www.cnblogs.com/AndersLiu/archive/2011/04/22/programming10years-04.html ...
- 程序员父亲的遗产——编程十诫
我的父亲在和我彻谈编程两个星期之后就去世了. 那个时候我22岁,一个刚刚完成美学学士毕业设计的大四学生.而我的父亲62岁,比大多数我同龄人的父亲都要老.早在60年代,他就已经在田纳西理工大学开始编程了 ...
- 程序员父亲的遗产——编程十诫 转载
我的父亲在和我彻谈编程两个星期之后就去世了. 那个时候我22岁,一个刚刚完成美学学士毕业设计的大四学生.而我的父亲62岁,比大多数我同龄人的父亲都要老.早在60年代,他就已经在田纳西理工大学开始编程了 ...
- Vue实现图形化积木式编程(十二)
执行Blockly生成代码 路由 下一篇 历史回顾 Babylon.js部分 Blockly部分 前言 最终实现效果 本文内容 实现思路 问题分析 问题 原因 不优雅解决 优雅解决 完整代码 后续计划 ...
- 【并发编程十九】芊程(fiber)
[并发编程十九]芊程(fiber) 一.前言 二.芊程(fiber) 1.线程中使用芊程 2.获取当前芊程数据 3.从芊程切回线程 4.创建新的芊程 5.删除芊程对象 6.在不同芊程间切换 7.芊程局 ...
最新文章
- 企业网站优化两个重点多加重视!
- java设计模式1--工厂方法模式(Factory Method)
- 10天学安卓-第六天
- 【NLP】医学AI又一突破,微软开源生物医学NLP基准:BLURB
- nodejs 图片处理模块 rotate_学会Pillow再也不用PS啦——Python图像处理库Pillow入门!...
- 【报告分享】2020数据治理年度报告:规则的激荡与新生.pdf(附下载链接)
- 【报告分享】基础设施的新兴趋势-毕马威.pdf(附pdf下载链接)
- 地址栏引用PHP中变量,PHP 读取地址栏 参数
- [Java] 蓝桥杯 BEGIN-2 入门训练 序列求和
- BZOJ4898/5367 Apio2017商旅(分数规划+floyd)
- Ubuntu Eclipse 解决中文乱码
- 回归分析(数据拟合---MATLAB和1stopt软件)
- 服务器共享文件打开未响应,win7共享文件夹会话未响应
- 【Calcite】Apache Calcite 框架初探及概念详解
- linux内核编译详解
- 细菌(disease)解题报告 - 搜索与回朔
- 鸟人的Android揭秘(8)——搭建Android SDK开发环境(四)
- 网上购车平台上私户,不一样的上私户购车体验
- 探索Nancy的module
- 程序猿一般喜欢游览哪些网站,推荐?