其实很多人学编程都会遇到困难,我觉得其中一个根本原因是他们没搞明白学编程到底是学什么。
编程不是一种知识,而是一门手艺。编程需要:实践 + 坚持 + 总结(笔记) 。从实践中掌握知识点。
我们从小到大的学习都是学习知识,流程一般是课前看书预习,上课听讲,下课做作业,然后复习考试。包括你们的C语言课程,估计也是这么上。但是学手艺可不是这么学的。
我们先拿游泳举例,游泳不是知识,而是技能,也可以算门手艺吧。需要预习吗?需要上课听讲吗?不需要,因为两岁小孩都能学会游泳,他们连话都不太会说呢,怎么可能听课预习呢。游泳是通过在水里的练习,教练手把手地传授动作,一点一点提高熟练度学会的。(看出了吗,游泳需要靠实践练习)
我们再来看看弹琴,学钢琴一定要有钢琴,音乐基础知识也是老师在练琴间隙传授的,并且一定会结合练习,另外练琴时间是很重要的,必须保证一定的练习量,有些理想远大的琴童练琴时间可以用惨无人道丧心病狂来形容。(看出了吗,钢琴需要靠实践练习)
千万别把编程看作知识,计算机科学是知识,但是编程是手艺。既然是手艺就要用学手艺的思路去学习。
以动手练习为主,看书学习为辅,甚至极端点,初学的时候除了看必要的说明文档,甚至可以不要系统看书,等有了一定编程基础后再去看书,看完书立刻动手编程去验证书上的理论知识。(重点是练习)
练习一定要循序渐进,从简单到复杂。把手艺分解成几个简单的动作,反复练习直到熟练,然后再把基本动作组合起来练习直到熟练。拿C语言举例,比如从认真写好一个Hello world开始,然后去熟悉 if for while 等基本关键字,然后熟悉字符串操作,内存操作,练习查找 排序 二叉树等基本算法数据结构,然后学习一个小型项目。。。。
现在IT界的大佬里,马化腾公认天赋不高。在深大读计算机时,小马不显山露水,他不是编程最强的也不是成绩最好的,但完全不妨碍其后来的发展。同时,小马本身也是一名合格的程序员,据说写了第一版的OICQ Dialog。后来小马总结自己编程的学习方法,是用抄代码来打基础,我觉得他的方法对初学者也是适用的。**
不知道怎么学?觉得自己天赋低?想做APP?那就用笨办法,看点基础的知识语法入门,然后上网搜一下别人做的相关例子,或者教学视频什么的都可以,有源码简单点的。看别人是怎么实现的,把别人的实现过程自己在电脑上实现一遍。调通OK了,改一下其中的某个模块实现一些新的功能,就这样一步一步的往前走。多写代码多积累,有一定的基础了再回去看书,和别人交流,参与到一些学校组织或者社会上的开源非开源项目中。在这个过程中不断动手、总结、积累、看书,螺旋式上升,即使你的天赋不如别人,我相信你的编程能力最后一定不会比别人差。
谈到天赋,在我读书时,学校很多编程大牛都是没日没夜在实验室干活,在各种科研创业团队里做事。隔壁宿舍的大神基友每天晚上11点从实验室回来,睡前的爱好是看Android源码,各位扪心自问,你真的尽力了吗?如果没有尽力谈天赋又有什么意义?很多初学者的意志还是太薄弱了点,校园里比起社会已经舒服很多了。
对于程序员来说,编程是基础,是敲门砖但不是全部,如果你想往更高的层面发展,学习能力、努力程度、情商缺一不可。建议题主先把心态摆正,静下心来,再努力一段时间试试。
最后,编程还是需要下苦功夫的,靠坚持,反复练习,整理知识(特别是自己不会的知识点)、做好笔记。当你看到自己的程序,运行的那么美妙时,你会惊讶的发现,原来你在创造世界。
该文章部分内容转载自知乎。