要提升自己的编程水平,必须要多多练习。

对这个道理,很多人貌似懂得,但真正做的时候,会大打折扣。比如有的朋友看了某些基本知识,感觉阅读起来并没有什么困难,理解也比较容易,于是自己就暗暗下了一个结论:“我已经会了。”其实这是一种假象。因为学习编程,不是仅仅看看之后明白,着跟听一个故事不一样。听一段故事,听后明白了故事的大概意思就得到目的了,疑惑从中有所感悟更好。但是学习编程,除了这层含义,还有另外一个要求,那就是要能够熟练使用所学到的知识解决实际问题,这就必须要通过必不可少的练习。如果通过类比才能理解,学习编程好比学习骑自行车或者游泳之类的运动。不论听过多少遍骑车技巧,不论多么理解骑车过程中要掌握平衡,都不等于会骑车,只有通过练习,才能学会。

认识到练习在编程中的重要性了,学习者也愿意投入练习了,随之而来的就是如何练习。

很多朋友容易忽视基础知识的练习,刚刚看基本课程,就希望能够上大型项目。心情可以理解,但有点操之过急。任何高深的武功,都是要先练好马步等基本功,学习编程也是要先对所学习语言的基本数据类型或者对象类型的属性和方法能够熟练掌握,对基本语法、语句、函数、类等知识能信手拈来,当然这些技能也伴随着以后的实践再次发展,我这里要强调的是首先要对这些熟练了,在去找稍微完整的项目去做,不至于让基本知识成为项目中的绊脚石。所以,学习某种语言之后的基本知识练习是非常非常必要的。(重要推荐:《Python基础知识练习》

就练习的方式,从实践的角度看,多练习那些敲代码的题目。网上流行着一些公司的面试题目,多是类似考试和传统的教材后面的题目,比如选择题之类的。我不认为这些题目一点用处没有,但是这类题目与实践差距有点大,还是要多练习一些让你实际敲代码的题目,比如完成斐波那契数列问题等等。任何敲代码的题目都能够让你尽可能综合使用所学习的知识,而不是被局限在几个选项内。在编程实践中,就是面对实际问题,在一个开发环境中解决问题,而解决问题的途径又是多种的,通常所谓最优常常是根据环境、时间、成本等当下的选择等多种条件下做出的,没有绝对的最优。所以,练习要多敲代码。而不是做选择题。如果你要应付某些公司面试题目,再临阵磨枪吧。

顺便再指出一个很多大学生朋友认识中的一点瑕疵。听不少大学生朋友说过,他们认为大学阶段只需要知道某种语言的基本知识,等到将来工作的时候,再深入即可,这样可以多学习几门语言。对此,我稍有不同意见。我认为这种观点仅是大学学习的一半,另一半不要忽视,因为编程是一项实践性很强的活动,我要说的另外一半就是要在大学期间,熟练掌握一种语言,注意是熟练。到什么程度是熟练呢?想做什么,用那种语言就可以完成,这样就熟练了。当然,想法也符合实际。

当然,反过来,大学四年仅仅熟练一种语言,而对其它漠视,也是不对的,这时候缺乏的是另外一半了,要有一定的视野。

总之,编程水平的提升,在于练习。