几十年前刚有小型电脑的时候,产生了一个由程序专家和部分网络名人所组成的文化社群。该社群的成员创造出了hacker这个词,也就是人们常说的“黑客”。这些黑客们建立了后来的Internet,以及发明了电脑的操作系统。如果有人对这种文化做出了贡献,并且得到了社群的认可,其他成员就会尊称其为“黑客”,带有一种同道中人的意味。事实上有些人在网络上进行着四处破坏的活动,并自称为黑客,然而这些人并不算黑客,充其量就是“骇客”而已,其实真正的黑客一直以建设为己任。
那么,做为一名编程小白,应该怎么学起呢?
1.计算机的工作原理
要完成这部分的基础学习,你有很多开始的起点选择,你可以选择从经常使用电脑开始,也可以从明天起开始选择一门编程语言去学开始(此处注意:小白可能不理解有哪些语言,并且很容易陷入迷乱中),或者是去一些论坛逛逛,或者是买一本书籍。起点的渠道很多,看你选择哪一种。
我建议,首先从一门编程语言开始,一定要死磕,选择一门编程语言不能放弃,要从头到尾的去学完。比如你从C和C++起步就非常好。但C是相当大以及相当复杂的一门语言,标准多、编译器版本也多,学习成本也非常高,幸好目前世界上最通用的服务器类Unix操作系统都是用C语言写出来的,所以你可以先关注操作系统底层,多看内核文档,看底层代码,看懂以后再看看通过了解它的特性后,我能做些什么非常规操作,这就是一般黑客的作案手段了。(了解过程中不免有迷茫,很正常)
但这还只是一部分而已,还有一部分硬件的知识可能需要你去理解。比如什么是冯诺依曼结构?作为一名小白可以不那么三心二意,先把前人给你指引的首要的东西学了,然后再去拓展是最稳妥的。你如果感觉自学C/C++语言有困难的话,我本身是一个C/C++出身的程序员,我整理了一些C/C++的学习视频,大家有兴趣可以来,C/C++编程学习,--7841;后43133。
计算机众所周知的是由软件+硬件的机器,硬件是轨道,软件是跑车,跑车在轨道上跑才形成了各种各样的数据样式的展现。这是形象化了的举例,与真正的硬件和软件有所出入,但是前期为了理解,放弃那种精确,求之以粗糙是很有必要的。
上面我的建议,从编程开始入手学习,从更大的视野来看,就是从软件开始下手,因为硬件已经被设计完成,与你操作计算机的关系不大,一个懂硬件的未必会对计算机操作很牛逼,因为你的目的是黑客,是对计算机工作的控制,而不是构造计算机,因此软件优先于硬件。
因此,去找一门编程语言,死磕一门,绝对要死磕,(我指的是想成为黑客大神的人,如果你的目标就是能搞个小入侵,知道点计算机的基本工作过程,没有必要),学完一门语言后你就会进步很多,到时候你思维打通了,你才会明白今天我所说的。至于学什么语言前面我已经说过C语言以及C++编程语言你可以选择一下,可以帮助你更快速的了解计算机底层相关知识。
2.计算机网络基础
当你能够用一门语言去编程的时候你就对计算机如何工作的有很深的认知了,计算机上跑的任何软件和程序(怎么跑的,为什么能跑?这些潜在的疑问在学的过程中会迎刃而解,此刻记住你的问题边界,不要过分拓展疑问边疆),一些安装包什么的,你都明白那是干啥的,接着对于所有软件程序中的一个集合“网络协议”也就很容易学习了。
网络协议本质是程序,他的功能是让计算机之间能够通信,加一点,安全通信。
再上一部分的计算机工作原理基础上你学习完成后,那么这一部分的学习很轻松。但是绝对重要,因为黑客的影响力主要来自互联网,没有广泛相互联系的互联网,黑客也只能对面前的计算机进行操控,而不能远程去控制和攻击,学习计算机网络会让你明白黑客攻击当中的很多远程的方式,并且黑客的多数伟大和神秘也是互联网赋予的。
3.黑客基础
黑客基础是给学习完以上两大基础后依然不知道如何入侵和进行黑客工程的人准备的,一般有黑客天赋的人学完以上两部分,对于如何利用计算机通过网络去进入其他计算机的系统,窃取信息等都会不学自通。
假如你还尚未打通,那么就要学学黑客的基础,这方面有大量前辈们所写的书,对于前辈经验们的系统性的梳理去认知也很快会让你进入一个不一样的思维模式去。
当然大家还是要清楚黑客和骇客的区别哦!
领取专属 10元无门槛券
私享最新 技术干货