20165217叶佺学习基础和C语言基础调查
你有什么技能比大多数人(超过90%)更好?
-
对我来说,可能唱歌比大多数人会稍微更好一点吧。其实,我的声音唱不了高音也唱不下去低音,音色也平平无奇,没有什么地方能让人眼前一亮的地方,但是,音乐真是一种让我迷醉的东西,我特别陶醉好音乐的感觉。在我小学的时候家里买了音箱话筒,总是会自己在家里开一个小小的音乐party,那时的我特别喜欢听周杰伦的歌,觉得唱他的歌很酷,然而那时我与大多数人一样五音不全,但是无法阻挡的是我对音乐的热爱,我在哪里都能唱歌,走路的时候,开心的时候,无聊的时候,或许我总是只会唱那么两句,还总是跑调,但是,我开心就好喽。
-
我和声乐的关系就这么一直到了高中,记得元旦晚会时上台表演,因为表演是跟这伴奏唱,平时自己唱歌都是清场,所以在台上唱歌一是节奏控制的不好,另一个是音准不对,总之就是把表演搞砸了,我严重怀疑过自己是不是一点音乐天赋都没有,不过我就是这么一个乐天派的人,我告诉自己反正以后我都不会不做音乐家,唱歌只是作为一个业余爱好来陶冶自己的情操,只要比别人好那么一点就行了。
-
就这样我来到了大学,随着自己对音乐的接触,我已经渐渐摸索出对唱歌的一些小技巧,这个时候恰逢学校组织的四大歌手比赛,我兴致勃勃的参加了比赛,最终幸运的进了决赛,然后在学长学姐的指点陪伴下度过了一个多月的练歌时间,我能很明显的感觉到自己对音乐的掌控强了很多,虽然最后没有进前四,但也是一个非常难忘且深刻的体验。
-
现在我可以很自信的说我比很多人唱歌都更好,这件事和娄老师博客中提到的套路和肌肉记忆是一个道理:
套路(Kata)指针对某一种特定技术或技能进行重复性的练习,从而将其熟练掌握。这个概念借鉴于武术,指的是可以独自或多人共同练习的一系列动作、招式。
体育运动的初学者练习时候都需要重复动作,比如「学习打乒乓球时」要练习挥拍,挥拍成千上万遍之后动作就会定型,也就是教练常说的「肌肉有了记忆能力」,以后实战中可以不假思索地做出来。
-- 引用自《优秀的教学方法---做教练与做中学》
-
所以,我认为Java的学习也同样是这个道理。只有对每个知识点都进行不断的练习,才能有所掌握。碰上一些比较难的内容,也不至于手足无措。同时,遇到问题要及时提问,尝试解决问题,使问题不累积。
有关C语言学习的调查
你是怎么学习C语言的?(作业,实验,教材,其他),与你的高超技能相比,C语言的学习有什么经验和教训?
- 我学习c语言,就是先弄清楚各种概念,理解课本上的例题,然后再去做网上的作业题。遇到不会的就查找答案,然后进行分析和学习。但在c语言上,我对自己的自我要求不是很高,就使得一些难题并不懂,c语言基础不是很牢固。
目前为止估算自己写过多少行C代码?理解的情况如何?量变引起质变,如何平衡质和量?
- 我觉得自己写的代码,大概有3000到4000行。就自己所掌握的来说,这3000~4000行代码,有很大一部分是一些内容的变形,重复。就这些小部分的知识,我觉得掌握是没有问题的。但是很无奈的是,C语言的内容并不是只有这些,有很多知识,我至今还是一知半解,甚至根本不了解。所以量和质都很重要,既不能忽视量,也不能忽视质。如果只重视量,简单程序重复化,很显然就不能达到一定的高度;如果只重视质,只做一些难题,没有量的积累,就必然出现一些知识上的盲点。所以,可以先通过一定量的练习来掌握一个知识点,然后再去尝试解决难题。从而达到平衡量变和质量的目的。
学过了C语言,你分的清数组指针,指针数组;函数指针,指针函数这些概念吗?
- 数组指针:指向数组地址的指针,本质是指针
- 指针数组:元素是指针的数组,本质是数组,例如int *p[3]
- 函数指针:指向函数的指针变量,用途为调用函数和做函数的参数
- 指针函数:返回值是指针的函数,本质是函数
我对这些概念都已经有些模糊,去上网查阅了一下。
学过了C语言,你如何把数组A的内容复制到数组B中?如何查找整数数组A中有没有数字5?如何对整数数组A进行排序(从小到大,从大到小)?写出相应的程序。
#include <stdio.h>
#define N 100
main()
{
int a[N],b[N],n,i,j,temp;
printf("请输入数组中数的个数:");
scanf("%d",&n);
for(i=0;i<n;i++)
{
scanf("%d",&a[i]);
b[i]=a[i]; //数组复制
}
for(i=0;i<n;i++)
{
if(a[i]==5)
{
printf("数组中有5");
exit(0);
}
}
printf("数组中没有5"); //查找数组中的5
for(i=0;i<n-1;i++)
{
for(j=i+1;j<n;j++)
{
if(a[i]<a[j])
{
temp=a[i];
a[i]=a[j];
a[j]=temp;
}
}
} //从大到小排序
for(i=0;i<n-1;i++)
{
for(j=i+1;j<n;j++)
{
if(a[i]>a[j])
{
temp=a[i];
a[i]=a[j];
a[j]=temp;
}
}
} //从大到小排序
}
写一个程序,统计自己C语言共写了多少行代码。
int main()
{
int cnt = 1;
int c;
while((c = getchar())!=EOF)
{
if(c == '\n') cnt++;//统计行数。
}
printf("%d\n",cnt);
return 0;
}
你知道什么是断点吗?给出自己调试程序的例子。
- 断点是一种调试方法,即在调试中设置断点,下一次让程序自动运行到断点位置,便可在上次设置断点的位置断下来,可以提高调试的效率。
参考怎样快速阅读一本书,快速阅读一下云班课中有PPT,每章提出一个问题
- Java中如何保存文件?
- length字段的使用是什么意思?
- break和continue是如何使用的?
- 类和C语言中的结构体是否可以类比,二者之间的主要区别是什么?
- 子类继承父类的方法有哪些?有什么不同之处?
- 接口是怎样克服Java单继承的缺点的?
- 如何自定义异常类?
- StringBuffer类是如何使用的?
- 各种事件处理该如何入手和区分?
- File类的各种方法的使用是否可以比较C语言中的文件操作进行类比比较理解?
- 预处理语句的作用及具体的使用方法。
- 线程的定义以及多线程的概念。
- 套接字的连接是如何实现的?
- 绘制基本图形和播放音频要注意什么?
- 泛型类和普通类的区别是什么?
对比C语言的学习,你对《Java程序设计》的学习有什么具体目标?如何通过刻意训练提高程序设计能力和培养计算思维?如何通过“做中学”实现你的目标?
- 目标的话首先是掌握基本的概念和知识点,能够完成基本的代码的编写。然后,希望可以学到Java与其他语言不同的设计思路或者说是思考方式。而要实现这些目标的话,课上的认真听讲是必须的,然后课下也要进行相应的练习,坚持每周写一定量的代码这个计划。同时,对于不会的地方和不是很熟练的地方多问,多尝试,多交流,从而增加理解,实现目标。