技能获取与语言学习
你有什么技能比大多人(超过90%以上)更好?
我觉得足球算是我的技能中比较突出的一项,虽然算不上有多好,但是在进入大学,经过一年多的训练之后,我还是有一些自己的体会。针对这个技能的获取你有什么成功的经验?
首先兴趣当然是很重要的,除了谋生的技能,我们学习任何东西的动力都来源于兴趣(或者是女朋友的兴趣),足球也是这样,否则我为什么要在酷暑烈日之下,严冬的寒风之中奔跑,难道待在空调房里或者暖气房里不舒服么。兴趣也是让我们坚持的理由,每当在训练中累得喘不过气,腿软的想跪下,为什么还要坚持,当然是因为我热爱它。
其次,还要有大量的基础训练。我们训练的大部分时间都在进行停传带射的基本训练,没有大量的基础训练,就不能有好的球感和快速的反应,也就谈不上进步。
另外,我认为观看顶级的足球比赛也是十分重要的,以前我从来不看球赛,导致我在场上常常不知道要干什么,拿到球不知如何处理。最近,我观看了一些比赛或者视频,给了我很多灵感,当然这些都需要经过实践,才能变成真正的技能。
与老师博客中的学习经验有什么共通之处?
实践要具备一定的量才能引起质变:
学乒乓球,没有10万次的练习掌握不了一个动作 学好编程?没有10000行代码的训练量是不够的我十分认同这个观点,我也意识到了我对于技能的练习还远远不够。
有关C语言学习的调查
你是怎么学习C语言的?(作业,实验,教材,其他),与你的高超技能相比,C语言的学习有什么经验和教训?
学习c语言首先当然是上课听讲,不过由于我上课经常开小差,所以经常没跟上老师讲的内容。所以我基本是经过做练习学习的c语言,遇到没学过(上课没听到)的地方就翻书,再没有就百度,通过这样的方式,我才渐渐熟悉了c语言的语法。所以我认为编程和踢球一样,都需要大量的练习。但是还有一些不足的地方。首先我对于编程的兴趣还不是很浓厚,导致我只有在编程有疑问的时候才会去主动获取知识,并且在遇到问题很久都不能解决的时候,我也会放弃。另外,我在c语言的学习上喜欢闭门造车,不喜欢跟同学跟老师交流,导致我一直没什么进步。
目前为止估算自己写过多少行C代码?理解的情况如何?
目前为止大概编过几千行代码,由于大多数都是简单的程序,所以基本都能理解。有的地方套用了课本上的方法,可能还不是完全理解,比如说某些排序方法,当然如果花时间去看应该还是能理解的,但是我并没有,因为我比较懒。
学过了C语言,你分的清数组指针,指针数组;函数指针,指针函数这些概念吗?
数组指针:一个指向数组的指针
指针数组:一个数组,里面的每个元素都是指针 函数指针:一个指向函数的指针 指针函数:一个函数,返回值类型是指针学过了C语言,你明白文件和流的区别和联系吗?如何区分文本文件和二进制文件?如何编程操作这两种文件?
文件是计算机管理数据的基本单位,同时也是应用程序保存和读取数据的一个重要场所。文件是指在各种存储介质上(如硬盘、可移动磁盘、CD等)永久存储的数据的有序集合,它是进行数据读写操作的基本对象。每个文件都有文件名、文件所在路径、创建时间及访问仅限等属性。然而,文件(File)和流(Stream)是既有区别又有联系的两个概念。流是字节序列的抽象概念,例如文件、输入/输出设备、内部进程通信管道等。流提供一种向后备存储器写入字节和从后备存储器读取字节的方式。除了和磁盘文件直接相关的文件流以外,流还有多种类型。
学过了C语言,你知道什么叫面向过程程序设计吗?它解决问题的方法是什么?
面向过程”是一种以过程为中心的编程思想。就是分析出解决问题所需要的步骤,然后用函数把这些步骤一步一步实现,使用的时候一个一个依次调用就可以了。
在C语言里面,什么是模块?你写过多个源文件的程序吗?
一个.c文件就是一个模块。由于编过的程序都是小程序,所以没写过多个源文件的程序。
学过了C语言,你知道什么是“高内聚,低耦合”吗?这个原则如何应用到高质量程序设计中?
内聚是从功能角度来度量模块内的联系,一个好的内聚模块应当恰好做一件事。它描述的是模块内的功能联系;
耦合是软件结构中各模块之间相互连接的一种度量,耦合强弱取决于模块间接口的复杂程度、进入或访问一个模块的点以及通过接口的数据。 要做到高内聚低耦合,重点并不是代码的编写,而是整体程序的设计阶段。程序设计时,要先将要实现的功能列出来,然后设计模块。模块设计后,再进行代码实现。 要做到高内聚低耦合,设计模块时需要做到: 1 各个模块之间的功能必须明确; 2 各个功能模块间实现的功能不可以有交叉; 3 不允许出现模块间的相互调用; 4 如果必须出现模块间调用,那么只允许单向调用,即A可以调用B,B不可以调用A。
学过了C语言,你如何把数组A的内容复制到数组B中?如何查找整数数组A中有没有数字5?如何对整数数组A进行排序(从小到大,从大到小)?写出相应的程序。
#include#include #include int main() { char a[100],b[100]; printf("输入数组a\n"); gets(a); printf("输入数组b\n"); gets(b); strcat(b,a); }
#include#include int main() { char a[100]; int i; printf("输入数组a\n"); gets(a); for(i=0;a[i]!='\0';i++) if(a[i]=='5') { printf("已找到5"); exit(0); } printf("未找到5"); }
#include#include #include int read(int a[]) { int i; for(i=0;;i++) { scanf("%d",&a[i]); if(a[i]==0) break; } return i; } choose(int i,int j,char ch) { if(ch=='<' && i>j) return 1; if(ch=='>' && i )\n"); scanf(" %c",&ch); sort(a,n,ch); print(a,n); }
- 写一个程序,统计自己C语言共写了多少行代码。
#include#include #include int main(){char ch;int count=0;long Handle;struct _finddata_t FileInfo;if((Handle=_findfirst("C:\\Users\\luzijie\\Desktop\\c练习\\*.c",&FileInfo))==-1L)printf("没有找到文件\n");elsedo{FILE *fp;char F_PATH[]="C:\\Users\\luzijie\\Desktop\\c练习\\";strcat(F_PATH,FileInfo.name); if((fp=fopen(F_PATH,"r"))==NULL) { printf("error"); exit(0); } while((ch=fgetc(fp))!=EOF) { if(ch=='\n') count++; } fclose(fp);}while( _findnext(Handle,&FileInfo)==0 ); _findclose( Handle );printf("%d",count);return 0;}
你知道什么是断点吗?给出自己调试程序的例子。
在某行代码处设置断点后,调试程序时,程序运行到该行代码时会自动停止。然后你就可以在这进行逐步调试了!其作用就是深入代码,查找代码内部缺陷。
对比C语言的学习,你对《Java程序设计》的学习有什么具体目标?如何通过刻意训练提高程序设计能力和培养计算思维?如何通过“做中学”实现你的目标?
上课认真听讲,作业认真完成,完成五千行代码的任务。
技能的提升要「刻意训练」
> 低水平重复是不行的,训练时间再长都没用 > 要循序渐进,不能进入「恐慌区」看了老师“走出舒适区”的建议,我深以为然。在大一学习c语言时,就是一直待在舒适区中,而对于不熟悉的指针、结构体、文件,常常是能避则避,导致在薄弱的方面一直没有进步。这次老师让编写一个统计代码行数的程序,让我走出舒适区,重新学习文件和指针的有关知识,虽然费了不少功夫,但感觉获益良多。可惜最终还是只能扫描一个文件夹里的文件,没有实现对整个磁盘进行扫描。
另外,我认为多读优秀代码也是很重要的,高手的几行代码可能能顶我的几十行代码。要看到差距,才能促使进步。要先通过模仿,才能自己进行创新。
毕业后大多数人从事的工作的要求是“提笔能写,开口能说,问策能对,遇事能办”,非常重要的技能是公文写作能力,你觉得自己写作能力如何?要怎么提高?
我的写作能力是比较糟糕的,尤其是一些空话、套话,完全写不来。我认为首先应该丰富自己的思想,努力学习马克思主义这样的世界观和方法论,为写作提供素材。另外,也应该珍惜平常不多的写作机会,磨练自己的写作能力。