一个众多学生不解的问题——大学生为什么从C语言开始学习编程

       这两天很多同学给我私信问了同一个问题——为什么学校不以C++作为入门语言?

        很多同学现在正在搞ACM,知道C++在很多情况下不如C语言灵活,尤其是stl等工具的使用上,不能随心所欲编写想要的算法。但是,C++作为C语言的超集,面向对象的思想等等都是C语言不可及的。它兼具其他面向对象语言的特性,并向下兼容C语言,在在很多同学看来应该拿它作为入门语言。当然,初读C++ Primer这类书的时候很难啃下来,但是如果结合上课讲解的知识,对C++有个大致的了解是没有问题的。但是很多学校仍旧拿C语言作为入门计算机语言,C++课程名字直接就是面向对象,有些不可思议。

  还有为什么学校不会介绍一个重要的工具——STL?它的正确性、稳定性和高效性已经被无数次验证,为什么学校不介绍它。很多同学相信STL在真正的软件设计里面应用十分广泛的。

  他们问了一个非常好的问题。不过我的回答也许让你失望,我今年1月去做过学校调研交流,对学校在程序设计教学中的做法还是认可,并且作为一段时间以来要学习的。在我所在的学校,尽管第一门程序设计课称为程序设计基础或C++程序设计,在这个为时两学期的课中,第一个学期基本还是C的内容,讲C++中面向过程的程序设计,第二个学期是面向对象的部分。你们学校的分两门课的教学,中间还要插入一个以实践能力提高为主的短学时课程,其好处是明显的。

  要回答你们的问题,必须明确,在大学里第一门程序设计课程中要解决的主要问题是:学会编程序。因此名为XX语言程序设计,重点在于程序设计方法,然而现实的考虑中也不得不将很大的精力投入到语言本身中来。学习第一门语言,首先在于能设计程序,至于用这个语言解决工程中实际问题的方案,倒是要放在其次了。在我的教学中,STL也只是会提及,并不作为要求。

  大学的课程是一个体系,想要实现的某一个目标常体现在多门课程中,并且各门课程之间能够形成承接关系。举一个例子,排序在学科中很重要,数据结构中有专门的内容,在程序设计入门课程中,也要初次尝试。这些尝试要比学会用STL中的sort算法更有意义,更应该放在优先的地位。再如,你正在做的计算几何问题,以及图形学课程中将要学习的算法,不是也有现成的图形包可以直接使用吗?实际上,大学的课程从用的角度有两方面的兼顾,一是能够直接用,二是要通过这种体系,为你将来进一步地理解STL、图形包之类的机制、工具提供支持。而后者,你应该意识到,这是专业人员,无论在思维方式上,还是对适应行业变化,甚至是引领行业变化的资本所在。

  有一句大家相传甚广的话你没有说出来:大学,有用的不教,尽教没有用的。从某种意义上这句话对,但是,在“用”的层次上多加区分之后,你会发现,直接用于工程,以及直接用于学习能力提高与思维方式改变,间接用于形成终身学习能力,适应技术的可能变化,这都是大学之用。在此当中,“直接用于工程”没有太多的突出,也不见怪。学习计算机的另外一些路子,市场用什么就学什么,想转做另外一个方向的工作,必须接受培训,他们所学的全部就是直接用于工程的知识。

  做了如上的解释,我不能回避学校教育中的缺失。我们正处在这个时期,其实真实的世界中,补上这个缺失,又会在新的发展阶段遇到新的不足。其中还有一个缺失是,没有让同学们体会到直接用和间接用之间的关系。我当老师多年,也深知在“读高中是为了考大学”,“上大学是为了找工作”这样的直接思维甚浓的条件下,大学在改变学生的学习方面,不只是只坚持目前该有的做法就算可以的了。C++课中是需要有STL的内容的,但在有限学时,以及不少学生在学习上的投入问题,其中的取舍,作为老师是有纠结的,当学生的,不同的人,根据情况,可以有不同的应对。

  意识到这一点,也就知道了,大学的教学计划只是一个公共的要求,是一个获得毕业证的最低标准,要知道除了老师教的,课外必须要有自己额外加的。这一部分是可以有充分的自主性的。你另加STL就是一个很好的做法。参加ACM竞赛要额外做大量练习,这也是一个超越教学计划的做法。在某个时期,需要,也可在应用能力提高上投入了,自行安排学习即是。如果届时选择用的语言是C++,把STL用熟,那是不可回避的事。上过了大学,就要有准备,也要练出自学能力,需要学的东西,并不一定需要人教。如果不去摆脱总让人教的思维,结果就是当技术发展了,你将不能主动地站到前沿,在等人教的过程中,面临无情的淘汰。

  回到你问的问题上,在工程中用哪种语言,根据需要去定。而实际上,在大学中程序设计入门,选用哪种语言,是可以有多种选择的。比如还有的学校用Java,国外开始有用Python的。这都是多种选择中的一种,各有利弊。作为学生,你的选择是,照你的学校安排的路线去执行。其中的不足,还要有课外的学习作为补足。上课只造就所有同学共性的地方,课外却使你拥有了自己的精彩。不同的同学在课外有了不同的选择,于是分出了水平上的阶梯,以及出现了各具特色的人才。

  用好你当前的教学计划中提供给你的帮助,开创出自己有效的自学,让你的大学更精彩。  

       “作为一名从事了10年开发的老程序员,最近我花了一些时间整理关于C语言、C++,自己有做的材料的整合,一个完整的学习C语言、C++的路线,学习材料和工具。C/C++、编程爱好者的聚集地!欢迎初学和进阶中的小伙伴。希望你也能凭自己的努力,成为下一个优秀的程序员。工作需要、感兴趣、为了入行、转行需要学习C/C++的伙伴可以跟我一起学习!”


©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 218,525评论 6 507
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 93,203评论 3 395
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 164,862评论 0 354
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,728评论 1 294
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,743评论 6 392
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,590评论 1 305
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,330评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,244评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,693评论 1 314
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,885评论 3 336
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 40,001评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,723评论 5 346
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,343评论 3 330
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,919评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 33,042评论 1 270
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,191评论 3 370
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,955评论 2 355

推荐阅读更多精彩内容