以下内容来自互联网,不代表本站观点。
我小时候在农村长大, 高中才搬到小镇里, 上大学之前根本就没有接触过计算机, 后来我看到一些牛人的回忆说小时候玩什么学习机,10几岁就开始学编程,用Basic 写程序, 学PASCAL参加编程比赛, 我心里就很羡慕: 人和人的差距可真大啊。
让人怀疑的C 语言
上大学之后学的第一门语言就是C ,学了一个学期, 沮丧的发现, 连个图形界面的程序都写不了, 净是些基于命令行的小程序。
有天晚上, 我听着winamp (估计70,80后才知道道这个古老的mp3软件)中播放着Beyond的歌, 在Turbo C里敲完了一段链表的小程序, 走出宿舍,仰望星空,突然间对计算机业产生了深深的怀疑:这玩意儿到底能干啥?
当时确实是井底之蛙,不知道写图形界面程序,掌握了Windows GUI编程即可, 更何况Visual Basic ,Delphi 工具已经出现,可以快速开发GUI程序。
C语言贴近硬件,直接操作内存,无比强大,是编写系统级软件的不二之选, 但是真的适合入门吗?
由于太底层,刚接触计算机的学生也不能写操作系统,数据库,中间件等系统级软件, 哪怕一个简单的,粗糙的也很难。 只能写一点数据结构相关的小程序,再加上被指针不断的蹂躏摧残,很容易丧失斗志。
蔡学镛在《编程ING》一书中给出了一张图,我很喜欢:
这幅图讲的是学习的正向激励, 其中“成就感” 很重要,直接决定能不能更好的学习下去。
我在刚开始学习C的过程中就是没有成就感, 差点Game Over了。
通常来说, 带图形界面的程序容易激发成就感,如果是带上游戏功能和网络功能那就更吸引人了,而仅仅靠我们大学所教的C语言是搞不定这些的。
所以我认为C语言不太适合入门。
我当时能坚持下来估计得感谢高级程序员考试(现在应该是叫做软件设计师), 备考的时候把严蔚敏的《数据结构和算法》后面的习题做了一遍, 当然是用C语言。
这一下收获很大,极大的锻炼了逻辑思维能力,后来的工作中,只要不是设计算法, 基本上没能难住我的。
虽然C不适入门, 还是应该回头学习一下, C太贴近硬件了,能帮助你理解程序在机器层面到底是怎么工作的。
如果你在此过程中又深入学了网络编程,Linux相关的系统编程, 你会发现这个领域也是非常有趣的, 想想看,自己用C语言写一个小的Web服务器, 简单的数据库, 简单的分布式文件管理系统, 是不是也很酷?
更重要的是,系统级编程博大精深,并且非常稳定,值得深入钻研,成为专家。
我后来进入了应用层进行编程,更多的考虑是怎么去实现那些“变态”的业务, 离底层越来越远了, 但是一直对那些在系统层编程的兄弟们充满敬意, 因为他们提供了那些让我们赖以生存的系统软件啊 !
本站内容未经许可,禁止任何网站及个人进行转载。