一、技能学习心得
1、你有什么技能比大多人更好?
我觉得我的接受能力很快,大一下学期的体育课学游泳时第一次下水掌握了漂浮,第三次下水掌握了仰泳,第七次下水学会了蛙泳换气,期末体育课总评为98分;第一次滑雪通关观察发现了平底双脚滑行的诀窍,通过练习可以基本舍弃雪杖(小学二年级起,滑过两年旱冰),滑高级雪道滑下从未摔倒。
2、针对这个技能的获取你有什么成功的经验?
我总结的经验有两点,第一点是思考,第二点是要勇于实践,第三点是坚持不懈。
- 在实践前需要进行些许的思考,找到正确的方向后再开始着手,不然很容易出现南辕北辙的情况。
- 在实践中要善于思考,不断地总结经验,不断地修正方向,有这样一则实验,在一片足够大的空地上,一个蒙着眼睛的人行走出来的轨迹是一个近似的圆型,这是由人的脚型大小和脚步的不一致造成的。一般来说,大多数人右脚比左脚的步子总是大些。(左撇相反)睁眼的时候,我们会根据眼睛里看到的参照物,不断地微调行走路线,使之成为直线。但闭上眼睛后,就是去了参照物,也不能发挥这种调节功能了。这时候,人们还总是觉得自己在走直线,就任由两脚自然向前,最后的结果是人却不由自主地往左偏移了。我们盲目学习新事物的过程,就相当于我们蒙着眼走路的过程,所以我们不要盲目,要睁开我们的眼睛,而这双眼睛正是我们善于思考的大脑,充分的思考,能让我们少走很多弯路。
- 在实践后我们更需要反思,总结本次实践的不足思考解决方案,能让我们更加接近成功。
学习时千万不能纸上谈兵,这就像游泳,如果不下水,在岸上无论把动作学的多么到位,一样是个旱鸭子,是禁不起事实检验的。所以克服我们心中潜在的畏惧意识,不怕困难,不怕失败,坚持下去总会成功的。体育课能拿到较高的分数,和不断地练习也是分不开,除去每周一次的体育课,每个周末至少都会去一次游泳馆。我额外的收获就是一学期瘦下了32斤。
老师的博客,提到了做中学这一观点,我个人十分赞同。在我看来,什么事情,只有自己亲力亲为的去做,去琢磨里面的原理方法,才能够做成。否则面对一件事,你只是去空想,想的天花乱坠,那不过也只是你的空想空谈,没有你自己亲自去学去做来的实在。博客中的一篇文章讲的是五笔打字法的学习方式,五笔打字是一种相对较难的打字录入方式,不过只要是多加练习,我们也能够掌握这门打字方法,可见练习和训练的重要性。而且五笔打字法看似困难,但是这其中也蕴含着规律,摸清规律,找对感觉,五笔打字也可以做得到。接着我又看了老师有关训练乒乓球的博客,我也很有感触。我对篮球的感觉,和老师对乒乓的感觉有相似之处,我开始的时候也只是随便瞎玩,把球往天上一扔,管你走不走步,开心就好。可是随着对这门运动接触加深,我就越想要好好训练把自己的篮球技巧练好,做得更加专业。不断刻苦的练习练习再练习,这是漫长而艰苦的过程,不过它更是一个进步的过程,没有谁的成功可以一蹴而就。这些学习过程中强调练习的重要性,我觉得这和我我在篮球上的训练也有一些相通之处。练习才是王道,不练难以成才。
总结自己的经验与娄老师博客中所谈的成功经验,我觉得Java的学习需要日复一日的努力和坚持不懈的积累,并把思考融入进努力之中,才能取得不错的成绩。
二、有关C语言学习的调查
1、你是怎么学习C语言的?
大一下的C语言课程由徐xq老师讲授,上课认真听讲,记好笔记,尤其注重徐老师提出的问题,课后认真消化所学知识,在作业系统中尝试编写代码,由浅入深,由简至难,不断刷题,实在想不透的时候找老师或学的好的同学答疑,努力去掌握每个学过的算法,掌握细节,每次感觉自己有了些许提高的时候,就是自己完成一次实验课的时候,只有在实验时遇到的复杂要求,才能真正检验出自己学习的不足之处。
估计代码大概写了3000行,除了实验课要求的复杂代码,都没有太过复杂的,基本上都可以理解,复杂程序的理解不够深入,简单代码理解透彻了,在逐步理解复杂的代码,量变终究会引起质变的,质变的速度取决于努力的程度。
3、学过了C语言,你分的清数组指针,指针数组;函数指针,指针函数这些概念吗?
数组指针:本质是指针,指向了数组,有行指针也有列指针。
指针数组:本质是数组,由多个类型相同的指针构成。
函数指针:本质是指针,指向了函数。
指针函数:本质是函数, 形参为指针变量。
4、学过了C语言,你明白文件和流的区别和联系吗?如何区分文本文件和二进制文件?如何编程操作这两种文件?
- 文件是计算机管理数据的基本单位,同时也是应用程序保存和读取数据的一个重要场所。流是字节序列的抽象概念,例如文件、输入/输出设备、内部进程通信管道等。流提供一种向后备存储器写入字节和从后备存储器读取字节的方式。流是一种分段操作,不会永久存在,文件是实体,被固定存储。
-
文本文件中的每一位数字都单独占用一个字节的存储空间,而二进制文件则是把整个数字作为一个二进制数来储存的。
——来源于百度
5、学过了C语言,你知道什么叫面向过程程序设计吗?它解决问题的方法是什么?
面向过程即将任务分成几个过程来实现,即划分不同模块,最后在主函数中将几个模块串联在一起,一步一步实现,具体可以通过调用函数等方式,从部分到整体,从细节到全局。
6、在C语言里面,什么是模块?你写过多个源文件的程序吗?
为完成某一功能所需的一段程序或子程序;或指能由编译程序、装配程序等处理的独立程序单位;或指大型软件系统的一部分;
我还没有写过
7 、学过了C语言,你知道什么是“高内聚,低耦合”吗?这个原则如何应用到高质量程序设计中?
这个真的不清楚,通过百度理解了一下,
内聚是从功能角度来度量模块内的联系,一个好的内聚模块应当恰好做一件事。它描述的是模块内的功能联系。耦合是软件结构中各模块之间相互连接的一种度量,耦合强弱取决于模块间接口的复杂程度、进入或访问一个模块的点以及通过接口的数据。高内聚低耦合,是软件工程中的概念,是判断设计好坏的标准,主要是面向对象的设计,主要是看类的内聚性是否高,耦合度是否低。高内聚是指一个软件模块是由相关性很强的代码组成,只负责一项任务,也就是常说的单一责任原则;低耦合是指让每个模块,尽可能的独立完成某个特定的子功能。模块与模块之间的接口,尽量的少而简单。
也就是说,让每个模块,尽可能的独立完成某个特定的子功能。模块与模块之间的接口,尽量的少而简单。如果某两个模块间的关系比较复杂的话,最好首先考虑进一步的模块划分。这样有利于修改和组合。
——来源于360百科
8、学过了C语言,你如何把数组A的内容复制到数组B中?如何查找整数数组A中有没有数字5?
#include<stdio.h> #define N 5 main() { int a[N],b[N]; int i; printf("输入数组a:\n"); for(i=0;i<N;i++) { scanf("%d",&a[i]); } printf("b数组:\n"); for(i=0;i<N;i++) { b[i]=a[i]; //互换结束 printf("%d\n",b[i]); } for(i=0;i<N;i++) { scanf("%d",&a[i]); } for(i=0;i<N;i++) { if(a[i]==5) printf("a[%d]:5!",a[i]); //输出“5”所在数组中的位置 exit(0); } }
9、如何对整数数组A进行排序(从小到大,从大到小 )?写出相应程序。
#include<stdio.h> #define N 10 void Paixu(int a[],int n) { int i,j,c; for (i=0;i<n-1;i++) { for(j=i+1;j<n;j++) { if(a[j]>a[i]) { c=a[j]; a[j]=a[i]; a[i]=c; } } } } main() { int a[N],i; for(i=0;i<N;i++) { scanf("%d",&a[i]); } Paixu(a,N); printf("从大到小排序后:\n"); for(i=0;i<N;i++) { printf("%d\n",a[i]); } }
写一个程序,统计自己C语言共写了多少行代码
思考了一下,仅有一点点头绪,涉及到文件操作的部分没有掌握,短时间写不出来,日后我会把这部分课程补上的。
你知道什么是断点吗?给出自己调试程序的例子。
断点是人为设置的,意思就是让程序执行到此“停住”,不再往下执行。
例子:在代码编译出现问题的时候,经常要用老师教的“单步调试”的方式(debug)对函数传参过程进行分析。
提出问题
1、JAVA语言有什么特点?
2、Java中数据结构类型与C有很多的相同之处,有没有不同时存在于两种算法中的数据结构呢?
3、Scanner reader=new Scanner(System.in);理解不了
4、什么是“类”?
5、子类与对象之间的关系是什么?
6、接口和abstract类的具体区别
7、内部类与异常类怎么理解?
8、这么多类,那些是常用的那些不常用?
不行了,看不明白了........
java学习目标及途径
我会就自己薄弱的方面进行重点学习,课下多做、多问、多想,课上认真听讲,做好笔记。编程能力的提高靠思维的培养,需要多做题多练习,这是学习每一种语言的最有效方式,就像老师在五笔学习中的要求:“手比脑快”。