学习心得
作为一个计算机专业的学生,我本对这个专业没有什么概念,也不知道具体是学什么,在这学期,我接触到了第一门编程语言,c语言。我是一个c语言的初学者,虽然高中时期接触过一些,但都没有深入学习,只是为了应付信息考试科目能合格。在这学期的程序设计语言基础课程中,我了解到什么是c语言,怎么编写c语言,是它能够被电脑读懂,并完成运行。
我自己编的第一个代码是“hello world”,在老师的讲解下,打出来这句话并且完成了运行,这让我有一种强烈的满足感和自豪感,我感觉自己完全可以理解c语言,坚信以后会学的越来越好,同时,我也对c语言产生了更加浓厚的兴趣。在课后的时间里,我下载了CSDN 慕课等软件,利用课余时间学习c语言,其中,我认为我利用最多的是CSDN和b站,在遇到问题不会时,可以在CSDN上搜索看看别人的思路,再自己独立完成OTA上的题目。还有b站上翁凯老师的视频和其他pta题目的讲解,让我对一些新知识有了更深的理解。
在学分支结构时,我认为这个模块对我来说算是比较好理解和接受的,其中最常用的就是if语句,完成对条件的判断,还有通过break来结束分支。在接下来的题目中,开始出现了有输入和输出的题目,我开始了解scanf和printf,并通过不断的联系,熟练掌握。刚开始的学习中,我认为还是比较顺利的,这些知识对我来说可以较快的接受和熟练运用,我认为我遇到的第一个难关是循环,在学到循环时,感觉难度突然上升了,在开始学循环时,我只知道有while和for两个循环方式,但却不知道如何运用,再加上我没有好好的预习,所以我对while和for循环的模板都记了很长时间,当我还不容易记会了的时候,做题时又因为不熟练不知道如何下手。还有一个循环中,如果有对个循环时,我容易搞不清是怎样完成循环的,这个问题曾经困扰了我很长时间。
老师说学好c语言最重要的方法就是练习,多练习,在学到后面时,我发现这个方法真的很管用,在后面的学习中,基本上很多题都要用的循环结构,我也慢慢的从练习中明白了循环的原理,就是有一种突然醒悟的感觉。在这么多联系中,就不得不提到老师布置的那次大作业,当时我们在学一维数组二维数组,作业要求编写程序实现数组排序,并且在word文档中写出每一个步骤,这就要求我对每一次排序、每一个程序都要认真分析,做到真正明白才能写的出来,以前我经常因为懒得动脑动手,很多知识没有认真分析就试图蒙混过关,但那次作业,我只好一点一点分析独立完成,当遇到不困难时,我请教了c语言学的很好的舍友,在她的讲解下,我明白了每个排序的原理,终于完成作业,就是在这些数组排序中,用到了很多循环,所以我也明白了如何利用循环,当然,这次作业主要是训练对数组各种排序的应用,我对数组的操作更加灵活,而且理解的更加透彻,因为一直运行不出来,所以我只能一直纠正错误,思考哪里出了错,有时候是没有对变量定义,有时候是忘记调用函数,还有时候会下意思的不用函数写,于是我的代码修改了很多很多次,我的电脑桌面上,一下子全都变成了代码的底稿,还有虽然没有错误了,但却运行不出来,第一次是我的第一个问题运行不出来,但其他问题可以运行,每次一按回车,第一个题目就直接运行结束了。不过最终在自己的努力下,终于纠正了所有错误,并且能够成功运行。说实话,由于我本身学的不好,写代码的能力也很差,所以写这个程序耗费了我不少精力,但我的收获真的很多,第一次完成程序设计的大作业,很有成就感。同时,我也认识到了我的能力非常不足,还需要更加努力的学习c语言,比如我这次第一反应没有用函数来写,就说明我的个人习惯不够好,所以以后要多注意用函数解决问题,养成良好的习惯,会让问题变得更加容易解决。
在学到指针时,难度又比之前有所上升,在指针的学习和理解上,我更是下了很大功夫,我吸取了之前学习循环和数组的经验教训,提前好好预习了指针,但在课上的学习时,仍有些地方跟不上反应不过来,我分不清什么时候该加&,什么时候该加*,在这些地方,我疑惑了很久,在课下的联系中,我也时常反应不过来,我利用周末的时间在b站上看视频,在知道上看课程讲解,并通过PTA上的题目作为辅助,我的能力有了很大提升,彻底弄懂了指针,原来&是取地址运算符,是间接运算符。&a 的运算结果是一个指针,指针的类型是a 的类型加个,指针所指向的类型是a 的类型,指针所指向的地址嘛,那就是a 的地址。总之*p 的结果是p 所指向的东西,这个东西有这些特点:它的类型是p 指向的类型,它所占用的地址是p所指向的地址。在学习结构体时,虽然在听老师讲的过程中,感觉自己听明白了,但结构体的应用却总给我一种复杂的感觉,在完成PTA的题目时,我也无法独立完成,在刚学完的那一周,我们刚好布置了小组作业,设计一个系统,需要用到结构体的知识,在这次作业中,我编写了一部分的代码和完成运行测试,检查错误,所以我又不得不让自己弄明白结构体的原理,在周六周日两天中,我在组长的指导下,明白了结构体的原理,并且还编写了一部分的代码,提供了前期的思路,我们小组在共同努力下,完成了一个学生毕业成绩管理系统,在答辩中是由我们的组长上台答辩的,我们小组在大家都投票中获得了第二名的好成绩,虽然我因为觉得自己懂得不够多没有自信所以没有上去答辩,但我在组长的发言中,感觉自己也有一份参与感,投影的程序和文档中也有我的一份力,这次作业给我了我很大的信心去继续学习c语言,并且我希望我能在下一次答辩中,拥有和组长一样的能力,自信顺畅的去回答别人的提问,自如的介绍我们组的作业。
还有我认为学习c语言很重要的是需要定期的对自己进行测试,平常pta的练习都是课余时间完成的,因为没有时间限制,我可能对自己的真实实力并不清楚,在老师安排的这几次测试中,我每一次都能找到自己的不足之处。第一次测试时,我认为前面学的知识算简单,我应该没有什么大问题,但在测试时,一些平时很快做出来的题目,却怎么都是编译错误或是答案错误,我发现我在平常的练习中,忽略了很多细节问题,比如有时几个%d之间需要加空格,我当时由于没有注意到而一直出现格式错误。在后面的几次测试中,我还发现了我存在的时间问题,我常常做到最后机房里没有几个人的时候才离开,做题的速度很难,看待题目要反应很长时间规划思路,说明我在平时还是练习不够,而且练习的时候没有注意时间。 其实在这学期的学习中,我并不算班级里学的很好的,本来数学就不好的我,也并不认为自己算聪明的,但好在我明白学c语言最重要的是联系,特别是期末复习周的时间,我经常联系PTA中的题目,一道一道的b站的讲解视频,让自己真正明白,虽然最后的期末考试中没有考到很高的成绩,但能够及格已经是我满意的结果了,这是我努力的结果。
通过这学期c语言的学习,我明白了c语言很需要练习,超越别人最实效的方法就是常练习,并且一定要自己亲自动手实践,比死记硬背、听老师讲或是看视频管用的多。只要一步一步来,不急于求成,从基础学起,不仅能学起来轻松,还能找到编程的乐趣所在。



