如何成为一名黑客 (二)

如何成为一名黑客 (二) - 网络安全 - 电脑教程网

如何成为一名黑客 (二)

日期:2006-12-27   荐:
--------------------------------------------------------------------------------

黑客的基本技能
黑客态度重要,但技术更加重要。态度无法替代技术,在你被别的黑客称为黑客之前,有一些基本的技术你必须掌握。

这些基本技术随着新技术的出现和老技术的过时也随时间在缓慢改变。例如,过去内容包括使用机器语言编程,而直到最近才包括了Html。总的来说现在主要包括以下技术:


--------------------------------------------------------------------------------

1. 学习如何编程。
这当然是最基本的黑客技能。如果你还不会任何编程语言,我建议你从Python肌K杓魄逦牡灯肴鲜食跹д呷朊拧K且幻藕芎玫娜朊庞镅裕⑶也唤鼋鲋皇歉鐾婢撸凰浅G看蟆⒘榛睿彩屎献龃笮拖钅俊N矣幸黄?Python评价详细说明这点。好的 教程 可以在Python网站得到。(译者:比较好的中文Python站点可能是http://pythonrecord.51.net。)

Java也是好的入门语言。它比Python难得多,但是生成的代码速度也快得多。它同时也是一种优秀的计算机语言,不止是用来入门。

但是注意,如果你只会一两门语言,你将不会达到黑客所要求的技术水平,甚至也不能达到一个程序员的水平——你需要学会如何以抽象的方式思考编程问题,独立于任何语言。要做一名真正的黑客,你需要学会在几天内通过一些手册,结合你现在所知,迅速掌握一门新语言。这意味着你应该学会几种截然不同的语言。

如果要做一些重要的编程工作,你将不得不学习C语言,Unix的核心语言。 C++与C非常其他类似;如果你了解其中一种,学习另一种应该不难。但这两种都不适合编程入门者学习。而且事实上,你越避免用C编程,你的工作效率会越高。

C非常有效率,节约你的机器资源。不幸的是,C的高效是通过你手动做很多底层的管理(如内存)来达到的。底层代码都是复杂极易出现bug的,会使你花极多的时间调试。如今的机器速度如此之快,这通常是得不偿失——比较明智的做法是使用一种运行较慢、较低效率,但大幅节省你的时间的语言。因此,选择Python。

其他对黑客而言比较重要的语言包括 Perl和 LISP。 Perl实用,值得一学;它被广泛用于动态网页和系统管理,因此即便你从不用Perl写程序,至少也应该学会看。许多人使用Perl的理由和我建议你使用Python的理由一样,都是为了避免用C完成那些不需要C高效率的工作。你会需要理解那些工作的代码的。

LISP值得学习的理由不同——最终掌握了它时你会得到丰富的启迪和经验。这些经验会使你在以后的日子里成为一个更好的程序员,即使你实际上很少使用LISP本身。

当然,实际上你最好五种都会(Python,Java,C/C++,Perl和LISP)。除了是最重要的黑客语言外,它们还代表了截然不同的编程思路和方法,每种都会让你受益非浅。

这里我无法给你完完全全的指导教会你如何编程——这是个复杂的技能。但我可以告诉你,书本和上课也不能作到(最好的黑客中,有许多,也许 几乎都是自学成材的)。你可以从书本上学到语言的特点——只是一些皮毛,但要使书面知识成为自身技能只能通过实践和虚心向他人学习。因此要作到 (一)读代码及(二)写代码。

学习如何编程就象学习用优美的自然语言写作一样。最好的做法是读一些大师的名著,试着自己写点东西,再读些,再写点,再读些,再写点…… 如此往复,直到你的文章达到你体会到的范文的简洁和力量。

过去找到适合阅读的好的代码是困难的,因为几乎没有大型程序的源代码能让新手练手。这种状况已经戏剧性地发生变化;开放源代码软件,编程工具和操作系统(全都由黑客写成)现在已经随处可见。让我们在下一个话题中继续讨论……


--------------------------------------------------------------------------------

2. 得到一个开放源代码的Unix并学会使用、运行它。
我假设你已经拥有或者能使用一台个人电脑(今天的孩子们真幸福 :-) )。新手们能够朝学习黑客技能迈出的最基本的一步就是得到一份Linux或BSD-Unix的一种,安装在个人电脑上,并运行它。

没错,这世界上除了Unix还有其他操作系统。但它们都是以二进制形式发布的——你无法读到它的源代码,也不可能修改它。尝试在运行DOS或Windows或MacOS的机器上学习黑客技术,就象是带着脚镣学跳舞。

[1] [2] [3]  


除此之外,Unix还是Internet的操作系统。你可以学会上网却不知道Unix,但你不了解Unix就无法成为一名Internet黑客。因此,今天的黑客文化在很大程度上是以Unix为中心的。(这点并不总是真的,一些很早的黑客对此一直很不高兴,但Unix和Internet之间的联系已是如此之强,甚至连Microsoft也无可奈何。)

所以, 安装一套UNIX——我个人喜爱LINUX但还有其他种类的(是的,你可以同时安装Linux及DOS/Windows在同一电脑上)。学习它,使用它,配置它。用它在Internet上冲浪。阅读它的源代码。修改它的源代码。你会得到比在Microsoft操作系统上更好的编程工具(包括C,LISP,Python及Perl)。你会觉得乐趣无穷,学到在你成为大师之前意识不到的更多的知识。

想知道更多关于学习Unix的信息,访问 The Loginataka。

想知道如何得到一份Linux,访问 我在哪里可以获得Linux。(译者:对于中文读者来讲,最简单的方式未过于前往附近的D版/正版光盘店。)

你可以在 www.bsd.org找到BSD Unix的求助及其他资源。

我有写一篇关于 Unix和Internet基础的入门文章。

(注:如果你是一个新手,我不推荐自己独立安装Linux或者BSD。安装Linux的话,寻求本地Linux用户组的帮助;或联系 Open Projects Network。 LISC维护着一些 IRC频道,在那里你可以获得帮助。)


--------------------------------------------------------------------------------

3. 学会如何使用WWW和写HTML
黑客文化建造的大多东西都在你看不见的地方发挥着作用,帮助工厂、办公室和大学正常运转,表面上很难看到它对非黑客的普通人的生活的影响。Web是一个大大的例外。即便政客也同意,这个巨大耀眼的黑客玩具正在改变整个世界。单是这个原因(还有许多其它的),你就需要学习掌握Web。

这并不是仅仅意味着如何使用浏览器(谁都会),而是要学会如何写HTML, Web的标记语言。如果你不会编程,写HTML会教你一些有助于学习的思考习惯。因此,先完成一个主页。(网上有很多好的教程; 这是一个。)

但仅仅拥有一个主页不能使你成为一名黑客。 Web里充满了各种网页。大多数是毫无意义的,零信息量垃圾——界面时髦的垃圾,注意,垃圾的水准都类似(更多信息访问 The HTML Hell Page)。

要想有价值,你的网页必须有内容—— 它必须有趣或对其它黑客有帮助。这是下一个话题所涉及的……


--------------------------------------------------------------------------------

4. 如果你不懂实用性的英语,学习吧。
作为一个美国人和一个以英语为母语的人,我以前很不情愿提到这点,免得成为一种文化上的帝国主义。但相当多以其他语言为母语的人一直劝我指出这一点,那就是英语是黑客文化和Internet的工作语言,你需要懂得以便在黑客社区顺利工作。

这一点千真万确。大概1991年的时候我就了解到许多黑客在技术讨论中使用英语,甚至当他们的母语都相同,英语对他们而言只是第二语言的时候;据我知道的报导,当前英语有着比其他语言丰富得多的技术词汇,因此是一个对于工作来说相当好的工具。基于类似的原因,英文技术书籍的翻译通常不令人满意(如果有翻译的话)。

Linus Torvalds,一个芬兰人,用英语注释他的代码(很明显这对他来说不是凑巧)。他流利的英语成为他能够管理全球范围的Linux开发人员社区的重要因素。这是一个值得学习的例子。


--------------------------------------------------------------------------------

黑客文化中的地位
象大部分不涉及金钱的文化一样,黑客王国靠声誉运转。你设法解决有趣的问题,但它们到底多有趣,你的解法有多好,是要由那些和你具有同样技术水平的人或比你更厉害的人去评判的。

相应地,当你在玩黑客游戏时,你得认识到你的分数主要靠其他黑客对你的技术的评价给出(这就是为什么只有在其它黑客称你为黑客时,你才算得上是一名黑客)。这个事实常会被黑客是一项孤独的工作这一印象所减弱;也会被另一个黑客文化的禁忌所减弱(现在逐渐减弱但仍强大):拒绝承认自我或外部评估与一个人的动力有关系。

特别地,黑客王国被人类学家们称为一种奉献文化。 在这里你不是凭借你对别人的统治来建立地位和名望,也不是靠美貌,或拥有其他人想要的东西,而是靠你的奉献。尤其是奉献你的时间,你的创造和你的技术成果。

要获得其他黑客的尊敬,基本上有五种事情你可以干:


--------------------------------------------------------------------------------

1. 写开放源代码软件
第一个(也是最集中的和传统的)是写些被其他黑客认为有趣或有用的程序,并把程序源代码提供给整个黑客文化使用。

(过去我们称之为“free software (自由软件)”,但这却使很多不知 free 的精确含义的人感到困惑。现在我们很多人,根据搜索引擎网页内容分析至少有2:1的比率,使用“ open-source”software(开放源代码软件)这个词)。

黑客王国里最受尊敬的偶像是那些写了大型的、好用的、具有广泛用途的软件,并把它们公布出去,使得每人都在使用他软件的人。

 [1] [2] [3]  



--------------------------------------------------------------------------------

2. 帮助测试并调试开放源代码软件
黑客也尊敬那些使用、测试开放源代码软件的人。在这个并非完美的世界上,我们不可避免地要花大多数的开发时间在调试阶段。 这就是为什么任何有头脑的开放源代码的作者都会告诉你好的beta测试员(知道如何清楚描述出错症状,很好地定位错误,能忍受快速发布中的bug,并且愿意使用一些简单的诊断工具)象红宝石一样珍贵。 甚至他们中的一个能判断出哪个测试阶段是延长的,哪个是令人精疲力尽的噩梦,哪个只是一个有益的小麻烦。

如果你是个新手,试着找一个你感兴趣的正在开发的程序,做一个好的beta测试员。你会自然地从帮着测试,进步到帮着抓臭虫,到最后帮着改程序。你会从中学到很多,并且与未来会帮你的人结下友谊。


--------------------------------------------------------------------------------

3. 公布有用的信息
另一个好事是收集整理有用有趣的信息做成网页或文档如FAQ列表,且让他们容易获得。

主要技术FAQ的维护者受到几乎同其他开放源代码的作者一样多的尊敬。


--------------------------------------------------------------------------------

4. 帮助维护基础设施的运转
黑客文化(还有Internet的工程方面的发展,就此而言)是靠自愿者运转的。要使Internet能正常工作,就要有大量枯燥的工作不得不去完成——管理mail list,新闻组,维护大型软件库,开发RFC和其它技术标准等等。

做这类事情的人会得到很多尊敬,因为每人都知道这些事情是十分花时间又不象编程那样好玩。做这些事情需要奉献精神。


--------------------------------------------------------------------------------

5. 为黑客文化本身服务
最后,你可以为这个文化本身做宣传(例如,象我这样,写一个“如何成为黑客”的正面的教程 :-) )(译者:不知道Barret把它翻成中文算不算?)。这并非一定要在你已经在这个圈子呆了很久,因以上四点中的某点而出名,有一定声誉后才能去做。

黑客文化没有领袖。精确地说,它确实有些文化英雄、部落长者、历史学家和发言人。若你在这圈内呆的够长,你或许成为其中之一。记住:黑客们不相信他们的部落长者的自夸的炫耀,因此大举追求这种名誉是危险的。与其奋力追求,不如先摆正自己的位置等它自己到你的手中——那时则要做到谦虚和优雅。

(出处:http://www.sheup.com)


 [1] [2] [3] 


2. 帮助测试并调试开放源代码软件
黑客也尊敬那些使用、测试开放源代码软件的人。在这个并非完美的世界上,我们不可避免地要花大多数的开发时间在调试阶段。 这就是为什么任何有头脑的开放源代码的作者都会告诉你好的beta测试员(知道如何清楚描述出错症状,很好地定位错误,能忍受快速发布中的bug,并且愿意使用一些简单的诊断工具)象红宝石一样珍贵。 甚至他们中的一个能判断出哪个测试阶段是延长的,哪个是令人精疲力尽的噩梦,哪个只是一个有益的小麻烦。

如果你是个新手,试着找一个你感兴趣的正在开发的程序,做一个好的beta测试员。你会自然地从帮着测试,进步到帮着抓臭虫,到最后帮着改程序。你会从中学到很多,并且与未来会帮你的人结下友谊。


--------------------------------------------------------------------------------

3. 公布有用的信息
另一个好事是收集整理有用有趣的信息做成网页或文档如FAQ列表,且让他们容易获得。

主要技术FAQ的维护者受到几乎同其他开放源代码的作者一样多的尊敬。


--------------------------------------------------------------------------------

4. 帮助维护基础设施的运转
黑客文化(还有Internet的工程方面的发展,就此而言)是靠自愿者运转的。要使Internet能正常工作,就要有大量枯燥的工作不得不去完成——管理mail list,新闻组,维护大型软件库,开发RFC和其它技术标准等等。

做这类事情的人会得到很多尊敬,因为每人都知道这些事情是十分花时间又不象编程那样好玩。做这些事情需要奉献精神。


--------------------------------------------------------------------------------

5. 为黑客文化本身服务
最后,你可以为这个文化本身做宣传(例如,象我这样,写一个“如何成为黑客”的正面的教程 :-) )(译者:不知道Barret把它翻成中文算不算?)。这并非一定要在你已经在这个圈子呆了很久,因以上四点中的某点而出名,有一定声誉后才能去做。

黑客文化没有领袖。精确地说,它确实有些文化英雄、部落长者、历史学家和发言人。若你在这圈内呆的够长,你或许成为其中之一。记住:黑客们不相信他们的部落长者的自夸的炫耀,因此大举追求这种名誉是危险的。与其奋力追求,不如先摆正自己的位置等它自己到你的手中——那时则要做到谦虚和优雅。

(出处:http://www.sheup.com)


 [1] [2] [3] [4] 

标签: