统底层你知道的操作系统哪一个不是C语言写的所有的windowsUnixLinuxMacos/2没有一个里外的如果你不懂C语言怎么可能深入到这些操作系统当中去呢更不要说你去写它们的内核程序了。
第三很多新型的语言都是衍生自C语言CJavaCJperl...哪个不是呢掌握了C语言可以说你就掌握了很多门语言经过简单的学习你就可以用这些新型的语言去开发了这个再一次验证了C语言是程序设计的重要基础。
还有啊多说一点即使现在招聘程序员考试都是考C语言你想加入it行业那么就一定要掌握好C语言。
那么究竟怎样学习C语言呢 1:工欲善其事必先利其器 这里介绍几个学习C语言必备的东东 一个开发环境例如turbo C2.0这个曾经占据了DOS时代开发程序的大半个江山。
但是现在windows时代用turbo C有感觉不方面编辑程序起来很吃力并且拖放更没有函数变量自动感应功能查询参考资料也不方便。
建议使用Visual C这个东西虽然比较大块头但是一旦安装好了用起来很方便。
一本学习教程现在C语言教材多如牛毛但推荐大家使用《C语言程序设计》谭浩强主编 第二版 清华大学出版社此书编写的很适合初学者并且内容也很精到。
除此以外现在有很多辅助学习的软件毕竟现在是Window时代了学习软件多如牛毛不象我们当初学习只 2:葵花宝典 学习计算机语言最好的方法是什么答曰读程序。
没错读程序是学习C语言入门最快也是最好的方法。
如同我现在学习新的JC等其他语言不再是抱着书本逐行啃而是学习它们的例程。
当然对于没有学过任何计算机语言的初学者最好还是先阅读教程学习完每一章都要认真体会这一章的所有概念然后不放过这一章中提到的所有例程然后仔细研读程序直到每一行都理解了然后找几个编程题目最好是和例程类似的或一样的自己试图写出这段已经读懂的程序不要以为例程你已经读懂了你就可以写出和它一样的程序绝对不一定不相信你就试一试吧如果写不出来也不要着急回过头来再继续研究例程想想自己为什么写不出来然后再去写这段程序反反复复直到你手到擒来为止祝贺你你快入门了。
3登峰造极 写程序的最高境界其实就是掌握各种解决问题的手段数据结构和解决问题的方法算法。
是不是写出底层程序就是程序设计高手呢非也写底层程序无非是掌握了硬件的结构况且硬件和硬件还不一样要给一个芯片写驱动程序无非就是掌握这块芯片的各种寄存器及其组合然后写值读值仅此而已。
这不过是熟悉一些io函数罢了。
那么怎样才算精通程序设计呢怎样才能精通程序设计呢举个例子你面前有10个人找出一个叫“张三”的人你该怎么办第一种方法直接对这10个人问“谁叫张三”。
第2种方法你挨个去问“你是不是张三”直到问到的这个人就是张三。
第三种方法你去挨个问一个人“你认不认识张三指给我看”。
不要小看这个问题你说当然会选第一种方法没错恭喜你答对了因为这个方法最快效率最高但是在程序设计中找到解决问题的最优方法和你用的手段却是考验一个程序员程序设计水平的重要标志而且是不容易达到的。
刚才这个问题类似于数据结构和算法中的Map数据结构穷举查找和折半查找。
所以掌握好数据结构和一些常用算法是登峰造极的必然之路。
最后给大家推荐严尉敏的《数据结构》清华大学出版社希望每一个想成为程序设计高手的人研 今天我能够自称是一个混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语言怕是一年也梁肇新大牛啊他说“我就搞不懂了用鼠标怎么写程序呢在我的公司里高手的键盘响个不停鼠标偶尔响一下新手是鼠标响个不停键盘偶尔响一下他们的薪水相差的就不是一倍那么多了” 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语言历史悠久其内容也绝非谭浩强老师的《C语言程序设计第二版》所描述的那么简单——那本书只是针对中国国情的教学入门书而已。
学生总喜欢问那种语言好学那种语言有前途这种问题天天在讨论永无休止。
其实我觉得大家所关心的无非是那种语言更有“钱途”学习那种语言毕业后能够轻松找到高薪的工作——当年我也是这么想。
那么我告诉你如果你精通C语言请你去华为不要在小池塘里浪费青春了 OK 听了我苦口婆心的劝告你准备从C语言入手开始攀登程序员高手这座山峰了在你出发之前你的行囊中需要准备什么呢 第一个要装进行囊和你一起前进是“规范的格式”有很多教科书参考书不太注重程序的格式的问题写出的程序就象一堆堆的垃圾一样这也导致了现在很多人写的程序中有很多的废码垃圾代码这和那些入门的书有非常大的关系要把那些作者都拿来打打PP。
真正的商业程序绝对是规范的张三写的程序和李四的程序格式大致相同各种标识符的命名规则一样否则谁也看不懂你写的程序。
如果写出来的代码谁也看不懂那绝对是垃圾。
如果要把那些垃圾翻半天勉强才把金子找出来那这样的程序不如不要还不如重新写过这第二个要装进行囊的是耐心所谓工欲善其事必先利其器。
要想成功没有一个相对平淡的过程是不可能的。
这不仅仅指你在学习过程中要有耐心要循序渐进而起也说的是另一个重要的方面调式程序。
调试是写程序过程中一个重要的方面如果有人能一次写成程序牛啊而且是大牛不光是大牛还是老子骑的那头青牛凡人是做不道的调试是每个程序必定经历的历程。
经常有同学问我老师我的程序完全没错误啊都是照书抄的啊怎么就运行不出来呢对于这个问题我也看不出来你们有问题可以找我找其他的老师老师找谁啊李师父那是很荒谬的我就只好坐下来调试这个说实话调试是很枯燥的所以有同学抱怨说我操作太快不理解为什么要这样为什么要那样我的脾气不太好一烦躁就会骂人地所以这个就需要你们自己修炼内功了 有了这两个就可以了可以出发了估计有人说了英语和数学不要了大家都说大学生了这种问题就不要问了嘛你已经用早晨和傍晚的时光学习了英语了我这个没有要去计算机专业英语超简单小学水平而已记住一些专业词汇就可以了关于数学说数学好写程序就好是没有科学根据的我就有个同学数学回回100分写程序也就是hello world的程度不过人家现在是数学博士了惭愧啊做为的大学生而且是我们这个专业的大学生已经完全具备了写程序所需要的数学素养了所以这个不是我们要担心的Ready Go 第一招学什么呢打狗棍法呵呵 有一个伟人说过“重复权威是成熟的必经之路”这是站在巨人的肩膀上的做法习武之人首先要学的都是各种套路比方说辟邪剑法然后才能融会贯通开宗流派我们学习写程序也要这样来这是一个捷径帮你走得更远得捷径。
看书看好书书中所写是前人数十年经验所写看十本书就相当于汲取了前人数十年的功力那么你的内功也会迅速上升1甲子。
书当然要看好书只有好书才营养丰富。
要做到读书破万卷编程如有神枯燥的看书是很郁闷的很容易变成化石现在很多是书都是用
源码说明问题的
源码就像是动画、就像是幻灯片把书中的招式一一演练给你看。
可以说高手的经验大都是源自代码最后也都化成
源码展现在大家面前把书上的程序一个一个的输入用键盘自然我让你输入程序不是让你练习盲打你在输入的过程就可以品出程序的好坏来了如果发现自己输入了很多重复代码那至少这个程序的结构就不好了穷则变变则通嘛你就想改进它啊这不是很好吗 当然程序输得多了盲打功力也上了一个台阶键盘敲得快了薪水也跟着涨上去了_ 不过键盘敲得快不代表你的程序就写得好否则学校只要每个学生发一份盲打联系软件四年毕业后个个都是程序高手了 好了你输了一个程序进电脑了锻炼了手部肌肉也运行出了结果愉悦了身心就此满足了那离高手还远呢要变成高手你还要锻炼一下你得脑部肌肉拿起你得笔拿起你得纸用你得大脑这号称世界上最精密的机器来运行你输入的程序记录下不同运行时刻变量的值记录下程序的运行分支最后发现这个程序被你解剖到了纸上我相信也解剖到了你的心里这是捷径的核心一定要记住输入的程序不是说正确运行就完事了要去阅读一下代码利用笔和纸做辅助工具做一下笔记这就是重复权威 当然如果你是天才那请你塞上耳朵你不在我们讨论的范围之内 为什么这一步很重要呢 大家刚开始学习的时候是不是有种感觉如果让你写一个程序你从哪里下手呢前面后面上面下面为了解决这个问题我的程序该如何写呢抓耳挠腮好烦啊于是乎干脆睡觉去不写了你看这种行为是要打PP的 练武功总是先重复师父的动作才能有自己的动作所以也让我们重重复别人写的程序开始然后再写自己的程序吧 遵循这个方法你们就跟着组织走上了通往罗马的大路了 接下来你得走啊不走怎么到罗马呢 把你学会的程序设计方法应用到你写的程序中去啊 某天你看到这里有个问题你有了想法怎么办上机去和键盘奋战去stop stop 暂停一下上机之前不要忘记了你的笔和纸勇敢地把你的想法写下来如果写不出来就不要去机房浪费爸爸妈妈的血汗钱了 当然你不能乱写啊写出来的东西怎么样才叫不是乱写的呢实践是检验真理的唯一标准用你的大脑去运行一边啊不是叫“人程序合一”嘛这就是了学武功就要学绝世武功虽然号称最精密实际效果上人脑还是没有电脑的准确度的如果你的大脑能马马虎虎地运 自然我们说一天到晚面对字符界面的TC是有些郁闷大家都习惯.
上一篇:
java实现类似百度文库预览pdf功能
下一篇:
小学英语作文:讨厌的蟑螂(双语)