随着互联网的持续发展,网络安全就变的格外的重要,这段时间也是有个同学在问这个问题,他想要从事这个方面的工作,但是现在不知道怎么学习,论坛上又是众说纷纭,他也是有些懵。这里拿我自己的精力和大家谈谈吧。
其实 我像他一样决定从事网络安全这一行的时候,也是经常在各个论坛上搜索,怎么学习网络安全?网络安全入门学什么语言好?学网络安全哪个方向有前途。听到大佬说现在PC端不行了,以后移动端才是主流,然后我就去搞搞HTML+JS+JAVA。然后奋发几个月,在此过程中发现,有时候写出来的网页需要使用数据库,什么是数据库?又去研究数据库。又需要端口号、IP地址,还好本身是网络专业的还能OK的解决。因为是半路出家的,接下来一系列用到的算法,数据结构,用到什么又去学什么。折腾了一圈后啥也没学到。听说挖洞牛✘。然后又去研究PC端。又听见大佬说。开始学C好。又听见大佬说,要学汇编,好嘛又去搞搞。结果什么都没有学到。
于是静下心来去总结了学习的这段历程。我问我,想做安全,什么是安全呢?那些方面是安全。做安全应该具备什么样的能力?该怎么去做。
我觉得安全就是对于数据的争夺。安全人员想法设法的从漏洞、软件加固、系统内核、网络防火墙、内网安全等等上下功夫,想尽一切办法排除修复从软硬件带来的逻辑缺陷,从而保护数据按照我们理想设计的路去走。而我们的对手也是想尽一切办法来使这些数据偏离原来的轨迹,按他们的想法达到他们需要的目的。
而无论什么样式的数据都必须要运行在计算机上。就像一个医生如果不了解人体的结构,他怎么去治病?因此无论是做PC端安全还是做移动端安全,我们都应该去了解承载我们所保护对象的计算机是怎么动起来的。键盘打一个字进去是怎么从显示器上显示出来的?QQ微信的信息是怎么从对方达到你的手机又如何显示出来的?一个运行的程序,它的每个部位分别存放在电脑的什么部位,通过CPU怎么指挥让这一切的数据动起来达到我们想要实现的目的。组成计算机的最根本的东西是什么?就想组成人体是细胞。组成计算机的是电路。只有知道计算机最底层的东西后,你完全了解了这些东西为什么要这样做,就像修路无论是泥石小路还是柏油马路还是高速路,都只要那么宽就够了?为什么?因为我们给汽车下了一个标准,汽车就长那么大,只要你路有那么宽就可以让他通过。所以明白了底层的东西。你无论是挖洞还是做破解,无论他多么复杂你都能够以它最底层的东西为依据,以不变应万变,顺藤摸瓜,解决问题。
所以对于初学者来说。学什么好?无论开始学那种语言都有好有坏。得一些的同时又失去一点。
如果你是计算机专业的学生,我认为你先把现在的课学好。等把数据库,网络,程序,算法都知道是什么后。再下功夫弄好模电,学扎实汇编,选择一门高级语言精通C.C++或者JAVA,再学好高数和算法。达到这步后,再看看漏洞挖掘,逆向还是搞搞病毒,还是做移动端。你都有了很清晰的认识,那个时候你想走那个方向,都能很轻松的迁移过去,奔着专家这个层次而去,不再是去入坑了还是个弱哒哒的小白,凭借之前这些牢厚的底子能轻易的研究进去。
如果是自学,就把手中的C学到一个相当的水平后,自然相关的网络,程序,数据库是些什么东西你也就知道了。
我还是认为该把,汇编–模电–高数–网络–程序–数据库这一系列底层基础的东西全部学到一个高度,才能在安全领域有点点修为。如果你能保证每天用五个小时都全心全意,专心致志的一点不分神的去深入了解学习这堆货,过不了三五年你就是大神了。
当然,就像上面提到过的,如果你还是在刚刚想要从事,或者还在基础的阶段,最简单的还是先从基础的报错语言开始学习,毕竟学习本身就是一个不断成长的过程。