代码改变世界

推荐几个好玩又有难度的编程网站

2016-03-06 19:35  GarfieldEr007  阅读(354)  评论(0编辑  收藏  举报

推荐几个好玩又有难度的编程网站

作者:赖勇浩(http://blog.csdn.net/lanphaday

在社区混久了,总看到许多新朋友问“我学会了XX语言,怎么深入(或能用它做点什么)?”今天我给大家推荐几个好玩又有难度的编程网站,它们不仅可以增进对语言特性的了解,而且可以激发起大家对数学和算法等基础学科的兴趣,有些甚至还可以赚钱、帮你找工作呢!

这于这类网站,第一个要推荐的当然是 project euler,它的地址是:http://projecteuler.net/。它现在已经有两百多道题了,几乎每个周未都会出一两题新题。前面的题会比较简单,而后越来越难。在这个网站玩,必须要数学和编程技能都吃得开才行,好在这个网站并不看过程,只看结果,所以你可以用你最熟悉的编程语言来解决问题。但它提倡一个著名的一分钟原则,即“你解决某一道题的程序在一台主流 PC 运行时间不应多于一分钟”。另外值得称道的是如果你写的代码很牛,论坛是一个很好的炫耀你华丽的代码的好地方;反过来说,论坛可以让你学到许多语言特性、技巧、算法,还有最重要的数学。

我们可以来看看 project euler 的第一道题:

If we list all the natural numbers below 10 that are multiples of 3 or 5, we get 3, 5, 6 and 9. The sum of these multiples is 23. Find the sum of all the multiples of 3 or 5 below 1000.

它的解决方案用 python 语言写出来是:

print sum(i for i in xrange(1, 1000) if i % 3 == 0 or i % 5 == 0)

怎么样,羡慕 python 的简洁了吧?


作为一个 pythoner,要找好玩的编程网站的话,pythonchallenge.com(http://www.pythonchallenge.com/) 是不容错失的。用沈崴(http://blog.163.com/eishn/)的话来说,它的功效是:我们部门新来两位同事, 在使用Python 做项目之前, 先沉下心来做了两周的 Python Challenge, 把 Python 模了个透, 结果两周后程序写出来相当漂亮, 甚至让我这种老牌 Python 程序员跌破眼镜, 与我周围的同事立马有了境界上的区分。

这个网站不仅考验你的数学、算法功底,而且需要比较高的智商。不过,最为重要的是你需要一个像 python 这样的强大的语言,看到上面那幅图片了吗?它是 pythonchallenge 的第一道题,简单地说,就是叫你计算 2 的 38次方。解决这样的问题用 python 只需要一行代码,5 个字符,你用 C/C++ 的话,哈哈……


另外一个好玩的网站是 code golf(http://codegolf.com/),它的方向比较不同,它倡导短代码。立志于一行写出一个 windows 来的朋友们当然一定要去看看了,不过说到代码短,perl 可能真的很有优势。这个网站接受PHP、Python和 ruby,也许它更适合于网络程序员?无论如何,这是另一个能够让你炫耀编程技巧的平台,值得去看看。


好吧,仅仅挑战智商的东西你提不起兴趣,你希望得到一些实质性的收益,比如金钱、经验或工作机会,那topcoder.com(http://www.topcoder.com/) 一定适合你!无论国内还是国外,算法狂人都喜欢去 topcoder 比赛,因为它不仅有难度,而且有丰厚的奖品。如果还是学生,玩 SRM 最是刺激,如果白天你已经有一份工作要忙,那么玩一下 marathon,在长达一周或者两周的时间里,尝试一下持续的优化快感,感觉棒极了!实不相瞒,我是毕业以后才知道这样的一个网站的,偶尔我也会去玩一下 marathon,但最近一年多,我已经没有这个精力了,好想回到学生时代,让我享受一下 topcoder 带来的挑战。

Topcoder 的另一个好处是不仅支持 C++、java、python等语言,而且完美支持微软系的语言,如 VB.net、C#等,可以说是最为大众化了。它的中文站地址是http://www.topcoderchina.com/。但看上去有点荒废许久的感觉了,不知道当年很热的美少女副总吴莹莹现在在忙啥呢?