新人如何成为一名黑客 成为黑客需要学什么
黑客的真正含义是什么?
在几十年前,计算机技术刚刚起步,ARPAnet实验才刚开始的时候,一个由程序员和网络爱好者组成的文化社区便悄然诞生了。正是这些早期的技术先驱们创造了“hacker”这个术语。黑客们不仅建立了今天的互联网,还发明了UNIX操作系统,使Usenet运作起来,推动了WWW的发展。若你是这个社区的一员,并且你的贡献得到其他成员的认可和称赞,那么你就是一名真正的黑客。
黑客文化不仅限于软件领域。许多人将这种“黑客精神”应用于其他领域,如电子学和音乐——实际上,你可以在任何顶级的科学和艺术活动中找到它。专注于软件的黑客们也欣赏其他领域的同类,并把他们称为黑客。有观点认为,黑客的本质与其具体工作领域并无绝对关系。本篇文章将重点关注软件黑客的技术与态度,并探讨这一以共享为特征的文化传统。
基本的区别在于:
黑客创造,骇客破坏
如果你希望成为一名黑客,请继续阅读。如果你只想成为一名骇客,那么去浏览alt.2600新闻组,并在经历几次牢狱之灾后反思自己不如想象中那样聪明。对于骇客的讨论到此为止。
黑客的核心态度是什么?
黑客们致力于解决问题和建设事物,同时推崇自由和无私的相互帮助。若想被他人认同为黑客,你的行为必须展现出你具备这种态度。要做到这一点,你需要真正地践行这一理念。
如果你认为培养黑客态度只是为了在黑客文化圈中获得认可,那你就大错特错了。具备这些特质对你自身极为重要,它有助于你学习并持续激发动力。和所有创造性艺术一样,成为大师的最佳途径就是模仿大师的精神——不仅在智力上,还要在情感上进行模仿。
现代的一首禅诗很形象地阐释了这一点:
To follow the path:(沿着这条道路:)
look to the master,(寻求大师,)
follow the master,(跟随大师,)
walk with the master,(与大师同行,)
see through the master,(洞察大师,)
become the master.(成为大师。)
如果你想成为一名黑客,就要不断地重复以下几点,直到你内心深处相信它们为止。
要成为一名黑客,你需要具备哪些技能?
1. 掌握编程技巧
编程是成为黑客的基本技能。如果你尚未学习任何编程语言,建议从Python入手。Python的设计简洁明了,文档完备,非常适合初学者。它不仅是一门出色的入门语言,而且功能强大,适用于大型项目。你可以在Python官网找到一些优质教程(例如中文Python站点pythonrecord.)。
Java也是一个不错的入门选择。虽然它比Python更复杂,但编写的代码执行速度更快。它不仅是一种入门语言,更是一种优秀的编程语言。
仅仅掌握一两种编程语言是远远不够的。你需要学会从抽象的角度思考编程问题,而不仅仅是依赖某一种语言。要成为真正的黑客,你需要能够迅速学习新语言,并掌握多种不同的编程语言。
如果你打算从事重要的编程工作,那么C语言是必学的,因为它是Unix的核心语言。C++与C语言非常相似;如果你已经掌握了其中一种,学习另一种并不难。但需要注意的是,这两种语言都不适合编程初学者。尽量避免使用C语言编程,因为它的效率较低。
2. 安装并掌握开放源代码的Unix系统
尽管世界上存在许多操作系统,但它们大多以二进制形式发布——你无法读取其源代码或进行修改。尝试在运行DOS、Windows或MacOS的机器上学习黑客技术,就像是试图在障碍中舞蹈。
Unix是Internet的操作系统,你可以在不掌握Unix的情况下学会上网,但你无法真正成为一名Internet黑客。现代黑客文化在很大程度上围绕Unix展开。虽然有些早期的黑客对这一点表示不满,但Unix与Internet的紧密联系已经无可否认,甚至连Microsoft也无能为力。
安装一个Unix系统——个人推荐Linux,但你也可以选择其他版本(是的,你可以在同一台计算机上同时安装Linux和DOS/Windows)。学习如何使用、配置和优化它。通过Unix上网,阅读和修改其源代码,你会发现自己获得了比在Microsoft操作系统上更多的编程工具(包括C、LISP、Python和Perl)。这将为你提供意想不到的乐趣,并帮助你在成为大师之前掌握更多的知识。
(注:对于新手来说,不建议独立安装Linux或BSD。安装Linux时,可以寻求本地Linux用户组的帮助;或者联系Open Projects Network。LISC维护着一些IRC频道,在那里你可以获得支持。)
3. 学习如何使用WWW和编写HTML
虽然黑客文化中的许多成果在幕后默默运作,支撑着工厂、办公室和大学的日常运作,但Web却是一个例外。即使政客们也承认,这个炫目的黑客玩具正在改变整个世界。你需要掌握Web技术。
掌握Web不仅仅意味着使用浏览器,更重要的是学习如何编写HTML,Web的标记语言。即使你不懂编程,编写HTML也能教会你一些有助于学习的思维习惯。首先制作一个个人主页是一个不错的开始。(网上有许多优秀的教程,这里推荐一个。)
但拥有一个主页并不意味着你就是一名黑客。Web中充斥着各种网页,大多数毫无意义,只是一些华而不实的垃圾。要想让你的网页有价值,它必须有内容——它需要有趣或者对其他黑客有帮助。接下来我们将讨论这一点……
4. 掌握实用的英语
这一点至关重要。早在1991年,我就发现许多黑客在技术讨论中使用英语,即使他们的母语与英语不同。英语拥有比其他语言更丰富的技术词汇,因此在工作中非常有用。类似的原因也解释了英文技术书籍翻译通常不尽如人意(如果有翻译的话)。
芬兰的Linus Torvalds用英语注释他的代码(显然这不是偶然)。他流利的英语能力使他能够管理全球范围的Linux开发社区,这为他提供了巨大的优势。这是一个值得学习的榜样。
那么,作为新手,应该如何入门呢?
1. 了解计算机的工作原理
要学习计算机的基础,你有很多选择。你可以从使用电脑入手,也可以从学习编程语言开始(注意:初学者可能不清楚哪些语言适合自己,容易陷入困惑),或者浏览一些相关论坛,或购买相关书籍。选择多样,关键在于你选择哪一种。
建议从学习一门编程
语言开始,务必深入学习,选择一门编程语言并坚持下去,从头到尾完成学习。我在这里不推荐具体的语言,你可以自行选择一门你感兴趣的语言(虽然过程中可能会遇到一些困惑,这是很正常的)。
除了编程语言,还需要掌握一些硬件基础知识。例如,了解冯诺依曼结构是什么。作为初学者,集中精力学习前人的基本知识,之后再逐步拓展是比较稳妥的。
计算机由软件和硬件组成。可以将硬件比作轨道,软件则是跑在轨道上的跑车。数据和信息通过这种方式展现出来。虽然这种比喻简化了实际情况,但在入门阶段,用粗略的理解来构建基础是很有帮助的。
从更宏观的角度来看,建议你从软件入手,因为硬件已经被设计好,而你作为黑客的目标是控制计算机的操作,而不是设计计算机。掌握软件能够让你更好地理解和操作计算机,提升你的黑客技能。
掌握编程语言和计算机的基本原理只是第一步,成为一名黑客还需要进一步深入和探索。以下是一些额外的建议,帮助你更好地提升技能和理解黑客文化。
5. 理解并应用计算机网络
计算机网络是黑客技能的核心之一。理解网络的工作原理、协议以及如何在网络中进行数据传输是至关重要的。掌握网络协议(如TCP/IP)和网络安全(如防火墙和加密技术)将大大提升你的黑客技能。
你可以通过设置自己的家庭网络,搭建各种网络服务,学习网络协议的运作原理。参与一些网络安全相关的论坛和社区,也可以帮助你获取更多的知识和技能。
6. 深入理解操作系统
操作系统是管理计算机硬件和软件资源的基础。深入了解操作系统的内部机制、系统调用和进程管理,将帮助你更好地理解计算机的工作原理。UNIX和Linux是黑客文化中最为重要的操作系统,你需要熟悉它们的工作方式及其命令行操作。
学习操作系统的内部机制不仅可以提升你的编程能力,还能帮助你在解决复杂问题时更具创造性和效率。阅读操作系统的相关书籍和文档,参与开源项目,将是很好的学习途径。
7. 参与开源项目
开源项目不仅可以帮助你提升编程技能,还能让你融入黑客社区。通过参与开源项目,你可以学习到最佳的编程实践,了解代码的设计和架构,并与其他开发者交流经验。
你可以在GitHub等平台上寻找感兴趣的开源项目,贡献代码,修复bug,提出改进建议。参与这些项目不仅能帮助你提高技术水平,还能让你建立起行业联系。
8. 培养解决问题的能力
黑客不仅仅是技术高手,更是解决问题的专家。培养解决问题的能力,学会从不同的角度分析和解决问题,将大大提升你的黑客技能。面对复杂的技术挑战时,保持耐心和好奇心,勇于探索和试验。
培养逻辑思维能力和创新思维能力,也是成为一名出色黑客的重要素质。多做一些挑战性的编程题目,参与技术竞赛和黑客比赛,将帮助你进一步提升这些能力。
成为一名黑客需要时间和努力,掌握编程语言、理解计算机网络和操作系统、参与开源项目、培养解决问题的能力,都是不可或缺的步骤。最重要的是,你需要真正融入黑客文化,秉持自由、共享和创新的精神。持续学习和实践,将帮助你在黑客道路上不断前进。
从学习基础知识到深入探索黑客文化,每一步都是你成为真正黑客的关键。保持好奇心,持续挑战自己,你将逐步成为一名真正的黑客。