自学编程难不难系列 之 C语言 ..

作者: 一了 <1liao3@funlang.org>
日期: 2016-05-02

有人反映汇编语言拿来自学编程太过于无厘头(见自学编程难不难系列 之 汇编), 又或者磁盘编辑程序过于另类而小众. 本系列文章只是回答自学编程难不难, 而非回答该如何自学编程. 实际上对于自学编程, 我是建议从简单的语言开始, 入门要简单, 学习曲线要平缓, 我自己设计实现的 Fun 语言 实际上是个蛮好的开始, 这里不妨推荐一下, 感兴趣的可以看一眼: Fun 语言手册

在1999年下半年得到上机机会之后, 半年中我一口气自学了汇编, Basic, C语言和C++, 正好是 ABC ;-]

当时电脑应该是公司闲置的486(或者是386? 谁记得!), 性能又不能拿来渲染3D图, 正好我借机练手. 学习资料是非常缺少的, 一开始学汇编完全就靠用 debug 瞎鼓捣, 幸好汇编语言概念很少, 用 debug 操作也能对寄存器和内存的修改结果做直观观察, 应该算少走了不少弯路. 但是到高级一点的语言, 有语法啊这些就必须买书看, 我记得C语言和C++是买书看了的, Basic 因为太简单了, 不知道怎么就会了. 在那个不能上网查资料的年代(我自己不能上网而已), 盗版光盘非常有用, 去中关村查书的时候不知怎么被人忽悠, 就买了块盗版光盘(实际上我不记得是盗版光盘还是软盘, 反正是盗版的, 一大堆软件), 哇塞, 里面啥都有啊. (吐槽: 盗版之争太复杂, 就简单说几句, 盗版对中国人软件和编程入门作用很大, 但是多年之后危害也不小, 很多人已经习惯了盗版, 也许这并不是公司的本意. 现在人力成本越来越高, 公司员工还花大把时间去寻找盗版, 还要冒着有木马病毒的风险, 实际上对所在公司是一个很大的浪费. 作为个人, 尽量去选用开源或免费的软件, 盗版要慎之又慎, 不要再把盗版作为第一选择)

于是乎, 我照猫画虎, 用C语言写了几个程序, 如下图, 一个仿 FoxBase 的数据管理软件, 汉字显示软件(实际上就是读取点阵字库显示而已), 仿 Windows 界面软件(这个真的就是仿而已, 什么功能都没有), 以及一些杂七杂八的东西. 为了打包这些软件, 我自己用C语言写了一个压缩软件. 因为非科班出身, 基础薄弱, 硬是去书店看书学会了哈夫曼编码, 哈哈. 连带做了一个打包和解包软件, 相当于现在的安装软件了. 多年后回头看, 开发自己急需要用的工具软件, 已经成了一个习惯了, 成立 Macrobject 之后, 我们因为要做某样东西, 需要另某样东西, 最后竟搞出一大堆产品了...



图中所示的 DBMS (不要吐槽这个名字了) 数据管理软件, 仿的是 FoxBase 数据管理部分, 定义/修改数据结构, 增删查改, 索引排序, 比较有意思的是当时写了一个手工画表格功能, 就是用键盘快捷键(主要是箭头键)画表格. 吊诡的是, 多年之后我又写了一个手工画表格程序, 不过这个是用 Delphi 操作鼠标画的表格, 这个程序居然成了我们拿下某部委项目的敲门砖, 哈哈. 实际上像是冥冥中自有天意, 我在初学时写过的很多程序, 都在实际工作中翻版再搞一回, 比如用汇编写的文本阅读器, 多年之后就又写了一个文稿导读器(实际上就是演讲稿提示器, 连奥巴马都用这种东西), 又比如用汇编写的音乐播放器(实际上是简谱播放), 多年之后我们做的游戏, 其音乐就采用类似于中国古典五音的简单方式(不过也是因为我们雇不起做音乐的).

因为在 DOS 时代做菜单非常繁琐, 后来用C语言(更后来是C++)抽象了一套菜单代码库, 不过现在你也知道了, 然并卵, DOS 时代已经完蛋了.
而我, 就是赶上了这趟末班车, 在 DOS 这个不受控的系统了, 尽情的玩耍了一回...

不出意外, 我应该要写在 Windows 环境里如何自学编程了, 敬请期待!