本文是PHP100中文网原创翻译,转载请看文末的转载要求,谢谢合作!
就在不久前,当读Hacker News上的一篇文章时,我偶然遇到了一个看起来有点愚蠢琐碎的编程小迷惑。我确信只要我坐下来想一会儿分分钟就能搞定它。然而,这个问题困扰了我好几周,然后一瞬间我发现自己顿悟了,接着坐下来就解决问题了。我还能说什么,它真的很难,比我能忍受的更难。下面是这个挑战的规则:
“你必须写一个能输出自身的程序。你可以使用任何一门编程语言来写,但你必须保证在它的源文件里至少有一个字符,也就是说,它不能是个空文件。”
当然,如果你只是打开文件然后把它打印出来这算作弊,所以你不能这么做。
我不会告诉你答案的,你自己尝试出来将会带给你更多收获和乐趣。
我为什么会这么做?
当你成为一名真正以写代码为生的程序员时,你很可能就有解决你每天遇到的编程挑战的本事。唯一一些能让你停下来的就是时间和代码质量了,但如果你忽略掉这些,你可能就只会写出丑陋、不可维护、蛮力但还能解决问题的方案什么的。当你开始解决这个问题时,你很快就会意识到用平常那种蛮力的方式只会导致麻烦。
如果你把自己当做一个黑客或者编程的极客,你一定能感受到解决这个迷惑的强烈驱动力。我不能脱离开强大的洞察力,或者一些开创性的学习经历,只有当你心里变得温暖时,你才能最终让这个程序输出它自身。
用你的聪明才智愉快地解决这个问题吧!
PHP100还为大家推荐别出心裁、能创造性地解决问题的黑客之作:《Github出现一行能提速70%的PHP代码》、《“慢速编程”让你透彻理解编程的本质》、《一个很有借鉴价值的编程故事》,希望大家能成为一个用心去解决问题,用聪明才智给这个世界带来点福利的“传统黑客”。
为黑客正名
“黑客”一词是作为“用创造型性的方式去解决问题的人”初意而发明的,只是后来有些不懂规矩在互联网世界寻求刺激、搞破坏的“骇客”出现,然后无知的媒体们为了博得噱头便开始用“黑客”一词做挡箭牌,渐渐地现在黑客被抹黑,以至于现在表明立场的时候都说自己是“传统黑客”,既恪守规矩,创新性地解决很难的问题的人。没有最初的那帮黑客,现在我们的电子、软件技术要落后好多年,他们才是人类进步的功臣。其实PHP100小编前几天在写一个小工具时,曾不经意解决了这个迷惑,如果大家有什么想法,可以在评论或论坛里讨论一下,互相学习,共同进步。
原文:http://shiroyasha.github.io/a-challenge.html
译文:http://www.php100.com/html/it/focus/2014/1204/7978.html
(翻译:PHP100_Alex)