前言
想到写这些文章,这个真的是说来话长了啊...现在是2019年1月12日,2018级的同学们都已经修完了这门课程,该混过去的也都混过去了,但心里仍然是感慨万千,最后还是决定在自己这么菜的时候写几篇这样的文章,算是一点总结吧,有任何问题欢迎联系我。
这个课程应该是学校计算机科学与技术学生的第一门专业基础课,课程名虽然是程序设计基础,但其实更多地都是在讲授C语言的语言特性,希望未来这门课真的会多培养学生的编程兴趣和素养吧。
教材用到的是国内的一本个人觉得不是特别好的书,书中有非常多不合标准的写法,印象中老师也按照书上的内容给学生讲了许多事实上是标准未定义的行为的东西。我在高中阶段接触到51单片机并尝试着自学C语言的时候看的书是C语言程序设计:现代方法 【美】K.N.King著,推荐给你们,当然还有像C Primer Plus一类的经典教材了。
我虽然不是导生,但也有加几个学弟学妹的微信,拉了小群,给了一些建议,希望他们在学习这些东西的时候能少走一些弯路。然而最后发现收效甚微,多数人并没有办法做到学习更多不是在课本上的东西,你要明白的是,只会书上的东西,只会老师教给你的东西,你最后毕业会发现自己什么也做不了,什么也不知道。首先,一学期就精通某些东西是几乎不可能的事情,另外某些学生企图在期末的几个或者一个晚上就学会什么,这只能帮你混过考试,而你并没有学到什么东西。其次,正常情况下,不管是混过考试还是好好学习通过考试的学生,几乎没有在考试之后继续学习这门课的相关内容的,即使他们真的对这个东西感兴趣,我个人的猜测是高中阶段大部分学生都已经养成了被老师灌着学习的习惯,早就忘记了该怎么自己去学习自己需要的东西。
我觉得在学习的时候应该多思考一下:
- 我为什么要学这个东西?
- 我学这个东西有什么用?
- 我为什么要这样写?这样写有什么好处?
- 我真的理解这个东西了吗?
我不希望你的答案是:因为这是一门必修课程;因为可以装X,写代码的样子很酷;老师说这样子写就可以,反正大家都这么写,我也跟着写肯定没错;你看书上就是这么写的!
此外,养成独立思考、解决问题的能力也同样重要。要记得,Google is always your good friend,而不是当一个伸手党。现在你遇到的多数问题基本上都能通过搜索来解决,尝试着自己解决问题的时候你能总结出一些解决方法的共性或者经验教训,而如果你没有养成良好的习惯,到了以后没有老师和同学的时候,你可能很难或者不能很快地解决你当下遇到的各种问题。