千纸鹤

  博客园  ::  :: 新随笔  ::  ::  :: 管理

《敲代码》学编程的正确方式

【来信】
  老师您好!我自学编程的,我想向您咨询一下,关于敲代码的方法!
  第一:我先理解书上、视频的源码,然后根据自己对源码的理解,然后把代码的思路写下来,然后自己这个思路把代码敲出来,当我自己不懂的时候,再返回去看源码!
  第二:理解书、视频的源码,完全照抄一篇。
  我很长一段时间是使用第一种方法,但是我觉得好累啊!学得很慢,当我遇到一些难以理解的代码而且200多行的代码的时候,我感觉我虽然理解了代码,但是要我完全敲出来,总是会出错,当我全部功能实现之后,要花很长时间!我不知道我自己的这种方法是不是有问题,身边我也没有人可以请教!所以我想向您咨询一下这个问题!

【回复】
  很感动你的执着。初学遇上困难很正常,这一关过了,就可以迎接下一关的挑战了,不断过关,让自己的知识和能力上到新的高度,有辛苦,但是其乐无穷。
  从你描述的学法上,我先做些点评。
  "理解书、视频的源码,完全照抄一篇(遍?)"这个时期,我觉得不要照抄。“敲代码”靠的不是手指头,靠的是大脑。你首先要做的是阅读程序,深度的阅读。并且在读的时候,不要一下钻到细节中,先看结构。要解决的问题大致是清楚的,于是,程序有几大块,每块的任务是什么(你会发现,最宏观的,无非就是“输入-处理-输出”三块),然后再分解每一块。对十来行代码的程序这样阅读,等阅读200行,甚至2000行的程序时,这种思维就形成了,再不会被其中某个语法上的小疑惑困住了。照抄一遍会让你直接进入细节,忽视了结构,不利于你形成自己解决问题的能力。
  基于上面所说的阅读,在理解后,自己写代码。这时候,思路不清时,想结构,语法不清时,看语法即可。若写出了和源码不一样的程序,完全正常,不要追求一模一样。只要知道自己思路清楚,表达正确就可以了,甚至,在思路上、表达上和源码不一样,是件更好的事。当自己写得过程中糊涂了,有必要再回去看源码时,我也希望你能清晰地知道,是去发现思路(结构)上的问题,还是语法上的问题。语法上的问题,也完全可以去看有关的知识点,而不是源码。
  进入一个新领域学习,总是初时要慢。要学知识本身,还要学方法。从长远看,接受自己的慢起步。在做简单题的阶段,以及现在已经学一段时间后,可以回头再看,尝试一题多解(用多种思路/结构)和一义多表(同样的思路,用多种语法结构描述,如一段分支结构的逻辑,用if-else语句、switch语句、?:运算分别表示)的方式做一做,你学得东西就“活”了。
  以上是对你提问题的直接回答。
  再多说点。
  程序设计初学者,我特指学第一门编程语言的同学,感觉到的起步难就是源于两个方面:语言本身和解题思路。解决一个问题,两方面的能力都需要,但刻意地将这两个方面学着分开一些。初学做小项目时是这样,实际上,到成为高手后,做大项目、大工程,必然也是这样的,并且做宏观设计的人和最终用编程语言实现的人甚至不是一个部门的。阅读程序是学习过程中很重要的手段,先掌握结构,必要时将重点的语法部分再看一看,没必要时就不看了,用自己觉得更自然的语句去表达。而在写程序时,先将结构想清楚,甚至写出来(画流程图,或者就在源码中,用注释的方式标出来,以便后续填空),再考虑用什么样的语句表达。
  在学习过程中,注意一下及时总结。其实初学时,从语法角度,无非就是一些语句、表达式;从结构角度,顺序、分支、循环三种控制结构,再加上模块化程序设计机制等;从数据结构角度,简单变量到数组再到结构体等。学一段时间,将这些成份,以及它们之间的关系,在脑子中从宏观上织一织网,渐次再想到细节,你就不会被各种表象困扰了。
  就说这些。祝你学习顺利,也相信你能渡过难关。
————————————————
版权声明:本文为CSDN博主「迂者-贺利坚」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/sxhelijian/article/details/78590282

 

 

网友提问:学习编程照着别人的代码敲进去有效率吗?
最近在学编程,但是里面的很多东西自己看不太懂,自己在不看书的情况下自然也就编不出来,虽然书上有详细的讲解
但是真的自己一个人不会编,只能看一行打一行,怎么办?
安晓辉(职业规划师)回复:
(1)学习编程,开发软件,过程大抵如下:
(2)看书,看视频,看博客,听课等等
(3)对着书敲代码
(4)脱离书自己敲代码
(5)自己实现一些小DEMO
(6)进项目看代码
(7)在别人指点下写代码
(8)自己独立在别人搭建好框架内填写代码
(9)自己独立负责别人设计好的模块的实现
(10)自己独立负责一个软件模块的设计和实现
(11)负责较大软件模块,拆分模块,分子任务给他人
(12)负责一个小项目,设计,拆分,分派任务
(13)做较大的软件系统的架构设计

你现在处在第2个阶段,这是一个必经阶段,不要担心,对着书先敲,多敲几遍,然后脱离书,自己敲,看能不能敲出来。
反复如此,慢慢就可以脱离书完成示例,这样你就进入了第3个阶段了。
等你把整本书的示例都能脱离书完成,第3个阶段就练差不多了,可以考虑第4个阶段或第5个阶段了。
大家都这么过来的,你用行动,也可以走过来。

作者:安晓辉
链接:https://www.zhihu.com/question/297309123/answer/537836889
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
posted on 2022-05-14 16:26  隆江猪脚饭  阅读(293)  评论(0编辑  收藏  举报