为什么要练习编码套路(Code Kata)?
对编码套路的态度
关于用这个方法来练习编程技巧,人们对此有三种看法:鄙视,中立,赞成欣赏。中立的人群认为并不能从这种反复编写同样一个问题的方法中学到什么,鄙视这种方法的人们也这么认为,不过反对的程度更深。剩下来的便是欣赏这种方法的人了,他们认为反复编写同一个问题,或者编写很多小的代码程序例子,是有一定用处的。
我也赞成这种方法。我从去年开始断断续续学习编程,中间犯的一个错误就是练习少,没有及早的认识到这是一门要在“干中学”的学科。第一次了解编码套路,还是在codewars网站,而接触这种技巧的时候,我已经磕磕碰碰学习编程有大半年的时间了。
练习的重要性
练习,作为一种学习方法是适用各个领域的,不仅仅限于武术,还包括弹奏乐器、提升体育竞技水平、准备演讲和提升对语法和书写的掌握。业界知名程序员、《程序员的呐喊》的作者Steve Yegge,就曾经在一篇文章中提到了练习(锻炼)的重要性。
我认识很多杰出的程序员——这是在亚马逊工作最好的额外“福利”之一。如果仔细观察他们,你会发现他们时时都在锻炼。他们已经很优秀了,但他们仍然不忘锻炼。他们锻炼的方法林林总总,而我在这篇文章中只会介绍其中的几种。据我了解,这些杰出程序员之所以如此成功,就是因为他们一直在锻炼。完美的身材要靠定期的锻炼才能获得,而且必须坚持锻炼才能保持,否则身材就会走形。对于编程和软件工程来说,道理是一样的。
如何练习编码套路
Dave Thomas认为可以将套路作为学习编程的一种技巧。方法很简单:每一个编码套路,都是一个简单的编码难题,容易解决,可以让练习者不断的尝试,直到完美。这样做的目的,就是帮助练习者每一次都能够找到更好的解决方法。练习者甚至可以对套路定下各种限制,比如说要使用一种自己不常用的语言。
帮助编程学习者进行套路练习的网站有很多。知道这类编程练习网站之后,我做了一些搜索,收藏了一些国外程序员推荐的站点,在这里推荐给大家。
- Codewars
- codeforces
- HackerRank
- Project Euler
- LeetCode
- SPOJ:Quora上的朋友说,这个网站的难度最高。
练习编码套路,贵在坚持、专注。当然,练习到了一定的水平之后,确实再做一些简单的题目,很难有较大的提高。建议高水平的朋友,往人工智能、大数据、自然语言处理这些高阶话题练习。
编程派会怎么做
我还是一个初学者,所以我会继续坚持做编码套路练习。每一个我觉得有一定难度、可以延伸的套路,我都会详细记录下我的解法,或者找到网络上更好的解法,与大家分享,一同学习编程,一起进步,争取能够成为黑段高手。这也是我在个人站点开设练习板块的初衷。
武术高手