对于C语言难学的问题,主要有两点原因。
第一,C语言的语法知识太多、太琐碎;
第二,反复地做算法类的编程练习,不感兴趣,不愿写程序,进而觉得入门困难。
分析了上面的原因后,我们采取了对应的策略:
首先,入门时仅讲最少需要的语法知识,一些额外的语法知识先不要学。比如++、--、复合赋值运算符、逗号运算符、switch-case语句、do-while语句等。实际上不学这些语法,也可以写出完整的程序。
其次,足够的编程量是必须的,可以充分利用在线OJ系统,会给你一个正反馈,并在初始学习编程时养成严谨的习惯。
再次,为了培养同学们对编程的兴趣,我们采用了通过游戏开发来教编程的方式,可以参考:知乎专栏 。
同时,C语言中的相应语法知识,如函数、数组、指针、文件等,都是在开发游戏的实践中,遇到问题,学习相应语法知识后解决问题,从而得到更深的理解和体会。
最后,有条件的话,还是和同学一起学习,这样可以互相交流、督促。后面开发较大的游戏练习时,可以进行有效的团队合作。
希望你能和我的学生一样,写代码写的来不及吃饭、来不及睡觉,经过辛勤的努力,最后拿出非常自豪的游戏作品,向同学、朋友、家人、老师进行展示。在这个过程中,你的C语言会提高很快的。
上面这段话是一位编程教师总结的,实际上这种做法与我设想的学习方法完全吻合,不仅仅是针对某一种语言,而是对于所有工具性知识的学习。总结来就是:以考促学——>以用促学。
在以应用为目标的前提下,适当地做些验证性“练习作业”是可以的,但是绝大多数时候还是为了实现应用而去学习。
之所以有这样的结论,是因为在很多次的实践中发现“以考促学”这个路子行不通,效率低,续航短,因此为这么多次的教训做个总结,改正之。
领取专属 10元无门槛券
私享最新 技术干货