关于做中学的理解及技能训练的思考

在写这篇博客之前,我首先阅读了娄老师的博客,对做中学的概念很感兴趣。我们常说知识要学以致用,做中学强调的是在用的过程中有新的收获和体会来进一步巩固学习。细数我学过的课程,不在少数,学跳舞、学英语、弹钢琴、打乒乓球等都已经是小学时的事,在阅读了娄老师对重拾乒乓球运动的回忆和体会,我想就学英语这件事说说我学英语的经验和要改进的地方。

背景

小学的时候,为了更好地学习英语,我就开始上英语的课外兴趣班。学习的第一课是学习音标。与学校严肃的氛围不同,兴趣班的老师会拿着小卡片,做着夸张的动作来激发我们学习英语的兴趣。我们也会学着老师做的动作练习发音。老师还会通过做游戏的形式让我们记住单词和对话,这一切都让我觉得学英语是一件特别有趣的事情。兴趣是最好的老师,在小学期间,英语是我引以为傲的学科。

但是,上初中之后,我就不再主动背单词了,或者不再是因为兴趣学习英语。表面上看,成绩也都还过得去,但是因为缺少练习,英语的应用能力越来越差。直到后来再去拜访小时候的英语老师,提到我现在的学习,她说:“学习语言,就是在体验其他人的生活,你生活中的一切他们都有。学习的关键,在于你能用语言和文字描述你看到的东西。”也就是做中学。就像娄老师在博客中提到的,

有人让李笑来老师(知笔墨,微博,知乎,[微信公众号:xiaolai-xuexi])在微博中用140字总结如何学好英语,他说可以用一个字总结「用」。读研究生时由于不堪忍受读把「class library」译成「班级图书馆」式的技术图书(很高兴现在看不到邱仲潘老师的书了),自己花了三个月读完了上千页的 《Windows程序设计(Programming Windows)》,第一次感到「用」英语和「学」英语的不同,这个经历让我突破了一个很多人都有的心理障碍:对用英语的恐惧。

先在生活中用了,才能知道自己的不足并加以改进。这之后,我会在无聊的时候把我眼前看到的用英语表达出来,或是在听英语歌、看英语视频的时候有意识地记住一些发音有趣和常用的词汇。慢慢的,词汇量也开始提高,我也更自信了。

我认为可以这样学英语

  • 音标很重要

在大学以前,大多数人的童年阴影就是英语听写了。很多人觉得单词背了就过了,但我认为,和拼音一样,音标也同样重要。熟悉音标能更好地掌握单词的发音,也能更好地理解单词。

  • 记熟前后缀

英语中常用的表示否定的、同义的前后缀很多,记熟这些能更好地理解单词的意思

  • 看英文字幕

路上的指示牌通常都有英语的标识,刚开始的时候可以先看英语的解释,找到自己不会的部分再看中文,慢慢的就会熟悉。同样的,在看英语视频的时候,也可以先看英文字幕来理解整体的含义。

我的不足

  • 练习不够,碎片时间没有充分利用。
  • 词汇量还很匮乏。

我眼中的c语言

在上一篇博客中,老师让我们回忆自己学习C语言的体会,我写道

考完试后,这些知识就被淡忘了,并没有让我感觉到有什么与实际相关的东西。

但在阅读了老师的几篇博客之后,我意识到并不是与实际不相关,而是我们没有学会如何去运用。做为一种编程语言,c语言主要是帮助我们用计算机语言来解决生活中的问题。但是,我们现在更多是用笔来计算题目,能用到c语言的地方不多,所以渐渐地就淡忘了c语言的知识。

我这样学习C语言(作业,实验,教材,其他),与我前面提到的技能相比,C语言的学习有这些经验和教训。

c语言是我学习的第一种编程语言。课程一开始,我觉得是一件特别有趣的事,能编出简单的程序,上课学习也更有动力。就好像我小时候开始学英语一样。学习c语言的过程中有一项作业是要刷题。刚开始的时候充满干劲,觉得一天15题完全没问题。但渐渐地,上课开始听不懂,题也开始做不出来,就像我上面提到的学习英语的懈怠期,慢慢地也就不再尝试新的题型。

经验

  • 通过刷题,不断地练同一种编程方法,巩固了我对一些常用语句的用法,比如switch,循环语句等等。
  • 在学习的过程中,我会设计简单的游戏来使学习更有趣。

不足

  • 学习热度只有三分钟,没有认真坚持。
  • 只会设计简单的程序,没有举一反三。

估算我写了这么多行代码

上学期的刷题过程中,我一编了大概150道题总的来说大概一共写了5000行代码。写过的代码我会一行行调试,弄懂每一行代码的作用。

我对数组指针、指针数组、函数指针、指针函数的理解

在我看来,

  • 数组指针是某一数组的地址;
  • 指针数组是一组指向地址的数组;
  • 函数指针指向某一函数的地址;
  • 指针函数变量是指针的函数。

文件和流的区别和联系,区分文本文件和二进制文件

文件(File)和流(Stream)是既有区别又有联系的两个概念。

文件是计算机管理数据的基本单位,同时也是应用程序保存和读取数据的一个重要场所。

是字节序列的抽象概念,例如文件、输入/输出设备、内部进程通信管道等。流提供一种向后备存储器写入字节和从后备存储器读取字节的方式。

文本文件是基于字符编码的文件。

二进制文件是基于值编码的文件,可以根据具体应用,指定某个值是什么意思。

面向过程程序设计

百度的解释是

“面向过程”是一种以过程为中心的编程思想。 也就是分析出解决问题所需要的步骤,然后用函数把这些步骤一步一步实现,使用的时候一个一个依次调用就可以了。

在我看来,就是走一步设计一步,具体代码视要实现的功能而定。

对模块、“高内聚、低耦合”的理解

模块

老师曾说过,每个函数都是模块,那么模块的定义是什么?我查阅了相关资料,了解到

按照功能将一个软件切分成许多部分单独开发,然后再组装起来,每一个部分即为模块

模块是在内核空间运行的程序,实际上是一种目标对象文件

通俗的说,也就是组成每个程序的大部分,那么在一个程序中,一个个的函数就是我们所理解的模块。

高内聚、低耦合

高内聚   

内聚就是一个模块内各个元素彼此结合的紧密程度,高内聚就是一个模块内各个元素彼此结合的紧密程度高。   所谓高内聚是指一个软件模块是由相关性很强的代码组成,只负责一项任务,也就是常说的单一责任原则。

低耦合   

耦合是一个软件结构内不同模块之间互连程度的度量(耦合性也叫块间联系。指软件系统结构中各模块间相互联系紧密程度的一种度量。模块之间联系越紧密,其耦合性就越强,模块的独立性则越差。

也就是说在一个模块中元素联系越密切,模块与模块之间越独立,这样的程序就会更高效,也是设计程序时追求的目标。

设计程序

  • 把数组A的内容复制到数组B中

#include <stdio.h>
#include <stdlib.h>
#define N 50 int main()
{
char a[N],b[N],i,j;
printf("请输入第一个数组:\n");
gets(a);
printf("请输入第二个数组:\n");
gets(b);
printf("最终数组为:\n");
for(i=0,j=0;a[i]!=0;i++)
{
a[i]=b[j];
j++;
}
puts(a);
}
  • 查找整数数组A中有没有数字5

#include <stdio.h>
#include <stdlib.h>
#define N 50 int main()
{
char a[N],i,c=0;;
printf("请输入一个数组:\n");
gets(a);
for(i=0;a[i]!=0;i++)
{
if(a[i]=='5')
{
c=1;
break;
}
}
if(c==1) printf("存在数字5");
if(c==0) printf("不存在数字5");
}
  • 将数组A进行排序(从小到大)

#include <stdio.h>
#include <stdlib.h>
#define N 50 int main()
{
char a[N],i,j,temp;
printf("请输入一个数组:\n");
gets(a);
for(i=0;a[i]!=0;i++)
{
for(j=i+1;a[j]!=0;j++)
{
if(a[i]>a[j])
{
temp=a[j];
a[j]=a[i];
a[i]=temp;
}
}
}
printf("将数组从小到大进行排列:\n");
puts(a);
}
  • 将数组A进行排序(从大到小)

#include <stdio.h>
#include <stdlib.h>
#define N 50 int main()
{
char a[N],i,j,temp;
printf("请输入一个数组:\n");
gets(a);
for(i=0;a[i]!=0;i++)
{
for(j=i+1;a[j]!=0;j++)
{
if(a[i]<a[j])
{
temp=a[j];
a[j]=a[i];
a[i]=temp;
}
}
}
printf("将数组从大到小进行排列:\n");
puts(a);
}
  • 统计自己C语言共写了多少行代码

#include <stdio.h>
#include <stdlib.h> int main()
{
int m,n;
printf("请输入程序的总个数:\n");
scanf("%d",&m);
printf("请输入平均每个程序的代码行数:\n");
scanf("%d",&n);
printf("总行数为:\n%d",m*n);
}

暂时只会用这样的方式编程,等到把文件的那一章再巩固一下在用文件实现编程。

  • 断点

如图所示,图中的红点就是断点。

对《Java程序设计》的学习的具体目标,通过刻意训练提高程序设计能力和培养计算思维,通过“做中学”实现我的目标。

学习目标

对给出的题目能编出程序来解决问题,可以用Java像用c语言那设计一些简单的游戏,能够用Java编出实验的程序,能熟练运用Java中的语言点。

刻意训练

希望能够坚持一天一道来培养编程思维提高编程能力。

与做中学的联系

可以用Java试着编能用c语言设计的程序,通过这样的尝试发现自己的不足并加以改正。

我的写作能力的现状和提高

毕业后大多数人从事的工作的要求是“提笔能写,开口能说,问策能对,遇事能办”,非常重要的技能是公文写作能力。我的写作能力只算一般,文采不见得好,有时候组织语言要很久。

提高

看了电影《你的名字》之后,我开始每天坚持写日记。刚开始的时候是记流水账,后来开始慢慢注意词组的搭配和表达流畅性。在之后的日子里,我也会继续坚持,更注重语境的转化来提高自己的写作水平。

20155315庄艺霖--对做中学的理解及对c语言和Java的看法的更多相关文章

  1. 20155315庄艺霖第三次作业之Linux初体验

    Linux初体验 安装Linux三两事 老师的作业要求基于VirtualBox安装Linux系统,我一开始下载了VB但是电脑运行不了,后来看网上的教程下载了VMware,才算开始了我的Linux之旅. ...

  2. 做中学(Learning by Doing)之背单词-扇贝网推荐

    做中学(Learning by Doing)之背单词-扇贝网推荐 看完杨贵福老师(博客,知乎专栏,豆瓣)的「继续背单词,8个月过去了」,我就有写这篇文章的冲动了,杨老师说: 有时候我会感觉非常后悔,如 ...

  3. 做中学之Vim实践教程

    做中学之Vim实践教程 Vim VIM是一个非常好的文本编辑器,很多专业程序员使用VIM编辑代码,即使以后你不编写程序,只要跟文本打交道,都应该学学VIM,可以浏览参考一下普通人的编辑利器--Vim这 ...

  4. 做中学learning by doing——个人感想20155312张竞予

    做中学learning by doing--个人感想 概要 阅读五篇博客后的感触 我的个人技能 个人经验的类比与总结 c语言学习情况 java学习目标及规划 公文写作能力 我的感触 仔细阅读了老师公众 ...

  5. "做中学"之“极客时间”课程学习指导

    目录 "做中学"之"极客时间"课程学习指导 所有课程都可以选的课程 Java程序设计 移动平台开发 网络攻防实践 信息安全系统设计基础 信息安全专业导论 极客时 ...

  6. 预备作业02 : 体会做中学(Learning By Doing)

    1.你有什么技能比大多人(超过班级90%以上)更好? 我认为我是一个比较爱摄影和绘画的人,虽然说说不上技术精湛,但还是能拿出手的. 2.针对这个技能的获取你有什么成功的经验? 接触摄影和绘画都是因为喜 ...

  7. 预备作业02 : 体会做中学(Learning By Doing)

    1.你有什么技能比大多人(超过班级90%以上)更好? 如果说不算上玩玻璃球在诸如此类不登大雅之堂的技能,我想我是没有什么比大多数人更好的.我的兴趣还算广泛,但很多东西也只是学到了皮毛而已. 在我上初中 ...

  8. python做中学(一)全局变量的用法

    一段时间没有使用python来写代码,就发现以前学习的很多语法都忘了.看来还是当初这方面的项目做的好不够多,没有系统性的运用和学习,导致了很多语法不能顺手拈来.在接下来的这个项目中, 一定要把遇到的一 ...

  9. 【做中学】第一个 Go 语言程序:漫画下载器

    原文地址: 第一个 Go 语言程序:漫画下载器: https://schaepher.github.io/2020/04/11/golang-first-comic-downloader 之前学了点 ...

随机推荐

  1. 键盘按钮keyCode大全

    字母和数字键的键码值(keyCode) 按键 键码 按键 键码 按键 键码 按键 键码 A 65 J 74 S 83 1 49 B 66 K 75 T 84 2 50 C 67 L 76 U 85 3 ...

  2. .htaccess中Apache配置详解

    1.<IfDefine> 指令 说明 封装一组只有在启动时当测试结果为真时才生效的指令 语法 <IfDefine [!]parameter-name> ... </IfD ...

  3. MAC实用的小工具

    一.XtraFinder(右键菜单扩展) http://www.xuebuyuan.com/173454.html http://www.mamicode.com/info-detail-111618 ...

  4. .NET+IIS+MSSQL配置

    好久没配置.NET+IIS+MSSQL了,跟以前不大一样了.总结下吧. 环境: Windows Server 2012 标准版 x64 SQL Server Express 2014 一.HTTP E ...

  5. Android 自动安装脚本

    建立一个install.bat,写入下面 adb install -r %1PAUSE 把apk拖拽到install.bat上

  6. 设计模式--命令模式Command(对象行为型)

    一.命令模式 将一个请求封装为一个对象,从而让你使用不同的请求把客户端参数化,对请求排队或者记录请求日志,可以提供命令的撤销和恢复功能. (1)Command类:是一个抽象类,类中对需要执行的命令进行 ...

  7. Photoshop 裁剪图片

    如图1选择裁剪工具,然后如图2点一下clear,就可以根据鼠标裁剪任意大小的图片

  8. jquery遍历不同色彩的li

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  9. Css格式与布局

    一.位置 1.绝对定位 position:absolute:绝对定位. 绝对位置的意思就是相对于浏览器边框的位置,回归到它应有的位置.也就是说,一个div使用绝对定位后是在浏览器边框的最左上角位置.而 ...

  10. thinkphp 3.2.3 session 丟失問題

    之前做的几个 站session在跨页时也不会丢失(都在同一台服务器,所以我排除了服务器配置问题),这次居然很奇怪的发生的,在火狐上有,在ie, 谷哥上没有session,看了很多网上的贴子 其中有一个 ...