什么是黑客?
黑客(hacker)一词来源于英文Hacker,最初指的是对计算机技术有热情、水平较高的计算机专家,尤其是程序员。
但是今天,“黑客”这个词已经被用来指那些利用电脑搞破坏或恶作剧的人。这些人的正确英文名是Cracker,翻译过来就是“黑客”。
黑客和骇客的根本区别在于,黑客建设,黑客破坏。
-什么是黑客?
行话文件中对“黑客”一词的定义有很多,大部分都涉及高超的编程技巧和解决问题、克服局限的强烈愿望。如果你想知道如何成为一名黑客,那么,只有两个方面是重要的。(态度和技术)
长期以来,有一个专家程序员和网络专家的文化社区,其历史可以追溯到几十年前的第一台分时小型机和最早的ARPAnet实验。这种文化的参与者创造了“黑客”这个词。黑客建立了互联网。黑客成就了今天的Unix操作系统。黑客建立了新闻组。黑客让WWW正常工作。如果你是这种文化的一部分,如果你对这种文化做出了一些贡献,圈子里的其他人知道你是谁,叫你黑客,那你就是黑客?
黑客精神并不局限于软件黑客的文化圈。也有人把电子、音乐之类的其他东西当做黑客——其实你在任何更高层次的科学、艺术中都能找到,软件黑客认可这些其他领域的同行,称他们为黑客——有人声称黑客其实是独立于工作领域的。但在本文中,我们关注的是软件黑客的技术和态度,以及“黑客”这个词是谁发明的享有文化传统。
还有一群人,他们大声喊着自己是黑客,其实不是。他们是故意破坏电脑和电话系统的人(大多是青少年)。真正的黑客称这些人为“黑客”,不屑与他们交往。大多数真正的黑客都认为黑客是不负责任的懒家伙,没有什么了不起的技能。就像拿一根电线去开汽车不能让你成为汽车工程师一样,一个旨在破坏他人安全的行为也不能让你成为黑客。不幸的是,许多记者和作家经常把“黑客”误认为黑客;这种做法激怒了真正的黑客。
最根本的区别是,黑客建立,黑客破坏。
如果你想成为一名黑客,请继续阅读。想当黑客,看alt.2600新闻组,当你发现自己没有想象中那么聪明的时候,去坐牢5到10次。关于黑客我只想说这么多。
-黑客的态度
黑客解决问题,建造东西,有信仰自由,有双向帮助。人人为我,我为人人。
要想被认为是黑客,你的行为必须表明你有这个态度。如果你想表现得像你有这种态度,你必须真的有这种态度。但如果你想通过培养黑客态度在黑客文化中得到认可,那就大错特错了。因为对你来说,成为这样一个拥有这些品质的人是非常重要的,这将有助于你的学习,为你提供无穷的活力。像所有创造性的艺术一样,成为大师最有效的方法是模仿大师精神——不仅在智力上,而且在情感上。
所以,如果你想成为一名黑客,请重复下面的事情,直到你相信它们:
1这个世界充满了有待解决的迷人问题。
做黑客有很多乐趣,但要得到它需要付出很多努力。这些努力需要动力。成功的运动员从强健的体魄和挑战自己的极限中汲取动力。同样,要成为一名黑客,你必须
你要有解决问题的基本欲望,磨练自己的技能,锻炼自己的智力。如果你不是这样的人,想成为一个黑客,那就努力成为这样的人。否则,你会发现你对黑客的热情会被其他诱惑无情吞噬——比如金钱、性、社会声誉。
同样,你也要对自己的学习能力建立信心——我相信,虽然你对一个问题不太了解,但如果你一点一滴地去学习和探索,你最终会掌握并解决它。)
一个问题不应该解决两次。
聪明的大脑是珍贵而有限的资源。当世界充满其他有趣的问题需要解决时,他们不应该浪费在重新发明轮子上。作为一个黑客,你必须相信其他黑客的思考时间是宝贵的——所以享受信息,解决问题,并把结果发布给其他黑客,让其他人解决新问题,而不是反复处理旧问题,几乎成了一种道德。
你不必认为你必须公布你的发明,但做这件事的黑客才是最赢得所有人尊重的人。卖点钱养家糊口,买房买车电脑甚至发大财,都是兼容黑客的价值的,只要你别忘了自己还是个黑客。)
枯燥乏味的工作是一种罪恶。
黑客永远不应该被愚蠢的重复性工作所困扰,因为当这种情况发生时,意味着他们没有在做只有他们才能做的事情——解决新问题。这样的浪费伤害了所有人。所以,枯燥乏味的工作不仅不舒服,更是一种极大的犯罪。要像一个黑客一样行动,你必须完全相信这一点,尽可能多地自动化枯燥的工作,不仅是为了自己,也是为了别人(尤其是其他黑客)。
对此有一个明显的例外。黑客有时会做一些重复而枯燥的工作来进行“精神休息”,或者练习一项技能或者获得一些通过其他方式无法获得的经验。但这是他自己的选择——有脑子的人不应该被强迫做无聊的工作。)
自由是好的。
黑客是天生的反独裁主义者。任何能给你下命令的人都会强迫你停止解决令你着迷的问题,同时按照权威的一般想法,他通常会给出一些极其愚蠢的理由。所以,无论何时何地,任何权威,只要他压迫你或者其他黑客,都会和他斗争到底。
(这并不是说任何权力都是不必要的。孩子需要监护,罪犯也要照顾。如果通过服从命令比通过其他方式获得某样东西需要更多的时间,黑客就会同意接受某种形式的权威。但这是一种有限的、刻意的交易;权力要的个人服从,不是你的付出,而是无条件的服从。)
权力喜欢审查和保密。他们不信任自愿合作和信息共享——他们只喜欢由他们控制的合作。所以,如果你想成为一名黑客,你必须对审查制度、保密制度以及使用武力或欺骗手段来压迫人民有一种本能的厌恶和敌意。
5.态度不能代替能力
要成为一名黑客,你必须培养这些态度。但是仅仅有这些态度并不能让你成为一名黑客,就像不能让你成为一名运动员和摇滚明星一样。成为一名黑客需要智慧、实践、奉献和努力。
所以,你必须学会不信任的态度,尊重各种能力。黑客不会在故意装腔作势的人身上浪费时间,而是尊重他们的能力——尤其是做黑客的能力,但任何能力总是好的。有很少人能掌握的技术技能特别好,最好是那些涉及脑力、技巧、专注力的技能。
如果你尊重你的能力,你会享受提高你的能力——努力和奉献将成为一种高级娱乐而不是廉价服务。这对于一个黑客来说是非常重要的。
-基本黑客技术
黑客态度重要,但技术更重要。态度代替不了技术。在你被其他黑客称为黑客之前,有一套基本的技术是你必须掌握的。随着新技术的出现,旧技术的淘汰,这种基础技术也在随着时间慢慢改变。比如以前包括用机器码编程,最近才包括HTML语言。但现在显然包括以下技术:
1学习编程
这当然是最基本的黑客技术。如果你还不懂任何计算机语言,我建议你从Python开始。它有清晰的设计和完整的文档,非常适合初学者。虽然它是一门很好的初级语言,但它不仅仅是一个玩具。它非常强大、灵活,适合大型项目。
但是记住,如果你只懂一种语言,你就达不到黑客所要求的技术水平,甚至达不到一个普通程序员的水平——你需要学会如何用一种通用的方式思考编程问题,独立于任何语言。要成为一个真正的黑客,你需要在几天内通过一些手册,结合你现在所知道的,学会如何快速掌握一门新的语言。这意味着你应该学习几种不同的语言。
如果你想做一些重要的编程,你将不得不学习Unix的核心语言C。对黑客很重要的其他语言包括Perl和LISP。Perl很实用,值得学习;它广泛应用于动态网页和系统管理,所以即使你从来没有用Perl编写过程序,至少你应该能够阅读它。LISP值得学习,因为当你最终掌握它时,你会获得丰富的经验;这些经验会让你在未来成为一名更好的程序员,即使你可能实际上很少使用LISP。
当然,其实你最好四个都做。(Python、C、Perl、LISP)。除了四种最重要的基本语言,它们还代表了四种非常不同的编程方法,每一种都会让你受益匪浅。
我不能在这里完全教你如何编程——这是一项复杂的工作。但是我可以告诉你,书本和课程也做不到。几乎所有最优秀的黑客都是自学的。真正管用的是自己去读写代码。
学习如何编程就像学习用自然语言写作一样。最好的办法就是自己读一些名著,试着写点什么,多读,多写,多读,多写...如此等等,直到你达到你在范文中看到的简单和力量。
在过去,很难找到好的代码来阅读,因为很少有大型程序的源代码可供新手练习。这种情况得到了很大的改善;现在有很多开源软件,编程工具,操作系统(都是黑客写的)。这就自然而然地把我们带到了第二个话题。...
获得一个开源Unix,并学习使用和运行它。
我假设你已经有一台个人电脑,或者有一台可用的(今天的孩子们太高兴了:-)。新手最基本的步骤是获得Linux或BSD-Unix的副本,安装在个人计算机上并运行。
当然,这个世界上除了Unix还有其他操作系统。但它们都是以二进制形式发送的——你看不懂它的源代码,更不用说会修改它。试图在DOS或Windows机器上学习黑客技术就像在腿上绑着铁条学习跳舞一样。
另外,Unix是互联网的操作系统。不了解Unix可以学习使用互联网,但不了解就做不了互联网黑客。由于这个原因,今天的黑客文化很大程度上是以Unix为中心的。这并不总是正确的,一些早期的黑客对此非常不满,但Unix和互联网的关系如此之强,甚至连微软也无能为力。
所以,安装一个Unix——我个人喜欢Linux,但也有其他选择。(也可以在同一台机器上同时运行DOS、Windows、Linux)学习一下。运行它。用它和互联网通话。阅读它的代码。试着改造他。你会得到比微软操作系统好得多的编程工具(包括C、Lisp、Python、Perl),你会玩得开心,学到的东西比你想象的多。
有关学习Unix的更多信息,请参阅Loginataka。
要获得Linux,请参阅:哪里可以获得Linux?
学习如何使用WWW和编写HTML
黑客文化构建的东西,大多在你看不到的地方发挥作用,帮助工厂、办公室、大学正常运转。从表面上看,很难看出它对别人生活的影响。网络是一个很大的例外。就连政客们也一致认为,这个巨大而耀眼的黑客玩具正在改变整个世界。仅仅因为这个原因(以及许多其他原因),你需要学习如何掌握网络。
这不仅仅意味着如何使用浏览器(任何人都可以),而是如何编写HTML和Web标记语言。如果你不会编程,写HTML会教你一些思维习惯,对你学习有帮助。因此,先建立自己的主页。
但是仅仅建个主页并不能让你成为黑客。网络上充斥着各种各样的网页。大部分都是毫无意义,零信息的垃圾。
要想有价值,你的网页必须有内容——它必须有趣或者对其他黑客有用。所以,我们进入下一个话题。....
-在黑客文化中的地位
和大多数不涉及金钱的文化一样,黑客王国的运作靠的是信誉。你试图解决有趣的问题,但是这些问题有多有趣,你的解决方案有多好,会由那些和你技术水平相当或者比你优秀的人来评判。
相应地,当你在玩黑客游戏时,你知道你的分数取决于其他黑客对你技术的评价。这一事实往往被黑客是一项孤独的工作的印象所削弱。还会被黑客文化中的另一个禁忌削弱(正在削弱但依然强大):拒绝承认自我或外界评价是一个人的动力。
尤其是黑客王国,被人类学家称为精英文化。在这里,你不是靠你对别人的统治,也不是靠你的美貌或别人想要什么来建立你的地位和名声,而是靠你的奉献。特别是,奉献你的时间、你的才能和你的技术成就。
要获得其他黑客的尊重,你可以做以下五件事:
1.编写开源软件
第一种(也是最基础最传统的)是写一些其他黑客认为有趣或者有用的程序,把程序的原代码公布出来让大家欣赏。
过去我们称之为“自由软件——自由软件”,却迷惑了很多不知道自由确切含义的人。现在我们中的许多人使用单词“-开源”)
黑客王国里最受尊敬的牛,就是那些写出了大规模、广泛使用的软件,并发布出来,让所有人都可以使用他的软件的人。
2.帮助测试和修改开源软件。
黑客也尊重那些使用和测试开源软件的人。在这个不完美的世界里,我们不可避免地要在测试和捕捉bug的阶段花费大量的软件开发时间。这也是为什么任何一个开源作者稍加思考就会告诉你,一个好的beta测试人员就像红宝石一样珍贵。(他知道如何清楚地描述错误的症状,很好地定位错误,能够容忍快速发布的软件中的bug,并且愿意使用一些简单的诊断工具。)甚至他们中的一个人也能判断出哪个测试阶段是一场漫长而令人疲惫的噩梦,哪个只是一件健康的事情。
如果你是新手,试着找一个正在开发的程序,做一个好的beta测试者。从帮助测试,到抓bug,最后到改程序,你会不断进步。以后你写程序,会有别人帮你,你原来的善良会得到回报。
3.发布有用的信息
另一件好事是收集和组织有用和有趣的信息或文档,如网页上的FAQ。许多主要的FAQ维护者和其他开源作者一样受人尊敬。
4.帮助维护基础设施的运行。
黑客文化是由志愿者经营的。要让互联网正常工作,就要做很多枯燥的工作——管理邮件列表、新闻组、维护大量文档、开发RFC等技术标准等等。做这种事情的人会受到很多人的尊重,因为大家都知道这些事情耗时耗力,没有编码好玩。做这些事需要毅力。
5.服务于黑客文化本身
最后,你可以为文化本身服务(比如像我一样,写一篇如何成为黑客的初级教程:-)(呵呵,像我一样翻译成中文:-)这个不一定要在你在这里待久了,以上四点都掌握了,有了一定的名气之后再做。
黑客文化没有领袖。准确地说,它确实有一些文化英雄和部落长老以及历史学家和发言人。如果你在这个圈子里呆的时间够长,你就有可能成为他们中的一员。
记住:黑客不相信自己部落长老的吹嘘,所以追求这种名声显然是危险的。你必须有基本的谦虚和优雅。
-黑客和书呆子之间的联系。
与流行的传说相反,你不必成为一个黑客怪胎。然而,许多黑客都是怪人。出生有助于你专注于更重要的事情,比如思考和编程。
所以很多黑客愿意接受“极客”这个标签,更有甚者,愿意用“极客”这个词,并以此为荣——这是一种不与主流社会合作的声明。
如果你能集中足够的精力成为一名优秀的黑客,同时拥有正常的生活,那很好。今天做到这一点比我1970年代的新手容易多了,今天主流文化对科技极客友好多了。更有更多的人意识到,黑客通常更有爱心,是恋人和配偶的好材料。更多信息请参见《极客女孩指南》。
如果你因为生活不开心而被吸引去做黑客,那也没什么——至少你不会分心。也许以后你会找到你的另一半。
-风格的含义
又是幻想?停下来?哎?有什么办法?哎?小五,你怎么了?瓜仙宝?你怎么了?1.送芴?哎?有什么计划?切z芴呢?发帖敲醋怎么了?⒏机械压制?怕死?真正的坟墓是什么?
看科幻小说。参加一个科幻研讨会。(寻找黑客的好地方)
学禅,或者练武。
练就一双精准的耳朵,学会欣赏特别的音乐。学习演奏乐器或唱歌。
提高对双关语的鉴赏能力。
学会流利地用母语写作。令人惊讶的是,我认识的最好的黑客都是非常优秀的作家。
这些事情做的越多,越适合做黑客。至于为什么会发生这些事情,原因不是很清楚,但都涉及到左右脑的综合技能,这似乎是关键。黑客不仅需要清晰的逻辑思维,还需要强大的超越逻辑的直觉。
最后,有些事情是不能做的。
不要用愚蠢的,太哗众取宠的id。
不要自称朋克,也不要和那些人浪费时间。
不要发满是拼写和语法错误的邮件,也不要发满是错误的文章。
做以上事情会极大的损害你的名誉。黑客有极好的记忆力——你要花好几年才能让他们忘记你的愚蠢。
-其他资源
Peter Seebach为不知道如何应对黑客的经理们维护了一个精彩的黑客常见问题解答。
Loginataka有很多关于如何正确培养Unix黑客态度的资料。
我曾经写过一部黑客文化简史。
我还写了另一篇文章,“大教堂和市场”,解释了多少Linux和开源文化的工作。我在它的续篇《开拓智识领域》里也有更直接的论述。
-常见问题(常见问题)
问:你会教我如何成为一名黑客吗?
从我第一次发表这个页面开始,每周都有人要求我“教他如何做一个黑客”。可惜我没有足够的时间和精力去做这件事;我自己的编程项目已经占用了我110%的时间。
就算我想教你,也是不可能的。黑客基本上是一种态度和技术,需要你自己去培养。你会发现,即使真正的黑客想帮你,如果你像鸭子一样求他们教你,你也不会赢得他们的尊重。
首先,学习。表明你在努力,你可以自学。然后问黑客问题。
问:你会帮我“黑”一个网站吗?或者教我怎么黑?
不会的,看完FAQ还问这个问题的都是傻逼,我就算有时间也不会理会。任何此类邮件发送给我将被忽略或谴责。
问:哪里可以找到真正的黑客交流?
最好的方法是加入附近的Unix或Linux用户组,参加他们的会议。
问:我应该先学习哪种语言?
HTML,如果你还不知道的话。
但它不是真正的编程语言。当你准备编程的时候,我建议你从Python开始。很多人会向你推荐Perl。它比Python更受欢迎,但更难学。
c很重要,但是最难学。不要试图从头开始学C。
问:开源自由软件不会让程序员饿肚子吗?
这似乎不太可能——到目前为止,开源软件行业创造了大量就业机会,而不是摧毁了它们。
如果写程序只是比不写程序有纯经济效益的话,不管是不是免费,只要完成了,程序员就会从中获得报酬。而且,无论软件开发的多么自由,总会有更新软件应用的需求。
问:我从哪里开始?哪里可以得到免费的Unix?
本页的其余部分指向最常用的免费Unix。做一个黑客,需要自力更生,自学成才。