从电脑小白到黑客大神需要多久?
这个过程因人而异,可能有人一辈子专注于此,却一事无成,也可能有人天资聪慧,一点即通,计算机是一个关于0和1的数字世界,是最简单中的最复杂.做黑客,是需要天赋的.
另外,计算机领域应用最多的不是英语,而是数学.需要有强大的逻辑能力,那些只会装装系统,卸卸硬件的人,自认为是电脑高手,其实,说得客气点,只是勉强学会爬而已.
我想做一名网络黑客 第一步是做什么 ?
今天有许多人问我:“我看了你的文章了,但是我是新人,有没有什么学习方法啊?”我回答的是;“当然有啊,不过人和人不同,方法是自己总结出来的,就和我前面文章中介绍的名词一样,都是我在学习中根据自己的经验和对他的认识总结出来的。”下面呢我就把我自己的学习经验写出来给大家参考下,大家可以根据我的方法去总结套适合自己的学习方法,这样对我们的进步很有必要,有了一个系统化的方法后,相信进步就不是一个困难的事情了。
初学HACK,首先有几点忠告:
1、就是不要以自己年龄下为借口,我以前一个学生就是学不会东西是就以自己年龄小为学不会的借口,我可以确切的说,年龄小并不是什么缺点,你会长大的,而正因为你年龄下,可以学到的东西才更多。
2、不要什么问题都问,这个也许有人不理解,为什么这么说呢?因为前不久有个文章名字叫《提问的智慧》相信大家都看过了吧(什么?你没有看?倒了,快去看去!)。里面写的东西很值得大家学习,特别是里面介绍的一个方法,就是把 baidu或google当老师,有问题就问他,相信你在问他的时候比去论坛问别人来的快。
3、不要三天热度,这个我见的很多,身边有许多朋友都是这样的,看到我有点小的成就和想学习HACK,然后学不会就说这个没有意思,这个是一个大错误。不是你学不会,是你懒的学,怕吃苦,哪里有学习3天就成HACKER的人,我是没有见过,许多有成绩的HACKER都是用自己的努力才换来的自己的成绩。还有,学习黑客时一定不能着急,一个问题不能解决时不要放弃,试着用其他方法看能达到自己的目的不,有时为了得到一个服务器权限要让服务器重起,需要等待好几天(除非你DDOS他可能快点)。
好了,下面介绍下学习方法:
1、首先要有本学习材料,大家可以通过《黑客X档案》 《黑客防线》《非安全》还有到我们黑基来学习,有许多人说,看不懂,里面东西太深奥了怎么办?我的回答是:“看不懂也要看,一便不懂看两便,甚至更多,没有人生下来就会走路。再不懂就问。”在我开始学习的时候,是看书,看了一便后一头雾水,什么都不懂,就坚持看下去,看了几个月后,觉得许多东西都自然明白是什么东西了。后来只要看到标题就大概能猜出文章里涉及的内容了。所以看书很必要,但有不能一切都相信书上写的,计算机这门科学是最注重实践的了,看到文章的内容吸引你,就去找个环境实践下吧,有条件要上,没有条件创造条件也要上。
2、就是定向自己要学习的内容,一直坚持的学下去,适当的时候学点其他的,就和大学里没有人有不同的专业一样,主要功自己的专业,然后学习其他的东西,比如你喜欢入侵网站,就多学点脚本。喜欢入侵个人,就学点远程溢出,配置木马什么的。喜欢编程,就选择个自己喜欢的语言学习下去,新人建议学习VB,C/C++也不错。
3、多去论坛看帖子,看自己懂的,不懂的,回答自己懂的问题,因为在你回答自己懂的问题的同时,自己加深了对这个问题的认识,因为别人能听懂你说的是什么时才说明你自己真正理解了这个问题。当碰到自己不懂的问题时,先试图自己找出问题的答案,(google啊)然后试着回答这个你自己不懂的问题。
4、多认识朋友,因为有的问题解决不了时问下朋友,他可能能帮你解决,因为2个人的思维比一个人的强大点,能考虑到的东西也多了。
5、不要盲目拜师,我不反对拜师,因为我也有师父,也需要拜师。但建议你在拜师前一定要知道你的师父擅长什么,比如你要学入侵个人主机,找了个脚本入侵强的师父当然不行。还有师父只是个指引我们学习的人,所有的东西还是要靠我们自己学习,把不懂的东西找师父一起解决,懂的东西自己多练习,然后不断学习新的知识,否则你讲会被淘汰。
以上就是我对学习的一点建议,今天头脑有点混乱,可能文章写的不太好,希望大家见谅,最后本人希望各位都能展翅高飞,脱离菜鸟!
黑客大师进来!
1. 学习如何编程。
这当然是最基本的黑客技能。如果你还不会任何编程语言,我建议你从Python开始。它设计清晰,文档齐全,合适初学者入门。它是一门很好的入门语言,并且不仅仅只是个玩具;它非常强大、灵活,也适合做大型项目。我有一篇 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的机器上学习黑客技术,就象是带着脚镣学跳舞。
除此之外,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开发人员社区的重要因素。这是一个值得学习的例子。
如何成为程序员,或者网络攻防高手
要想成为一门黑客,说简单也不简单,说不简单嘛,那也要看个人了
首先要正确理解你心里面认为的黑客是怎么定义?
是挂个马盗个号或远程控制别人机器and网下个程序攻击别人PC?
真正的黑客还是需要一定的天赋的
别说会用几个别人制作的小程序去操纵那些电脑盲的机器就是黑客了
黑客所要掌握的东西实在太多,
不光软件和硬件知识,还要有独特的思考思维,和丰富网络经验
所以,如果你想成就网络攻防这方面,建议从计算机系统和通信基础开始,
书馆书多而杂。会让你找不到方向。这还是需要一定时间和经验的,
有条件的话也可以去一些所谓的黑客培训基地培训下吧
现在网络发展速度很快,关键还是看自己有没有坚持下去的兴趣
想当个黑客 从那里开始
一个黑客必备的基本技能
1、黑客的精神态度是很重要的,但技术则更是重要。黑客的态度虽然是无可取代,随著新科技的发明和旧技术的取代,这些工具随时间在慢慢的改变。例如:以往总是会学会用机器码写程序,直到最近我们开始使用HTML。不过,在1996年末,当然,这是基础的hacking技能。在1997年,理所当然的,你必须学会C。 但,如果你只是学一种语言,那么你不能算是一位黑客,了不起只能算是一个programmer。除此,你还必须学会学会以独立于任何程序语言之上的概括性观念来思考一件程序设计上的问题。要成为一位真正的黑客,你必须要能在几天之内将manual内容和你目前己经知道的关连起学会一种新的语言。也就是说,你必会学还了C之外的东西,你至少还要会LISP或Perl(Java也正在努力的挤上这个名单; 译者注: 我很怀疑这份名单)。除了几个重要的hacking常用语言之外,这些语言提供你一些不同的程序设计途径,并且让你在好的方法中学习。
程序设计是一种复杂的技术,我没辨法在这提供完整的学习步骤。但是我能告诉你一些在书本上和课堂上所没有的东西(有很多,几乎全部最好的黑客们都是自习而来的)。(a) 读别人的程序码;(b)写程序,这两项是不错的方法。学习写程序就像在学习写一种良好的自然语言,最好的方法是去看一些专家们所写的东西,然后写一些你自己的东西,然后读更多,再写更多。然后一直持续,一直到你发展出一种属于自己的风格和特色。要找到好的程序码来看是很一件很困难的事,因为,对菜鸟黑客们而言,适于供他们阅读和努力的大型程序的source数量很少。但这事己有了戏剧性的变化了; 现在免费的供应的软件、程序设计工具和操作系统(大都公开提供 source,而且全都是由黑客们写成的)到处可看。进入下一个主题。
2、取得一个免费的 UNIX,并学习使用和维护。我先假设你己经有一部个人电脑或者是可以使用任何一部(现在的小孩子真幸福,可如此轻易的拥有 :-))。 取得黑客技巧的第一个步骤是取得一份Linux 或者一份Free BSD-Unix,并将它安装在自己的机器,并使之顺利的运作。没错,在这个世界上除了Unix之外,还有其它的操作系统。但是他们只提供bianry,你不能看到他们的程序码,你也不能修改他们。想要在DOS或Windows或MacOS开始hacking,无疑就是要你绑著枷锁跳舞一样。
除此之外,Unix是Internet上的操作系统。当你在不懂Unix的情况下学习使用Internet时,你没辨法在不懂Unix的情况下成为Internet的黑客。因为这个原故,现在的黑客文化还是很牢固的以Unix为中心。(这并不完全是正确的,而且有些活在旧时代的黑客甚至也不喜欢这种情形,但是Unix和Internet之间的共生共成己经到了牢不可破的地步,即使是Microsoft的大块肌肉也没能在上面留下明显的伤痕。) 因些,把Unix装起来吧! (我自己是喜欢Linux,但是还有其它的东东可用。) 学习它,让它运作起来,让它陪你努力精进。 用他向整个Internet喊话。看程序码,改程序。
有一天你成为一位高竿的黑客,你回头往后看时会发现,你得到比Microsoft操作系统所能提供的还要好的程序设计工具(包括 C,Lisp和 Perl)。而且得到快乐,并学到比共生共成己经到了牢不可破的地步,即使是Microsoft的大块肌肉也没能在上面留下明显的伤痕。) 因些,把Unix装起来吧! (我自己是喜欢Linux,但是还有其它的东东可用。) 学习它,让它运作起来,让它陪你努力精进。用他向整个Internet喊话。 看程序码,改程序。有一天你成为一位高竿的黑客,你回头往后看时会发现,你得到比Microsoft操作系统所能提供的还要好的程序设计工具(包括 C,Lisp和 Perl)。而且得到快乐,并学到比你想像中的还要多的知识。关于学习Unix,在Loginataka有更多的资料。http://www.ccil.org/~esr/faqs/loginataka。)
看一下Linux distribution的目录或 Linux CD,并把自己交付给它。
3、学习使用World Wide Web并学会写 HTML。
在黑客文化创造出来的东西,大多在他们的活动范围外被使用著,如,在工厂和辨公室或大学被漠漠的使用著。但Web是一个很大的例外,这个黑客眼中的大玩具甚至还被政客们接受,并巧巧的在改变这个世界。因此(还有很多好的理由),你必须学习Web。并不只是学习使用browser(这太容易了)而己,还要学会写HTML这个Web的标签语言。如果你不知道如何设计程序,写HTML也可以给一些习惯上的帮助。嗯!! 建立home page吧! 不过,有一个home page 并没任何特别之处能让你成为一位黑客。Web上到处都是home page,而且大部份都没什么重点,没什么内容的烂泥 -- 很好看的烂泥巴,但是看起来都一样,差不多。
4、至少学会以下的其中两种:
一、网站服务器程序ASP、PHP、CGI、JSP
我个人认为CGI是最难学的其中一种。
二、程序语言:C语言、C++、VB、JAVA、PERL、DELPHI、汇编语言
不过我认为C语言的通用性最好,可以跨平台(操作系统)使用。
还要试着自己写程序、开发软件等工作。
三、数据库管理软件:MYSQL、SQL、FOXPRO……等。
四、几种常用的操作系统:WIN98、WIN2000、WINNT、WINXP、UNIX、LINUX、要是能学到UNIX那是最好不过的了。最最基本的WIN2K、WINNT也要学会吧。
如果以上的你都会了,那么你已经是个高手了。
传说中的编程高手是如何炼成的?
我得到的结论是--人们非常急于学习计算机相关知识,或者不知道何故,计算机难以置信的比其他任何东西都要容易学。却没发现一本书是关于在多少天内学会演奏贝多芬音乐、量子物理、甚至学会养狗。让我们分析一下像《3天内学会Pascal》这样的书名的意味: * 学会:在3天内你根本没有时间写出一个像样的程序,不会有使用它编程的成功或失败过程中学习的经历。也不会有时间和一个经验丰富的程序员一起工作,更不会理解程序在实际的编程环境中是怎样的。简而言之,你没有足够的时间学习更多的。所以这样的书只能谈一些肤浅的知识,不会让你深入的理解。亚历山大说过,肤浅的学习是危险的事情。 * Pascal:3天内也许你能搞懂Pascal的语法(如果你以前过另外一种类似的语言),但是你不能学会如何利用这样的语法。简而言之,假如你是个Basic程序员,你会用Basic风格写Pascal代码,但不会明白什么是Pascal的优点(或者不足)。为什么有这样的观点?Alan Perlis说过:“一门语言没有影响你的编程思想,它就不值得学习。”另一个观点,你只是学习了Pascal(更像,Visual Basic或者JavaScript)很少的部分知识,因为你只是需要使用这样的工具去完成一个特定的任务。但是你没有学会如何编程;你只是学会如何完成一些特定的任务。 * 3天内:不幸地,如下节要说的,这根本不够。10年学会编程学者们(Hayes, Bloom)研究表明,要想成为业界专家,任何一个宽广的领域,都需要10年的时间,比如下棋、作曲、绘画、演奏钢琴、游泳、网球,和研究神经心理学、地质学。这说明没有捷径:即使莫扎特,在4岁的时候就已经显示了音乐天赋,但在他写出了世界级的音乐作品前,他也花了13年的时间。另外一个例子,披头士乐队,好像是在1964年突然在Ed Sullivan冒出来的,但其实他们在1957年就开始演出了,并在更早就组成了乐队,他们第一张震撼唱片《Sgt.Pepers》(《佩帕军士》)在 1967年才发行。Samuel Johnson认为10年可能还不够,“任何领域的卓越成就只有靠穷极一生的努力来获得,别想用更少的代价就取得。”Chaucer感叹到“生命如此短暂,而要学的东西如此多。”下面是我对如何在编程上取得成功的建议: * 保持对编程的兴趣,感觉编程有乐趣。保证你在10年后都能够有乐趣。 * 和其他程序员交流,阅读其他人的程序,这比读书和培训重要得多。 * 写程序。最好的学习方法是边做边学。用更加学术的话来讲:“在一个给定的领域中,个人能力的提高并不会是自动的获得,就像经验一样的,把已有经验的延伸、扩展,而是需要通过特别有经验的人经过很大的努力来增长”。“而且对于特定的人,最有效的学习需要一个定义良好的、有一定难度的任务、该任务还要有丰富的信息反馈、有重复和纠正错误的机会。” 书《Cognition in Practice: Mind, Mathematics, and Culture in Everyday Life 》(《在实践中认识:心理,数学,和文化在人生中的每一天》)有趣的证明了这样的观点。 * 如果你愿意,花4年时间呆在大学里(或者在研究院呆更长的时间)。这会让你能得到那些需要学历的工作,并且会让你对这个领域有更深的理解。但是如果你不喜欢上学,你也可以(做一些贡献)在工作中得到类似的经验。无论如何,仅有书本知识是不够的。《The New Hacker's Dictionary》(《新黑客字典》)作者Eric Raymond说,“计算机科学不像绘画,当学会了画笔和颜料技巧就能成为一个专业的画家,计算机科学教育不能让任何人成为专业的程序员。”。我雇佣过的最好的程序员之一就只有中学学历,但他写出了许多绝好的软件,拥有他自己的新闻组,并且因为享有股权比我有钱得多。 * 和其他程序员一起做项目。在一些项目中做最好的程序员,在其他的一些项目中做最糟糕的程序员。如果你是最好的程序员,就试着领导一个项目以提高你的能力,通过你的远见来激发其他人。如果你是差劲的程序员,就学习其他高手是如何做的,并且去做那些他们不喜欢做的部分(因为他们让你去给他们做这些部分)。 * 在其他程序员后面接手一个项目,因为需要你理解其他人写的程序是棘手的事情。看看在原作者不在的时候你如何理解和修改他们的代码。考虑如何设计你的程序能让接手你程序的人更容易理解。 * 至少学会6种计算机语言。包括一种支持class abstractions(比如Java和C++)的语言,一种支持functional abstraction(比如Lisp和ML)的语言,一种支持syntactic abstraction(比如Lisp)的语言,一种支持declarative specifications(比如Prolog和C++模板)的语言,一种支持coroutines(比如Icon和Schema)的语言,一种支持parallelism(比如Sisal)的语言。 * 记住“计算机科学”中的“计算机”。搞懂你的计算机执行一个指令要多长时间,从内存中取一个字要多长时间(在Cache命中和没命中的情况下),从磁盘上读连续的字要多长时间,在磁盘上搜索一个新位置要多少时间。 * 参与制定一种语言标准。可以是ANSI C++委员会,也可以是把你周围人的几种编码风格统一起来,该采取几个字符缩进的锯齿状。不管是哪种,你都能弄懂其他人喜欢语言中的什么、有多喜欢、权衡他们为什么有这样的感觉。 * 对将要开始的语言标准化取得成功充满信心。做到上面的这些,光靠书籍学习就能得到是值得怀疑的。我第一个孩子降生前,我几乎读了所有的“How To”系列的书,但是还是感觉像个菜无能的初学者。30个月后,等我第二个孩子降生后,我又把这些书都又复习一遍了吗?不,没有,我认识到靠我自己的个人经验要比那些专家写到上千页的书上的东西有用和可靠得多。Fred Brooks,在他的散文《 No Silver Bullets》(其实,就是《人月神话》中提到的没有银弹…加注)提出分三步的方法,发现优秀的软件设计师: 1.尽可能早的发现设计天才。 2.指派一个职业生涯的导师为他的发展前景负责,并且仔细保持一份职业生涯的档案。 3.为成长的设计师们提供机会,使他们相互激励和影响。这样做的前提是这些人已经有发展成为伟大设计师所必备的潜质;这样的工作需要一直很有耐心。Alan Perlis更直接:“每个人都需要教雕琢:Michelangelo却被告诉什么不需要做,这个道理也同样适合于伟大的程序员。”前进一步,买这样的Java书;你会为它耗尽精力。但是你并没有改变你的生涯,你也不会在24小时、一天、几个月内成为卓越的程序员。