如果是初学 C 语言请看完 一些成功人士的心得
转自程先的专栏
今天,我能够自称是一个混 IT 的人,并能以此谋生,将来大家能一次谋生,都要感谢两个人:克劳德.
香农和约翰.冯.诺依曼,是他们发现了所有的数字化信息,不论是一段程序,一封 email,一部电影都是
用一连串的 1 和 0 进行编码的;是他们发现了我们可以利用一个预先编写好的程序控制机器,并使之完成
我们期望它完成的动作。建议大家在心里默念三遍他们的名字,以示仰慕。当然,如果让你们带着现在的
知识回到他们的那个时代,那么就没有什么图灵奖了。
C 语言程序设计是我们的专业基础课,但是 C 语言本身却是一个非常强大的工具,它是到目前为止最为广
泛使用的工具,并且在可以预见的将来,它仍然是皈依为程序员的人们心中的神器。这个工具作什么的呢?
它在人和机器之间建立了一个交流的平台。
某天,你需要完成一个求 100 的阶乘的作业,于是你搬来一个最新的电脑,为它安装了最新的
windows vista 操作系统,然后坐在它的身前,喊“喂电脑,给我计算 100 的阶乘”,电脑说“ok, wait a
moment”; 过了一会,一盘香菇小白菜端了上来!呵呵,电脑不是 waiter, 你喂它它是不会有反应的,
如果你真的 wait a moment, 恐怕你就需要 wait one more moment 了!一万年后,人们就把你命名
成“望夫崖”。
既然电脑不是伺应生,听不懂我们的话,那么我们要怎么控制它呢?如果你们给我装聋作哑,我会告
诉你期末挂了你,哦,你立马老实了!对于电脑,我要怎么才能使唤它,让它为我工作呢?不错,我们有
个强力工具,C 语言!
好,我们把上面的场景复习一下:
你要我算 100 的阶乘,于是我去机房上机,编写了一个程序:
( 参加 ppt......)
运行程序,哦,结果出来了!
有人认为,现在是 java 和.net 的时代,有谁还需要 C 以及汇编呢?孰不知,java 和.net 是建立在软
件之上的,是为了垄断市场而建立起来的体系,犹如挖好一个金壁辉煌的坑,请你往下跳,还自以为站在
巨人的肩膀上,事实上成了坑底之蛙。要成为一个真正的程序员,并期望成为一个程序员高手,必须从机
器出发,从 cpu 到操作系统,再到软件体系,高手的境界就是悟道后的明镜灵台,软件设计出神入化,
我就是程序,程序就是我。
听完我讲高手的境界,于是乎你很受感动,说:我要努力学习,向高手学习!隔天就买了一堆 MFC,
VB, JAVA 以及.NET 的书回来,早上五点钟起来背书!这样是不行的,正确的入门方法只有一个,要证大
道,唯有此法!同学们,从 C 语言入手,努力学好 C 语言!
旁观者李四说:此人大笨也!我用鼠标随便拖几个控件,就是一个 xxx 管理系统了,你用 C 语言怕是
一年也写不出来吧!好吧,我要承认,讲这话的都已经是 mS 的奴才了,别的我不了解,MFC 本身就是
一个封闭的架构,从 MFC 入手学习,你只会形成一种封闭的思维模式,因为 MS 希望很多人只学会表面
的东西,不致成为高手,所以它大力推荐所谓的可视化的程序开发工具,也真有很多人愿意上他的当,最
后真正迷失方向。说他坐不了程序吧,他也可以作,但是如果程序复杂一点,出现问题时,问题出再哪里
就搞不清楚了,反正是不清楚!
梁肇新,大牛啊,他说:“我就搞不懂了,用鼠标怎么写程序呢?在我的公司里,高手的键盘响个不停,
鼠标偶尔响一下,新手是鼠标响个不停,键盘偶尔响一下,他们的薪水相差的就不是一倍那么多了!”
C 语言是各大操作系统的基础,Unix、Linux、Windows 其内核都清一色是 C 语言开发的,(某些地
方是和汇编语言混合开发的),君不见 Windows API 都是 C 语言函数的接口?Unix/Linux 绝大多数应用
都是 C 语言开发的;Windows 应用程序用纯 API 开发已然不多,大多都是依靠某种 Application
Framework,比如所谓的 VC++,其实就是指 VC IDE + C++语言 + MFC(现在重点已转向
ATL、WTL),但是 Windows 服务、网络、驱动程序等底层软件,还是 C 语言开发的。各种语言的编译
器,包括 java 虚拟机,都是用 C 语言开发的。各种嵌入式设备,如手机、PDA 也都是 C 语言开发的。C