【超全超详细】2W字零基础黑客学习路线,知识体系(附学习路线图)

前言:

这是外 曾经一篇很火的关于如何成为一个黑客的文章,虽然里面提到的一些技术可能有些过时,但就学习方法和思想上,仍然值得我分享给大家。

关注大师的言行, 跟随大师的举动, 和大师一并修行, 领会大师的意境, 成为真正的大师。

1. 这个世界充满了令人着迷的问题等着我们解决。

做一名黑客会有很多乐趣,但是这些乐趣需要付出很多努力才能获得。这些努力需要动力。成功的运动员在表演和超越自我极限的时候获得身体上的愉悦,并把这种愉悦作为自己的动力。同样,为了成为一名黑客,你要从解决问题、磨练技术,以及锻炼智力中得到基本的享受。

如果你不是天性如此,而你又想成为一名黑客,你就要设法成为这样的人。否则你会发现,你的黑客热情会被其他分心的事物吞噬掉——如金钱、性、以及 交圈的认同。

(你必须建立对于自己学习能力的信念——就算你掌握的知识不足以解决当前的问题,如果你从问题的一小部分下手并从中学习,你将学到足够的知识用来解决下一部分——以此类推,直到整个问题都被你解决为止。)

2. 一个问题不应该被解决两次。

有创新能力的大脑是一种宝贵的有限资源。当世界还充满非常多有待解决的有趣的新问题时,它们不应该被浪费在重新发明轮子的事情上。

作为一名黑客,你必须培养起这些态度。但只具备这些态度并不能使你成为一名黑客,也不能使你成为一个运动健将和摇滚明星。成为一名黑客需要智力、实践、奉献精神、以及辛苦的工作。

因此,你必须学着忽略态度问题,并尊重各种各样的能力。黑客们不会为那些装模做样的人浪费时间,但他们却非常尊重能力——尤其是从事黑客工作的能力(虽然有能力总归是好事)。如果能具备少有人能掌握的技能就更好了,当然如果你具备一些急需的技能,而这些技能又需要敏锐的思维、高超的技巧、和专注的精神,那就是再好不过了。

如果你尊重能力,你就会享受到提高自己能力的乐趣——辛苦的工作和奉献将不会是一件苦差事,而是一种紧张的娱乐,这是成为黑客至关重要重要的一点。

学习如何编程。 学习使用开源 Unix 系统。 学会使用万维 以及编写 HTML。 学习英语,如果你的水平不够用的话。

黑客态度重要,但技术更加重要。态度无法替代技术,在你被别的黑客称为黑客之前,你必须掌握一些基本的技术作为你随身携带的工具。

随着新技术的出现和老技术的过时,这个工具包的内容也在不断改变。比如以前机器语言编程也被列在里边,而 HTML 是直到最近才包括进去的。不过现在可以清楚地告诉你包含以下内容:

3. 学会使用万维 以及编写 HTML。

黑客文化建造的大多东西都在你看不见的地方发挥着作用。浙西东西可以帮助工厂、办公室、以及大学正常运转起来,但从表面上很难看到它们对非黑客的普通人的生活的影响。而 Web 是一个大大的例外。就连政客也同意,这个庞大耀眼的黑客玩具正在改变整个世界。就算只是因为这个(还有许多其它的原因),Web 也值得你一学。

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

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

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

提高自己在黑客圈中的地位

撰写开源软件 帮助测试并调试开源软件 发布有用的信息 帮助维护基础设施的运转 为黑客文化本身服务

3. 发布有用的信息

另一件好事是收集整理有用有趣的信息,做成 页或类似 FAQ 的文档,并且让大家都能看到。

4. 帮助维护基础设施的运转

黑客文化(还有互联 工程方面的发展)是靠志愿者推动的。要使Internet能正常工作,就要有大量枯燥的工作不得不去完成——管理邮件列表和新闻组,维护大型软件库,开发 RFC 和其它技术标准等等。

做这类事情的人会得到很多尊敬,因为每人都知道这些事情费时颇多,而又不象编程那样有趣。做这些事情需要奉献精神。

5. 为黑客文化本身服务

最后,你可以为这个文化本身做宣传(例如像我这样,写一个“如何成为黑客”的教程 ?? )这并不要求在你已经在这个圈子呆了很久,因以上四点中的某点而出名,有一定声誉后才能去做。

黑客文化没有领袖,这点是确认无疑的。但黑客圈里确实有些文化英雄、部落长者、史学家、还有发言人。如果你在这圈里呆足够长时间,你也许也能成为其中之一。记住:黑客们不相信他们的部落长者的自夸,因此过分追求这种名誉是危险的。与其奋力追求,不如先摆正自己的位置,等它自己落到你的手中——那时则要做到谦虚和优雅。

黑客和书呆子(Nerd)的联系

和大家普遍认为的相反,并不是只有书呆子才能成为一名黑客。但它确实有帮助,而且许多黑客事实上是书呆子。做一个深居简出的人有助于你集中精力进行十分重要的事情,如思考和编程。

因此,很多黑客都接受了“geek(极客)”这个标签,并把它作为骄傲的奖章——这是宣布他们独立于主流 会期望的一种方式(这个标签也是他们喜欢科幻小说和策略型游戏的标记,而这些也是很多黑客喜欢的东西)。1990 年代更多用的称呼是“nerd(书呆子)”,那时“nerd”只带点轻微的贬义,而“geek”则是地地道道的蔑称,而在 2000 年以后,这两者逐渐调转过来了,至少再美国的大众文化中是这样。而到了现在,甚至在非技术人群里,也有不少以 geek 精神为傲的文化团体。

如果你能集中足够的精力做好黑客工作同时还能有正常的生活,这是件好事。现在要做到这一点比我在 1970 年代还是新手的时候要容易的多;如今主流文化对技术怪人要友善得多。甚至有越来越多的人意识到黑客通常是很好的恋人和配偶的材料。

如果你因为生活上不如意而迷上做黑客,那也没什么——至少你不会分神了。也许你以后还能找到自己的生活

向黑客的格调靠拢

重申一下,要做一名黑客,你必须深入体验黑客精神。计算你不在计算机边上,你仍然有很多对黑客工作有帮助的事情可做。它们并不能替代真正的编程(没有什么能替代编程),但很多黑客都那么做,并感到它们与黑客的本质存在某些基本的连系。

学会用母语流畅地写作。尽管很多人认为程序员写不出好文章,但是有相当数量的黑客(包括所有我知道的最棒的黑客)都是很有能力的写手。阅读科幻小说。参加科幻小说讨论会。(这是一个认识黑客和准黑客的好方法) 学习一种武术。武术中需要的精神自律能力和黑客在这方面的需求非常相似。黑中最受欢迎的武术是来自亚洲的空手格斗类武术,例如跆拳道、空手道、武术、合气道、柔术等。西式击剑和亚洲剑术也有不少的跟随者。1990 年后期以来,在可以合法使用枪支的地方,射击受欢迎的程度也越来越高了。大部分黑客喜欢的武术类型都是那些强调精神的自律,放松的意识,以及意念的控制,而不仅仅是单纯的力量、运动精神、以及身体的强健。实实在在学习一种冥想修炼。多年以来黑客中最受欢迎的形式是参禅。(很重要的一点是,参禅和宗教可以说是独立的,你不需要接受一种新宗教,或者放弃现有的宗教信仰,就能做参禅的修炼。其他的形式也许也管用,但注意一定要挑那些靠谱的,不需要你相信不着边际的事物的冥想方式来演练。提高自己对双关语和文字游戏的鉴赏能力。如果这些事情有很多你已经在做了,那你可能是天生做黑客的材料。至于为什么偏偏是这些事情,原因并不完全清楚,但它们都涉及用到左-右脑能力的综合,这似乎是关键所在(黑客们既需要清晰的逻辑思维,有时又需要偏离逻辑跳出问题的表象)。

FAQ

怎样才能知道自己已经是一名够格的黑客/strong>

你可以问自己下面三个问题:

你能流利地读写代码吗你认同黑客 群的目的和价值吗黑客 群里有没有资深成员称呼你为黑客呢/p>

如果你对这三个问题的答案都是“是”的话,你已经是一名黑客了。如果你只满足其中两项,那就说明你还不够格。

第二个问题是关于态度的。如果黑客精神的五项基本原则对你来说能有共鸣,而且已经是你处事的方式,你就算过关一半了。这算靠里的一半,靠外的一半和你在黑客 区长期项目上的投入和关联程度有关。

这里列出了一些项目的不完全列表供你参考:Linux 的改进和用户群扩大对你来说是否重要对于自由软件精神是否充满激情对于垄断是否有敌意是否相信计算机这种工具会让增加世界财富,让这个世界更富有人道主义/p>

不过值得注意的一点是,黑客 群有一些特有的政治倾向,其中两条,一条是保卫言论自由权,一种是抵御所谓“知识产权”对于开源 区的侵害。实践这两条的是一些民间组织,例如电子前沿基金会(Electronic Frontier Foundation)就是其中之一。不过虽然如此,黑客们对于有任何明确政治目的的团体都是心怀戒备的,因为我们已经从各种经验教训中学到一点:这些活动只会分裂黑客 团,并让黑客们分心。如果有人以黑客精神为名组织一场首都大游行,那他就完全没有弄明白这点。真正的应对方式也许应该是“闭上嘴巴,给他们看代码”。

第三个问题有点循环递归的味道。在“什么是黑客”一节我已经讲过,作为一名黑客的意义在于参与某个黑客 群,也就是 交 络的一个亚文化团体,作为内部的贡献成员以及外部的宣传者积极活动。和很久以前相比,黑客群体现在的团结意识和自我意识已经增强了很多。过去三十年来,随着互联 的发展, 交 络逐渐开始发挥举足轻重的作用,而黑客的亚文化团体也更加容易发展和维护了。这种变革的明显一个有代表性的现象是:有的黑客 群现在都有自己专门的文化衫了。

研究 交 络的 会学家把黑客文化归为“看不见的大学”,而且注意到这些 络 交圈还有所谓的“看门人”——其中的一些核心成员,他们有一定的权威,可以准新成员的进入。所谓的“看不见的大学”本来就是一个松散的非正式组织,所以这些“看门人”也只是这门称呼而已。但不是每个黑客都是“看门人”,这是每个黑客都深刻明白的一点。“看门人”需要有一定的资历和成就,究竟要到什么程度很难讲,但一旦有这样的人出现,每一个黑客都能辨识出来。

你能教我做黑客吗/strong>

自从第一次发布这份文档,我每周都会收到一些请求,(频繁的话一天几封)要我“教会他们做黑客”。遗憾的是,我 没有时间和精力来做这个;我自己的黑客项目,及我作为一个开放源代码倡导者 的四处奔波已经占用了我110%的时间。

即便我想教你,黑客也依然基本上是一项自行修炼的的态度和技术。当真正的黑客想帮助你的时候,如果你乞求他们一汤匙一汤匙“喂”你的话,你会发现他们不会尊重你。

先去学一些东西。显示你在尝试,你能靠自己去学习。然后再去向你遇到的黑客请教特殊的问题。

如果你发E-mail给一位黑客寻求他的帮助,这是两件首要记住的事情。第一,写出来的文字显得懒且粗心的人通常非常懒于思考且非常马大哈,不能成为好黑客——因此注意拼写正确,使用正确的语法及发音,否则你可能会无人理睬。第二,不要试图要求回复到一个ISP帐 ,而那个帐 与你 的发信地址不同。这样做的人一般是使用盗用帐 ,我们对于回 或者帮助窃贼不感兴趣。

那么,我要如何开始/strong>

对你而言最佳的入门方式也许是去参加 LUG(Linux用户组)的聚会。你可以找到在 LDP 的综合 Linux 信息页面上找到类似的组织;也许有一个在你家附近的,而且非常有可能与一所大学或学校挂钩。如果你提出要求,LUG 成员兴许会给你一套 Linux,当然此后会帮你安装并带你入门。

我得什么时候开始学在会不会太迟了有动力学习的时候就是好时候。大多数人看来都是在15-20岁之间开始感兴趣的,但据我所知,在此年龄段之外的例外也是有的。

要学多久才能学会黑客技能/strong>

这取决于你的聪明程度和努力程度。对于大多数人,只要足够专注,就能在 18 个月到 2 年之间学会一套令人尊敬的技能。但是,不要以为这样就够了;如果你是一个真正的黑客,你要用你的余生来学习和完善你的技术。

Visual Basic 是好的入门语言吗/strong>

既然你问了这个问题,那你肯定是想在 Microsoft Windows 操作系统下学习黑客技能。这本身就不是一个好主意。我前面讲过在 Windows 下 hack 就跟穿着骑士铠甲跳舞一样,我不是在开玩笑。别走这条路,Windows 是一个很低劣的 hack 环境,而且一直如此。

Visual Basic 有一个特征性问题,就是它不可以被移植到其他平台。虽然也有些 Visual Basic 开源实现的雏形,但实现的只是 ECMA 标准的一个很小的子集。在 Windows 下大部分类库的知识产权都是 Microsoft 独家所有,如果你不是及其小心的话,你的代码将只能在 Microsoft 支持的平台上使用。如果你不打算从 Unix 起步,那你也有更好的语言可选,而且类库质量还更高,例如 Python 就是其中之一

和其他的 Basic 类语言一样,Visual Basic 这门编程语言的设计也很糟糕,它会教你一些坏的变成习惯。你就别问我细节了,这可是罄竹难书。还是去学一门设计优良的语言吧。

其中一个坏习惯是让你依赖于单一厂商的函数库、控件及开发工具。一般而言,任何不能够支持至少 Linux 或者某一种 BSD,或其不能支持至少三种以上操作系统的语言,都是一种不适合应付黑客工作的语言。

你能帮我“黑”掉一个站点吗者教我怎么黑它/strong>

No。任何读完这份 FAQ 后还问这个问题的人,都是无可救药的蠢材,即使有时间指教我也不会理睬。任何发给我的此类电子邮件都会被忽略或被痛骂一顿。

我怎么样才能得到别人帐 的密码/strong>

这是骇客行为。滚得远远的,傻*。

我如何入侵/查看/监视别人的 Email/strong>

这是骇客行为。在我面前消失,智障。

我如何才能在IRC聊天室里偷到频道 op 的特权/strong>

这是骇客行为。滚开,傻*。

我被黑了。你能帮我避免以后再被攻击吗/strong>

不行。目前为止,每次问我这个问题的,都是一些运行 Microsoft Windows 的菜鸟。不可能有效的保护 Windows 系统免受骇客攻击;太多代码和架构的缺陷使保护 Windows 的努力有如隔靴搔痒。唯一可靠的预防来自转移到 Linux 或其他设计得至少足够安全的系统。

我的 Windows 软件出现问题了。你能帮我吗/strong>

当然。打开 DOS 命令行输入“format c:”。你遇到的任何问题将会在几分钟之内消失。

我在哪里能找到可以与之交流的真正的黑客/strong>

最佳办法是在你附近找一个Unix或Linux的用户组,参加他们的聚会。(你可以在 ibiblio 的 LDP 站点找到一些用户组的链接。)

(我过去曾说过不能在IRC上找到真正的黑客,但我发觉现在情况有所改变。显然一些真正的黑客的 区像 GIMP 及 Perl,也有IRC频道了。)

你能推荐一些有关黑客的好书吗/strong>

我维护着一份 Linux Reading List HOWTO,也许你会觉得有用。The Loginataka 也大致值得一读。

关于Python的介绍,请访问我整理的Python入门教程。

成为一名黑客我需要擅长数学吗/strong>

不用。黑客道很少使用常规的数学或算术,不过你绝对需要能逻辑性地思考和进行精密的推理。尤其是你不会用到微积分或电路分析(我们把这些留给电子工程师们 ??)。有限数学中的一些可提(包括布尔代数,集合论,组合数学,图论)的背景知识会对你有所帮助。

更重要的一点:你要有逻辑思维能力,能够以数学家的方式追溯因果。虽然大部分的数学知识对你可能没什么用处,但数学思维的能力对你来说是极其重要的。如果你缺乏这方面的智慧,要做一名黑客恐怕是无望了。如果你缺乏这方面的训练,还是尽早开始吧。

我该从那种语言学起/strong>

如果你还没学过XHTML(HTML最新的表现形式)的话,就从它开始吧。市面上有一大堆的封面精美,宣传得天花乱坠的HTML 书籍,不幸的是质量优秀的几近于无。我最喜欢的是 HTML: The Definitive Guide。

但HTML 不是一种完整的编程语言。当你准备开始编程时,我推荐从 Python 起步。你会听到一大群人推荐 Perl,但是 Perl 要难学得多,而且(以我之见)设计得不是很好。

C 确实重要,但它也比 Python 或 Perl 难多了。不要尝试先学 C。

Windows用户注意:不要满足于 Visual Basic。它会教给你坏习惯,而且它不可以跨平台移植,只能在Windows下运行。因此还是敬而远之为好。

我需要什么样的机器配置/strong>

过去个人电脑能力相当不足并且内存很小,这给黑客的学习过程设置了人为的障碍。不过 1990 中期以后就不是这样了;任何一台 Intel 486DX50 以上配置的机器都有足够的能力进行开发工作、运行 X 系统、以及进行 Internet 通讯。而且你买到的市面上最小的硬盘都大得足够你使用了。

选择用来学习的机器时重要的一点是注意配件是否是Linux兼容的(或BSD兼容,如果你选择 BSD 的话)。和刚才提到的一样,大多数现在的机器都是符合的;唯一值得注意的区域在于 modem 和打印机;有些具备为Windows设计的配件的机器不会在Linux下工作。

你可以查看这份 Linux Hardware Compatibility FAQ。

我想贡献 区。你可以帮我选一个问题让我下手吗/strong>

不行,因为我不知道你的兴趣和擅长领域在哪里。如果你没有内在动力,你就很难坚持下去,所以说,别人只给你的路是行不通的。

试试这么做吧。在 Freshmeat 站观察几天,看看里边的项目更新,如果你看到一个看上去很酷而且你也很感兴趣的项目,就加入吧。

我得因此憎恨和反对 Microsoft 吗/strong>

不,你不必如此。不是因为Microsoft不令人讨厌,而是因为黑客文化早在 Microsoft 出现之前就存在了,且将在 Microsoft 成为历史后依然存在。你耗费在憎恨 Microsoft 的任何力气不如花在爱你的技术上。写好的代码——那会相当有效地打击 Microsoft 又不会让你得到恶 应。

开放源代码软件不会使程序员丢饭碗吗/strong>

目前看起来不太可能,开放源代码软件产业似乎创造了更多的就业机会而不是减少就业机会。如果写一个程序比起不写来是纯经济收益的话,那么在写完后,程序员应该得到 酬不管程序是否是开放源代码。并且,无论写出多么“免费自由”的软件,都存在更多对新的,定制的软件的需求。我有这方面更多的论述,放在放源代码 站资料中。

我要如何开始里有免费的Unix/strong>

在本份文档的某个地方我已经提到过何处可以得到最常用的免费 Unix。要做一名黑客,你需要自己找到激励和动力,还要有自学的能力。现在就开始努力吧……

声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2022年11月21日
下一篇 2022年11月21日

相关推荐