编程的门槛 - 抄作业的得与失
在我的编程之路-1(启蒙)中给新学编程的同学的第一个建议是:不要抄作业,尽量自己完成。
好的开头是成功的一半。
在学编程初期,所学的知识点本来不复杂,只要认真学习,就可以有个好的开始。这样容易建立起正向循环,增强自己的信心。
但难免会遇到困难,比如:
遇到不容易理解的概念
动手实践时受阻
这就引出编程的两个门槛:编程思维和动手能力。
编程思维
编程思维是一种我们日常生活中较少使用的思维方式,在生活和大部分工作中,大家可以按部就班,对需要解决的问题也习以为常,一般只需付出少量的思考,凭借本能即可完成要做的事情。
而编程思维近似于每次编程都要解决一个未知问题,并不存在一个可以按部就班的套路;这和证明一个数学命题很像,命题是对是错,需要亲自推导一遍才知道。
所以,就像数学思维需要学习、训练一样,编程思维也不仅只是学习知识,还需要练习如何使用知识解决不同问题的思维方式。这个思维训练是必须要经历的过程,尤其是新学编程时,不能为了走捷径而跳过。
思维 > 知识
数学思维训练的第一本书《几何原本》,正确的学习方法应该是只看命题,全都自己推导一遍。很多数学天才也都是采用类似的方法,只看前人写的书的目录,自己就能推导出书的内容。
编程思维也类似,背会知识点对解决问题帮助不大,唯有大量的练习。
思维能力的可复制性
勤于思考是种能力,该能力是自身的,受自己意志控制;
走捷径、找关系也是种能力,但是利用他人的能力,受他人意志控制。
自己可控的能力就会产生可复制性,加持到自己解决的每一个问题上。
如何做到不抄作业?
抄作业的同学都希望给个模版,期望有标准答案,这说明自己没有系统的掌握所需的知识。
拿到题目/问题,通过还原论,分解问题,逐个去找答案,最终完成问题的拼图。
这里区分下找答案和抄作业的区别,抄作业是省去对问题的分析和思考,直接找现成的解决方案来据为己有;找答案是经过对问题的分析之后,明确了问题的范围,针对性地去找答案。答案是几乎都能找到的,而且快而精准,作业则不一定,存在运气的成分,尤其是不一定能找到完全一致的作业。
动手能力
就像游泳不下水、炒菜不下厨是永远学不会的,动手能力不是天生的,都是经过后天的练习才能掌握。
编程由于涉及的流程和工具众多,每个环境,每个工具都需要熟悉、掌握,所以特别强调动手能力,尤其是快速学习新知识的能力。好在流程和工具方面一直在改进,现在这些的学习成本已经很低了。
退而求其次,就是抄也要抄优秀的作业,起码不会养成坏的习惯。
很多同学就栽到了抄差作业上了。
版权声明: 本文为 InfoQ 作者【顿晓】的原创文章。
原文链接:【http://xie.infoq.cn/article/f45f9be3710d5c57566dd071c】。文章转载请联系作者。
评论