一个黑客都要学习什么语言呢?

新手朋友们,请你们记住我这句话:  
 
所谓的高手决不是什么都懂的人,而是知道怎么样自己去寻找答案,解决问题的人  
 
 
你们知道吗,你们问的问题我很多也不知道,但是我还是回答了,所以很多朋友信任我,但是我怎么回答的呢,很简单,去www.google.com一搜索,什么问题都解决了。  
但是,我跟你们很多新手不一样,你们问了问题,我找了个答案给你,而我自己找答案的时候把搜索出来的相关资料都读了一遍,我比你们学到更多东西啊,我每天都这么干,我当然每天都学到很多东西啦  
而你们很多人呢,有问题只知道来问一下,找个答案就走了。  
 
还有,网上有很多好的计算机网站,比如www.pconline.com.cn,www.cncz.net我们不是专业人士的话,这些网站已经很好了,我是每天都去看,去学习的,你们是不是也是呢?  
 
中国有句古话“授人以鱼,不如授人以渔“,意思是给你鱼不如教你捕鱼,我很乐意帮朋友们解决问题,但是我更愿意跟大家探讨问题。  
 
只有自己动手,活到老学到老的人,才是真正的高手。  
希望大家都能成为真正的高手。  
 
下面就讲黑客,由Eric Steven Raymond写的一篇文章  
 
如何成为一名黑客  
作者:Eric Steven Raymond  
 
译者:Ionwing  
 
 
 
 
怎么样才算是一名Hacker?  
 
 
 
在 Jargon File 中有一堆关于“hacker”这个名词的定义,大部份意见认同黑客必须是技术上的行家及热衷于解决难题、突破限制的人,如果你想知道如何成为一名 hacker,这是真正重要的两个方面。(技能和态度)  
 
 
 
历史可以追溯到数十年前第一台分时小型机诞生及ARPAnet实验刚刚开展的那个年代,那时有一个由程序专家和网络天才所组成的具有共享特质的文化群体,这一群体的成员是 “hacker”一词的起源。这些Hacker 构建了Internet,创作出我们现今广泛使用的 UNIX 操作系统, 他们使 Usenet 运转,而且还使 World Wide Web 工作起来,如果你是这个文化的一份子,如果你对其有所贡献,并且他人对此表示认同并称你为黑客,那么你就是一位黑客。  
 
 
 
从精神的角度上来讲,“hacker”并不单单局限于软件黑客的范畴。人们也将黑客的处事态度应用于其它领域,如电子学领域或音乐领域 -- 事实上,你会发现在任何一种科学或艺术的最高境界都有这种精神的存在;软件黑客们也认为这些其他领域的类似精神可以称之为“hacker” -- 有些人还主张黑客的通性是独立于其所从事的工作的。但是,在这篇文章中,我们将集中注意力于软件黑客们所需的技能和态度,以及创造了“hacker”一词的共享文化传统。  
 
 
 
还有另外的一个团体的成员,他们大声地吵嚷着称自己为黑客,但其实他们并不是。这些人(主要是男性青少年)专门破坏计算机和盗用电话系统, 真正的hacker们称这类人为 “cracker”(骇客),并且不屑与他们为伍。黑客们认为骇客都是些懒惰、不负责任并且不太光彩的家伙,破解安全系统并不能使你成为一位黑客,就像能翘开车锁并不意味着你是汽车工程师一样。但是很不幸的,很多记者和作家愚蠢地使用黑客这个词来形容骇客;这让真正的黑客们愤怒异常。  
 
 
 
两者的根本差别在于:黑客创造新东西,而骇客破坏它们。  
 
 
 
如果你想要成为一位黑客,请继续读下去。如果你只是想要成为一位骇客,那么就请去读 alt.2600新闻组,并做好准备在进了十次五次监狱之后才发现自己并不是那么的棒。那就是我想说的关于骇客的全部。  
 
 
 
 
 
黑客的态度  
 
 
 
黑客们解决问题并创造出新的东西,他们信奉自由并乐于互相帮助。想被承认为一名黑客,你必须表现出你具有这种态度,并且必须是发自内心地相信它。  
 
 
 
但是,如果你想通过表现黑客的态度来获取这个文化的认同,你可能忽略了事情的关键。成为相信这种精神的人对你来说非常的重要 -- 因为这有助于你更好的学习并且维持你的动力。象所有的创造性艺术一样,成为一位大师的最好途径是学习大师的精神 -- 并不只从理性,更从感性。  
 
 
 
或者就象下面这些现代禅教一样:  
 
 
 
追求之路:  
 
注意大师,  
 
追随大师,  
 
与大师同行,  
 
彻底了解大师,  
 
成为大师。  
 
 
 
所以,如果你想要成为一位黑客,请重复下面的事情,直至坚信不疑:  
 
 
 
1. 这个世界充满等待解决的迷人问题  
 
 
 
做一个黑客可以得到很多乐趣,但那需要你付出与之相当的努力。努力需要动力,成功运动员的动力来自于不断突破自己身体上的极限所带来的快乐,同样地,作为一名黑客,你也必须能从解决难题、磨练技能和训练你的智力的过程中感受到那种悸动。  
 
 
 
如果你不是天生就能感受到这种悸动的人,为了达成目标你必须设法使自己如此。否则,你会发现你的黑客精神很快会被诸如性、金钱和社交活动之类的事所消磨。  
 
 
 
(你也必须对自己的学习能力建立信心 -- 相信你尽管对所要解决的问题所知不多,但只要针对它不断的学习,最终一定可以做到)。  
 
 
 
2.不应该重复解决同一问题  
 
 
 
富有创造力的头脑是珍贵而有限的资源。在还有那么多迷人的新问题等待解决的时候,他们不应该被浪费于重新发明轮子。  
 
 
 
身为一名黑客,你必须意识到时间对于其他黑客是非常宝贵的 -- 所以,共享信息、解决问题并且始终提供解决方法给其他黑客几乎可以说是一种道德上的责任,这样其他的黑客就可以抽身解决新的问题了。  
 
 
 
(你无须认为奉献你的全部创造是一种必须的义务,尽管那样做是得到其他黑客尊重的主要途径。黑客的价值观允许你出售足够的产品以满足食物和设备租金的需要。你可以运用你杰出的黑客技能支撑你的家庭或正当地获取财富,只要你在做这一切的时候没有背弃忠诚于你的技艺和黑客同道们)。  
 
 
 
3. 无聊而单调的工作是有害的  
 
 
 
黑客们(以及其他从事创造的人们)绝对不该从事那些无聊或者单调的乏味的重复性工作,因为那意味着他们没有做那些只有他们才能做的事 -- 解决新的问题。这种浪费对于任何人而言都是一种伤害。所以乏味而无聊的工作不仅使人生厌而且非常有害。  
 
 
 
作为一位黑客应该自觉地远离那些可能使人厌烦的比特,不只为你自己, 也为其他所有的人(特别是其他黑客)。  
 
 
 
(这里还存在一些例外,有时黑客们会做一些看起来似乎是重复性或者无聊的工作以作为一种脑力的训练,或是为了学到某种特殊的技能以及某种无法使用其他方法获得的特殊经验。这仅是一种选择 -- 没有人应该被强迫面对那些无聊的工作)。  
 
 
 
4. 自由才好  
 
 
 
黑客们天生反对权威。任何一个可以命令你的人都可能妨害你解决令自己着迷的问题 -- 并且权威的工作方法通常会给你一个愚蠢的可以的理由。所以应该对遇到的任何权威主义报挑战态度,以免它危害到你和其它的黑客。  
 
 
 
(这并非意味着应该反对所有的权威,正如小孩子需要被指导以阻止他们犯错,黑客也可能会服从某些权威,如果这样做可以更快更好地完成想做的工作,不过那是一种受限并且理性的协定,并非绝对的个人服从)。  
 
 
 
权威擅长监察和保密,并且不信任自觉式的合作和信息共享 -- 他们只相信在他们控制之下的“合作”。所以,身为一名黑客,必须对监察制度、保密和使用强制或欺骗的手段强加责任的行为具有本能的反抗态度,你必须以信任作为你行为的基础。  
 
 
 
5. 态度不能替代能力  
 
 
 
要成为一名黑客,你必须发展这些态度。但单纯地模仿某种态度并不能使你成为一位真正的黑客,也不能使你成为一位冠军选手或摇滚明星。成为一名黑客需要智慧、实践、奉献和努力工作。  
 
 
 
因此,你必须学会怀疑态度并且尊敬每一种能力。黑客们不会为装腔作势的人浪费时间,但是他们尊敬能力 -- 尤其是黑客能力,当然所有的能力都很好。拥有很少有人精通的特殊技能是特别棒的,最棒的能力包括敏锐的洞察、特别的技艺和专注的精神。  
 
 
 
如果你尊敬能力,你将享受到发展自己能力的乐趣 -- 这会使努力工作和奉献成为一种充满激情的游戏而非一件苦差事。这对于想要成为黑客的人而言,是非常重要的。  
 
 
 
 
 
基本的黑客技能  
 
 
 
黑客的态度是非常重要的,而技术则更为重要。黑客的态度固然无可取代,但是在梦想着得到其他黑客承认之前,至少应该掌握一些基本的技能。  
 
 
 
随著新技术不断地取代旧技术,这些工具也随着时间的变化慢慢地改变。例如,以前我们用机器码编写程序,直到现在广泛使用的HTML。明显需要的技能包括如下所列:  
 
 
 
1. 学习如何编写程序  
 
 
 
当然,这是黑客的基本技能。如果你不了解任何计算机语言,我推荐从Python开始。这种语言设计简洁,文档完整,非常适合初学者。作为优秀的第一语言,它不止是一件玩具;它强大的力量和可扩展性使其同样适用于大型项目。我在evaluation of Python一文中描述了更多的细节,在Python的Web站点有可用的指南。  
 
 
 
Java也是很好的入门语言,虽然要比Python难,但是可以生成更加快速的代码,我想它是极好的第二语言。  
 
 
 
但是要知道,如果你只懂得一两种语言,是无法达到黑客所应具有的技术水平的,而充其量只是一名程序员而已 -- 你需要学习如何以通用的方法考虑程序设计问题,而不依赖于任何一种程序语言。要成为一名黑客,你必须做到能结合手册和你已经知道的知识快速地学会一门编程语言。就是说,你应该学习几种完全不同的语言。  
 
 
 
如果你想进行真正的程序设计,必须要学习C,UNIX系统的核心程序语言。C++与C非常的类似,如果你已经熟悉了其中之一,学会另一个将十分容易。然而,这两者都不适合作为你最初学习的语言。  
 
 
 
其它对黑客来说特别重要的语言还包括Perl和LISP。Perl非常有学习的价值;因为它在动态Web页和系统管理方面有非常广泛的应用,所以即使你不编写Perl程序也应该去学习阅读它。LISP值得学习是因为一旦你最终掌握了它,它将带给你深刻的经验和启迪,这种经验可以使你成为更加优秀的程序员,即使你从没有单独用LISP去实现程序。  
 
 
 
实际上,最好去学习所有这五种语言(Python、Java、C/C++、Perl、和LISP)。除了作为最重要的黑客语言之外,它们还代表了完全不同的程序设计途径,将各自教授你极具价值的方法。  
 
 
 
我无法在这里全面地指导如何进行程序设计 -- 那是非常复杂的技能。但是我可以告诉你的是这些无法从书本和课程中学到(大多数最好的黑客都是自修而成的)。你可以从书本学到语言的特征,但要使大脑把知识转化为实际的技能,只能通过实践和历练。做法是(a)读代码和(b)写代码。  
 
 
 
学习编程就好象学习书写优美的自然语言。最好的方法就是阅读一些专家的作品,然后写一点自己的东西,读一点,写一点,再读一点,再写一些……不断地重复这个过程直到发展出自己的一套经济有效的模式。  
 
 
 
找好的代码读是很困难的,因为可供菜鸟级黑客阅读和更改的大型程序源码是非常少的。这种情况正在改变;Open-Source的软件、编程工具和操作系统(全部都是黑客创作的)正广泛地使用。这引出了我们的下一个主题……  
 
 
 
2. 取得一份Open-Source的UNIX并学习去使用和运行它  
 
 
 
我首先假定你拥有一部个人电脑或是能够获得一部(现在的小孩可以如此容易的拥有:-))。对于任何一个渴望增长黑客技能的网络新手来说,一个最重要的步骤就是取得一份Linux或者一种BSD-Unix,将它安装在自己的机器上,并运行起来。  
 
 
 
不错,UNIX并不是这个世界上唯一的操作系统,但是其它操作系统只以二进制形式提供,你无法阅读它的代码,也无法修改它们。想要在DOS或Windows亦或MacOS下开始 学习黑客技能无异于绑著枷锁学习跳舞。  
 
 
 
另外,UNIX是Internet上的操作系统。你可以在不懂UNIX的情况下学习使用Internet,但你无法在不懂UNIX的情况下成为一个Internet黑客。基于这个原因,UNIX仍然是今天黑客文化的坚强核心。(这并不是绝对正确的,并且有一些旧时代的黑客并不以这种情况为乐,但是UNIX和Internet之间的共生关系是如此的牢固以至Microsoft的强壮肌肉也没能给其造成伤痕)。  
 
 
 
因些,让你的UNIX运行起来吧! -- 我自己则比较喜欢Linux(你可以在一台机器上同时运行Linux和DOS/Windows操作系统)。学习它,让它运行起来,给它做修补。通过它与Internet交谈。阅读和修改程序代码,你将获得更多比Microsoft操作系统下所梦想的还要好的编程工具(包括C,LISP,Python,和Perl),当有一天你作为一位专家级的黑客回忆时,你会发现这是如此的有趣,并且让你学到了比想像的还要多的知识。  
 
 
 
关于更多学习UNIX的信息,请看The Loginataka。  
 
 
 
可以在Where can I get Linux获得Linux支持。  
 
 
 
可以在www.bsd.org搜寻BSD UNIX的帮助和资源。  
 
 
 
我写了一个初级读本 -- basics of Unix and the Internet。  
 
 
 
3. 学习使用WWW和书写HTML  
 
 
 
大多数由黑客文化创造出来的东西都在我们看不见的地方发挥着作用,维持着工厂、办公室和大学的运转,很难发现其对非黑客人群的生活造成了什么显著的影响。但Web是一个很大的例外,即使政客们也不得不承认这个巨大耀目的黑客玩具正在改变着世界。仅此一个理由(当然还有许多很好的理由),你需要学习如何使Web工作。  
 
 
 
这并不意味着学习如何驾御浏览器(任何人都可以做得到),而是学习如何书写HTML,Web的标记语言。如果你还不知道如何设计程序,书写HTML可以帮助你养成一些习惯。建立起你的主页吧(这里是一个在Web上的初学者指南; here's one)。  
 
 
 
不过拥有一个主页并不能帮助你成为黑客,Web上到处都是主页,大多数没有意义,内容空洞,象泥巴一样 -- 很时髦的泥巴,看起来千篇一律(可以在The HTML Hell Page中得到更多信息)。  
 
 
 
为了让你的主页有价值,它必须富含内容 -- 必须有趣而且(或者)对其它黑客有用。让我们进入下一个主题……  
 
 
 
 
黑客文化的状况  
 
 
 
像大多数不涉及货币经济的文化一样,黑客文化通过名誉运作。当你尝试去解决一个有趣的问题时,它有多么有趣,你的解决方法好不好,正常情况下只有通过与你具有相同或更高技术的人作出评价。  
 
 
 
因此,当你开始玩黑客游戏时,你应该认识到你的分数的保持主要来自于其他黑客对你技术的看法(这就是为什么只有得到了其他黑客的一致承认,你才真正算是一名黑客)。这个事实为黑客单独工作这一印象所蒙蔽;也被黑客文化的禁忌(现在逐渐衰退但依然有效)即利己主义和被外部承认所不容。  
 
 
 
确切地说,黑客文化就是人类学家所说的“天才文化”。你的地位和名誉的增长并不来自于对他人的支配,不因为你长得漂亮,不因为你有一些别人想要的东西,而是因为你的奉献。明确的说,你奉献出了你的时间,你的创造和你的技能。  
 
 
 
这里是你为了获得其他黑客的尊敬可以做的五类事情:  
 
 
 
1. 写Open-Source软件  
 
 
 
首先(最重要的也是大多数情况下)是写其他黑客认为有趣或有用的程序,并把源代码公开给所有黑客文化中的人使用。  
 
 
 
(我们称这项工作为“free software”,但关于free一词的真正含义带给人们许多的困扰,现在我们通常更愿意使用术语“open-source”软件)。  
 
 
 
黑客最尊崇的是那些写出功能强大,为大家所需要,并且大家都在使用的程序的人。  
 
 
 
2. 帮助Open-Source软件做测试和除错  
 
 
 
黑客们也尊敬为Open-Source软件除错的人。在这个并不完善的世界里,我们将不可避免的花费大部分的软件开发时间在除错阶段。这就是为什么所有Open-Source的作者都会告诉你好的beta测试者(他们能够清楚的描述状况,准确的使问题局部化,可以容忍测试版本的 bug,并且能使用一些简单的诊断程序)和红宝石一样贵重。甚至他们之中有些人还可以分辨出哪些除错过程会造成拖延,哪些是令人疲惫的噩梦,哪些不过是些有益的麻烦。  
 
 
 
如果你是一个网络新手,试着去找一个你有兴趣的正在发展中的程序,并且成为一个好的beta测试者。从帮忙测试到帮忙除错进而到开始帮忙修改程序,就象自然级数一样,你将学到一些方法,并且和今后可以帮助你的人产生有益的联系。  
 
 
 
3. 发布有用的信息  
 
 
 
另一件好事是收集和过滤有用且有趣的信息,整理成Web页或FAQ列表之类的文档,并使其可以使用。  
 
 
 
维护主要技术的FAQ通常可以获得和Open-Source软件作者几乎一样多的尊敬。  
 
 
 
4. 帮忙维护基础设施  
 
 
 
黑客文化(和Internet的发展)由一群志愿者运作。这种运转需要做一些非常乏味但又必须的工作 -- 管理邮件列表,维护新闻组,维护大型的软件存档站点,开发RFC和其它技术的标准。  
 
 
 
做这类事的人将得到很多的尊敬,因为人人都知道这些工作需要耗费很多的时间,又不像摆弄代码那样有趣。这样做显示了奉献精神。  
 
 
 
5. 服务于黑客文化本身  
 
 
 
最后一项,你可以为黑客文化本身服务和做宣传(例如,写一份正确的关于如何成为一名黑客的初级读本 :-))。这不是在你因做上面的四件事情而变得众所周知之前所应该做的。  
 
 
 
准确来说,黑客文化并没有领导者,但是黑客文化存在着文化英雄、部落长老、史学家和代言人。当你在其中混得足够久时,你也许也会成为这其中的一员。千万小心:黑客们并不信任傲慢自大的长者,这种名声是非常危险的。与其去争论这种东西,倒不如坚定自己的立场,并体现出谦虚而高尚的情操。  
 
 
 
 
 
Hacker和Nerd(怪人)的联系  
 
 
 
与传说恰恰相反,你无须为了成为黑客而将自己变得异于常人(Nerd)。然而,这可能会有所帮助,并且确实有许多黑客是不折不扣的怪人。背离社会可以帮助你将精力集中于真正重要的事情,象思考和Hacking。  
 
 
 
因此,许多黑客被贴上了‘怪人’的标签甚至以使用‘杂耍者’这样的字眼标示自己为傲 --他们以这种方式表明他们独立于世俗之外。可以在The Geek Page找到更多相关的讨论。  
 
 
 
如果你能对Hacking保有足够的专注,并且还能正常地生活,那么非常好。现在想做到这样比在1970年我还是个网络新手的时候要容易得多了。techno-nerd(技术怪才)现在也为主流文化所接受。甚至有越来越多的人认识倒黑客通常也是很好的情侣和配偶。 在 Girl's Guide to Geek Guys 可找到更多相关的讯息。  
 
(http://www.bunnyhop.com/BH5/geekguys.html)  
 
 
 
如果你是因为没有生计而关注Hacking,那也不错 -- 至少你不会为不能专心而烦恼了,也许过不了多久你就可以拥有你自己的生活了。  
 
 
 
 
 
风范要点  
 
 
 
再次强调,作为一个黑客就要以黑客的头脑思考。即使你的身边没有电脑,你仍有一些事情可做。这些事情不能成为Hacking的替代品(也没有东西可以),不过仍有不少黑客经常这样去做,并认为这些事与黑客的本质有着某种基本的联系。  
 
 
 
* 学习用你的母语写作,有惊人数量的黑客(包括我所知道的所有最出色的黑客)都是很好的作家。  
 
* 阅读科幻小说,参加科幻小说协会(这是一个遇到黑客和主流黑客们的好办法)。  
 
* 学习禅教,并(或者)吸收战争艺术(重要的智力训练)。  
 
* 训练你耳朵的辩音能力,学习鉴赏某种奇特的音乐,学玩一些乐器或如何唱歌。  
 
* 增强俏皮话和文字游戏的能力。  
 
 
 
你做了越多这样的事,那么你就越可能成为天生的黑客材料。这些事情虽然可能在细节上不是十分的清晰,但对打造你的左右脑能力来说是至关重要的(黑客需要在瞬间对问题的内部机制和次序逻辑做出判断)。  
 
 
 
最后,有一些事千万别做:  
 
 
 
* 不要使用愚蠢而夸张的User ID或化名。  
 
* 不要加入Usenet上的激烈争论的战火(或任何其它地方的)。  
 
* 不要cyberpunk(计算机朋客)自称,也不要在这些人身上浪费你的时间。  
 
* 不要张贴和E-Mail充满拼写和语法错误的作品。  
 
 
 
做这些事的唯一结果就是嘲笑。隐藏身份是一种幼稚愚蠢的Crack行为,黑客从不这么做;他们为自己所做的一切自豪,并想方设法地将其与自己的真名联系在一起。如果你隐藏自己的行为,在黑客的文化圈内你只能是个失败者。
回答者:李大忽悠 - 高级经理 六级 3-20 14:53
如何成为一名黑客  
 
什么是黑客?  
 
Jargon File中对“黑客”一词给出了很多个定义,大部分定义都涉及高超的编程技术,强烈的解决问题和克服限制的欲望。如果你想知道如何成为一名黑客,那么好,只有两方面是重要的。(态度和技术)  
 
长久以来,存在一个专家级程序员和网络高手的共享文化社群,其历史可以追溯到几十年前第一台分时共享的小型机和最早的ARPAnet实验时期。 这个文化的参与者们创造了“黑客”这个词。 黑客们建起了Internet。黑客们使Unix操作系统成为今天这个样子。黑客们搭起了Usenet。黑客们让WWW正常运转。如果你是这个文化的一部分,如果你已经为它作了些贡献,而且圈内的其他人也知道你是谁并称你为一个黑客,那么你就是一名黑客。  
 
黑客精神并不仅仅局限于软件黑客文化圈中。有些人同样以黑客态度对待其它事情如电子和音乐---事实上,你可以在任何较高级别的科学和艺术中发现它。软件黑客们识别出这些在其他领域同类并把他们也称作黑客---有人宣称黑客实际上是独立于他们工作领域的。 但在本文中,我们将注意力集中在软件黑客的技术和态度,以及发明了“黑客”一词的哪个共享文化传统之上。  
 
另外还有一群人,他们大声嚷嚷着自己是黑客,实际上他们却不是。他们是一些蓄意破坏计算机和电话系统的人(多数是青春期的少年)。真正的黑客把这些人叫做“骇客”(cracker),并不屑与之为伍。多数真正的黑客认为骇客们是些不负责任的懒家伙,还没什么大本事。专门以破坏别人安全为目的的行为并不能使你成为一名黑客, 正如拿根铁丝能打开汽车并不能使你成为一个汽车工程师。不幸的是,很多记者和作家往往错把“骇客”当成黑客;这种做法激怒真正的黑客。  
 
根本的区别是:黑客们建设,而骇客们破坏。  
 
如果你想成为一名黑客,继续读下去。如果你想做一个骇客,去读 alt.2600 新闻组,并在发现你并不像自己想象的那么聪明的时候去坐5到10次监狱。 关于骇客,我只想说这么多。  
 
---黑客的态度  
 
黑客们解决问题,建设事物,信仰自由和双向的帮助,人人为我, 我为人人。  
要想被认为是一名黑客,你的行为必须显示出你已经具备了这种态度。要想做的好象你具备这种态度,你就不得不真的具备这种态度。但是如果你想靠培养黑客态度在黑客文化中得到承认,那就大错特错了。因为成为具备这些特质的这种人对你自己非常重要,有助于你学习,并给你提供源源不断的活力。同所有有创造性的艺术一样,成为大师的最有效方法就是模仿大师的精神---不是仅从理智上,更要从感情上进行模仿。  
 
So,如果你想做一名黑客,请重复以下事情直到你相信它们:  
 
1 这世界充满待解决的迷人问题  
 
做一名黑客有很多乐趣,但却是些要费很多气力方能得到的乐趣。 这些努力需要动力。成功的运动员从健壮体魄,挑战自我极限中汲取动力。同样,做黑客,你必须  
要有从解决问题,磨练技术,锻炼智力中得到基本的热望。如果你还不是这类人又想做黑客,你就要设法成为这样的人。否则你会发现,你的黑客热情会被其他诱惑无情地吞噬掉---如金钱、性和社会上的虚名。  
 
(同样你必须对你自己的学习能力建立信心---相信尽管你对某问题所知不多,但如果你一点一点地学习、试探,你最终会掌握并解决它。)  
 
2. 一个问题不应该被解决两次  
 
聪明的脑瓜是宝贵的,有限的资源。当这个世界还充满其他有待解决的有趣问题之时,他们不应该被浪费在重新发明轮子这些事情上。 作为一名黑客,你必须相信其他黑客的思考时间是宝贵的---因此共享信息,解决问题并发布结果给其他黑客几乎是一种道义,这样其他人就可以去解决新问题而不是重复地对付旧问题。  
 
(你不必认为你一定要把你的发明创造公布出去,但这样做的黑客是赢得大家尊敬最多的人。卖些钱来给自己养家糊口,买房买车买计算机甚至发大财和黑客价值也是相容的,只要你别忘记你还是个黑客。)  
 
3. 无聊和乏味的工作是罪恶  
 
黑客们应该从来不会被愚蠢的重复性劳动所困扰,因为当这种事情发生时就意味着他们没有在做只有他们才能做的事情---解决新问题。这样的浪费伤害每一个人。因此,无聊和乏味的工作不仅仅是令人不舒服而已,它们是极大的犯罪。 要想做的象个黑客,你必须完全相信这点并尽可能多地将乏味的工作自动化,不仅为你自己,也为了其他人(尤其是其他黑客们)。  
 
(对此有一个明显的例外。黑客们有时也做一些重复性的枯燥工作以进行“脑力休息”,或是为练熟了某个技巧,或是获得一些除此无法获得的经验。但这是他自己的选择---有脑子的人不应该被迫做无聊的活儿。)  
 
4 自由就是好  
 
黑客们是天生的反权威主义者。任何能向你发命令的人会迫使你停止解决令你着迷的问题,同时,按照权威的一般思路,他通常会给出一些极其愚昧的理由。因此,不论何时何地,任何权威,只要他压迫你或其他黑客,就要和他斗到底。  
 
(这并非说任何权力都不必要。儿童需要监护,罪犯也要被看管起来。 如果服从命令得到某种东西比起用其他方式得到它更节约时间,黑客会同意接受某种形式的权威。但这是一个有限的、特意的交易;权力想要的那种个人服从不是你的给予,而是无条件的服从。)  
 
权力喜爱审查和保密。他们不信任自愿的合作和信息共享---他们只喜欢由他们控制的合作。因此,要想做的象个黑客,你得对审查、保密,以及使用武力或欺骗去压迫人们的做法有一种本能的反感和敌意。  
 
5. 态度不能替代能力  
 
要做一名黑客,你必须培养起这些态度。但只具备这些态度并不能使你成为一名黑客,就象这并不能使你成为一个运动健将和摇滚明星一样。成为一名黑客需要花费智力,实践,奉献和辛苦。  
 
因此,你必须学会不相信态度,并尊重各种各样的能力。黑客们不会为那些故意装模做样的人浪费时间,但他们却非常尊重能力---尤其是做黑客的能力,不过任何能力总归是好的。具备很少人才能掌握的技术方面的能力尤其为好,而具备那些涉及脑力、技巧和聚精会神的能力为最好。  
 
如果你尊敬能力,你会享受提高自己能力的乐趣---辛苦的工作和奉献会变成一种高度娱乐而非贱役。 要想成为一名黑客,这一点非常重要。  
 
基本黑客技术  
 
黑客态度是重要的,但技术更加重要。态度无法替代技术,在你被别的黑客称为黑客之前,有一套基本的技术你必须掌握。 这套基本技术随着新技术的出现和老技术的过时也随时间在缓慢改变。例如,过去包括使用机器码编程,而知道最近才包括了HTML语言。但现在明显包括以下技术:  
 
1 学习如何编程  
 
这当然是最基本的黑客技术。如果你还不会任何计算机语言,我建议你从Python开始。它设计清晰,文档齐全,对初学者很合适。尽管是一门很好的初级语言,它不仅仅只是个玩具。它非常强大,灵活,也适合做大型项目。  
 
但是记住,如果你只会一门语言,你将不会达到黑客所要求的技术水平,甚至也不能达到一个普通程序员的水平---你需要学会如何以一个通用的方法思考编程问题,独立于任何语言。要做一名真正的黑客,你需要学会如何在几天内通过一些手册,结合你现在所知,迅速掌握一门新语言。这意味着你应该学会几种不同的语言。  
 
如果要做一些重要的编程,你将不得不学习C语言,Unix的核心语言。其他对黑客而言比较重要的语言包括Perl和LISP。 Perl很实用,值得一学;它被广泛用于活动网页和系统管理,因此即便你从不用Perl写程序,至少也应该能读懂它。 LISP 值得学习是因为当你最终掌握了它你会得到丰富的经验;这些经验使你在以后的日子里成为一个更好的程序员,即使你实际上可能很少使用LISP本身。  
 
当然,实际上你最好四种都会。 (Python, C, Perl, and LISP). 除了是最重要的四种基本语言,它们还代表了四种非常不同的编程方法,每种都会让你受益非浅。  
 
这里我无法完整地教会你如何编程---这是个复杂的活儿。但我可以告诉你,书本和课程也不能作到。几乎所有最好的黑客都是自学成材的。真正能起作用的就是去亲自读代码和写代码。  
 
学习如何编程就象学习用自然语言写作一样。最好的做法是读一些大师的名著,试着自己写点东西,再读些,再写点,又读些,又写点....如此往复,直到你达到自己在范文中看到的简洁和力量。  
 
过去找到好的代码去读是困难的,因为很少有大型程序的可用源代码能让新手练手。这种状况已经得到了很大的改善;现在有很多可用的开放源码软件,编程工具和操作系统(全都有黑客写成)。这使我们自然地来到第二个话题...  
 
2 得到一个开放源码的Unix并学会使用、运行它  
 
我假设你已经拥有了一台个人计算机或者有一个可用的( 今天的孩子们真幸福 :-) )。新手们最基本的一步就是得到一份Linux或BSD-Unix,安装在个人计算机上,并运行它。  
当然,这世界上除了Unix还有其他操作系统。但它们都是以二进制形式发送的---你无法读到它的源码,更不可能修改它。尝试在DOS或Windows的机器上学习黑客技术,就象是在腿上绑了铁块去学跳舞。  
 
除此之外,Unix还是Internet的操作系统。你可以不知道Unix而学会用Internet,但不懂它你就无法成为一名Internet黑客。因为这个原因,今天的黑客文化在很大程度上是以Unix为中心的。(这点并不总是真的,一些很早的黑客对此很不高兴,但Unix和Internet之间的共生关系已是如此之强,甚至连微软也无可奈何)  
 
So,装一个Unix---我个人喜欢Linux,不过也有其他选择。(你也可以在同一台机器上同时运行DOS,Windows和Linux)学会它。运行它。用它跟Internet对话。读它的代码。试着去修改他。你会得到比微软操作系统上好的多的编程工具(包括C,Lisp, Python, and Perl),你会得到乐趣,并将学到比你想象的更多知识。  
 
关于学习Unix的更多信息,请看 The Loginataka.  
 
要得到Linux,请看: 哪里能得到 Linux.  
 
3 学会如何使用WWW和写HTML  
 
大多黑客文化建造的东西都在你看不见的地方发挥着作用,帮助工厂、办公室和大学正常运转,表面上很难看到它对他人的生活的影响。Web是一个大大的例外。即便政客也同意,这个巨大而耀眼的黑客玩具正在改变整个世界。单是这个原因(还有许多其它的), 你就需要学习如何掌握Web。  
 
这并不是仅仅意味着如何使用浏览器(谁都会),而是要学会如何写HTML,Web的标记语言。如果你不会编程,写HTML会教你一些有助于学习的思考习惯。因此,先建起自己的主页。  
 
但仅仅建一个主页也不能使你成为一名黑客。 Web里充满了各种网页。多数是无意义的,零信息量垃圾。  
 
要想有价值,你的网页必须有内容---必须有趣或对其它黑客有用。这样,我们来到下一个话题....  
 
 
黑客文化中的地位大教堂与集市”,解释了许多Linux和开放源码文化的运做原理。我还在它的续集“大教堂与集市”,解释了许多Linux和开放源码文化的运做原理。我还在它的续集“开拓智域”一文中有更直接的论述。  
 
FAQ(常问问题解答)  
 
问:你会教我如何做黑客吗?  
 
自从第一次发布此页,我每周都会得到一些请求,要我“教会他如何做黑客”;遗憾的是,我没有足够的时间和精力来做这个;我自己的编程项目已经占用了我110%的时间。  
甚至即便我想教你也不可能,黑客基本上是一项需要你自行修炼的的态度和技术。你会发现即使真正的黑客想帮助你,如果你乞求他们填鸭一样教你的话,你不会赢得他们的尊敬。  
首先去学习。显示你在尝试,你能靠自己去学习。然后再去向黑客们请教问题。  
 
 
问:你会帮我“黑”掉一个站点吗?或者教我怎么黑它?  
 
No. 任何在读完FAQ后还问此问题人,都是愚不可及的家伙,即使有时间我也不会理睬。 任何发给我的此类mail都会被忽略或被痛斥。  
 
问:哪里能找到真正的可以与之交流的黑客?  
 
最佳办法是就近参加一个Unix或Linux的用户组,参加他们的会议。  
 
问:我该先学哪种语言?  
 
HTML, 如果你还不会的话.  
但它不是一个真正的编程语言。当你准备编程时,我建议你从 Python开始. 会有很多人向你推荐Perl,它比Python还受欢迎,但却难学一些。  
 
C 是非常重要的,但它却是最难学的。不要一开始就尝试学C。  
 
问:开放源码的自由软件不会使程序员饿肚子吗?  
 
这似乎不大可能---到目前,开放源码软件产业创造了而不是消灭了大量工作机会。  
如果写一个程序比不写一个程序只是个纯粹经济上的收益的话,无论它是否免费,只要它被完成,程序员都会从中得到回报。而且,无论软件是由多么的free的方法开发的,对更新的软件应用的需求总是会有的。  
 
问:我从何学起?哪里有免费的Unix?  
 
本页的其他地方指向最常用的免费Unix。要做一名黑客,你需要自立自强,以及自我教育的能力。  
现在开始吧......  
参考资料:http://www.host01.com/Get/server/00070002/0542417261047661.htm
posted @ 2009-05-24 22:19  MoDa  阅读(1649)  评论(0编辑  收藏  举报