软件开发人员和开源倡导者埃里克·史蒂文·雷蒙德说,学习如何成为黑客就像学习演奏乐器一样。正如他经常提到的,ESR列出了七个步骤来帮助潜在的程序员学习如何黑客。
这里的“黑客”定义为“在开源环境中进行探索性编程”——一种编程风格,而不是破坏安全或犯罪。这里所建议的“增量黑客循环”对于任何一个采用实践方法学习代码的人来说可能都很熟悉:选择一个你感兴趣的开源程序,找到一个小的特性来更改或添加,做出你的更改,并与开源社区分享。然后选择一个更难的新项目(还有更多,但这就是要点。)
ESR说,将补丁发送给程序维护人员是一个重要的部分:
我最初将此描述为可选步骤;一位睿智的朋友指出,也许我不该这么做。单独在你的乐器上拉面是很好的练习,但是当别人听到音乐中的创造力时,音乐就完成了,并且得到了验证。单独在你的电脑上玩面条也是一种很好的练习,但是当别人使用你写的东西时,黑客就完成了。这个真实世界的测试很重要。
有时(通常是刚开始的时候)你的补丁会被拒绝。你需要学会应付这种情况。这并不意味着你注定会失败;通常情况下,这意味着你没有足够仔细地阅读代码,或者(就像通常一样)你错过了一些重要的东西,比如你试图贡献的开发团队的文化和实践。这些错误是可以弥补的。
这种渐进式方法的好处是,你沉浸在大量代码中,复杂性不断增加,然后最终你将能够创建更多的原始代码,就像拥有丰富音乐聆听和练习的音乐家能够将音乐模式转化为原始作品一样。
更多详情,请查看《大教堂与集市》尊敬的作者的完整文章。
如何学习黑客|埃里克·史蒂文·雷蒙德
塞巴斯蒂安·特伯格摄。
...人工智能编程的挑战,开放给各级程序员。我们的目标是使用您选择的编码语言(语言不可知)构建机器人,并将其带到虚拟世界中进行战斗。 ...
...,这意味着你获得的经验和水平与每一个成功的挑战。它使用了与围棋相似的排名系统:你从8千开始,一直前进到1千。 ...
...你的工作是编写驱动你的机器人走向成功的人工智能——使用Java、Scala、C#等真正的语言。要开始学习,请查看Robocode基础知识和教程。 ...
...顺利,代码执行顺利时,很容易保持乐观。但如果没有,使用CBT技术来管理这些感觉会帮你解决问题。你也可以在日常生活中运用这些技巧,因为CBT也是停止拖延的方法之一。 ...
... 抄写容易,但很难做好。如果你不使用转录踏板和专用的转录软件,你会发疯的。但有了这样的设备,再加上快速的打字技巧,这是最好的电脑自由职业者工作之一。 ...
...。但它培养了一个全球性的开发人员社区,他们在网站上使用实践问题和竞赛。Codechef在一个月内举办了三场比赛,分别是“长时间挑战”、“烹饪”和“午餐时间”。长时间的挑战持续十天,而其他两个则更为简短。使用codeche...
...免费打字应用程序。虽然有些包含应用内购买,但您可以使用“先试用后购买”选项,以确保它们适合您,然后再掏出现金。 ...
...加一些编程能力测试。它们可以让您深入了解程序员经常使用的技能类型。这些测试还将帮助你确定你是否擅长这些技能。 ...