导读:
各位靓仔靓女们,今天咱们不聊漏洞,不谈攻防,来点儿高大上的——思维方式!这篇文章保证让你看完后,感觉自己瞬间升华,妈妈再也不用担心我的学习了!计算思维,说白了,就是程序员的“祖传秘方”,用计算机的方式解决问题。而数学思维,那是人类智慧的结晶,靠抽象、归纳、推理来搞定难题。但别忘了,计算思维也是人脑玩的,只不过它更依赖计算机科学的套路和工具。
算法这玩意儿,可不是计算思维的完全体,它更接地气,要考虑实际的“计算”问题。计算思维是虚的,算法是实的,它把思维变成一步一步的操作指南。所以,记住这个公式:问题 → 思维 → 算法 → 程序。
数学喜欢“脱衣服”,把具体的东西一层层剥开。而计算机思维则喜欢“贴标签”,把抽象的东西和现实世界联系起来。数学家可以不食人间烟火,但网络安全工程师必须懂生活,不然怎么发现甲方爸爸的奇葩需求呢?
总结一下,能被证明的,那是数学;暂时没法证明的,那是哲学;实在没法解释的,那就交给神学吧! (手动狗头)
温馨提示:可以转发,但谢绝Ctrl+C/V,尊重原创,人人有责!
目录
- 啥是计算思维?
- 计算机思维 VS 数学思维:一场“相爱相杀”的大戏
- 实战演练:解题带你搞懂两者的区别
- 计算思维、算法和程序设计:铁三角关系大揭秘
- 抽象:一个“脱”,一个“贴”,各有千秋
- 逻辑:关系户的那些事儿
- 编程和数学:谁才是YYDS?
- 计算机世界的“比特”:万物皆可盘
- 脑洞大开:再来点儿延伸思考
啥是计算思维?
各位,计算思维可不是让你只会敲代码,它是一种更高级的思维方式!简单来说,就是用计算机科学的那一套理论,去解决各种问题,设计各种系统,甚至理解人类的行为。这可是周以真大佬在2006年提出的,绝对是计算机界的“顶流”概念!
2010年,周大佬又补充了一句:计算思维就是用计算机能够执行的方式,来表达和解决问题。这就像是给问题穿上了一件“计算机语言”的外衣,让计算机也能听懂人话。
话说当年,美国卡内基·梅隆大学的计算机科学系主任周以真(Jeannette M. Wing)教授,在《Communications of the ACM》杂志上,正式提出了计算思维这个概念。周教授认为,计算思维是一种涵盖计算机科学广度的思维活动,包括问题求解、系统设计、以及人类行为理解等等。

计算思维这玩意儿,博采众长,吸收了数学思维的精华,借鉴了工程思维的套路,还融合了科学思维的理念。它就像一个“超级大脑”,能处理各种复杂的问题,设计各种牛逼的系统。
计算思维可不是纸上谈兵,它是建立在计算机的能力和限制之上的。它能让我们处理那些单靠个人力量无法完成的任务,让我们敢于挑战那些看似不可能的难题。
在计算思维的世界里,抽象的概念可以超越时间和空间的限制,完全用符号来表示。数字抽象只是其中的一种,更丰富的抽象形式还在等着我们去探索。与数学和物理科学相比,计算思维的抽象更加复杂,也更加有趣。
计算思维的核心在于操作模式。它既可以由人来执行,也可以由机器来执行。它能让我们直面机器智能的奥秘:什么人类比计算机做得好?什么计算机比人类做得好? 最根本的问题是:什么是可计算的? 这个问题,到现在我们也没完全搞明白。
- 计算思维是一种递归思维:它就像俄罗斯套娃,一层套一层,循环往复。它可以并行处理,把代码变成数据,再把数据变成代码。它能进行类型检查,知道给事物起多个名字的好处和坏处。它评价一个程序,不仅仅看重准确性和效率,还看重美感和简洁。
- 计算思维利用启发式推理来寻求解答:它就像一个经验丰富的侦探,在不确定的情况下进行规划、学习和调度。它会不断搜索,直到找到答案,比如一系列的网页,一个赢得游戏的策略,或者一个反例。它还会利用海量数据来加速计算,在时间和空间之间进行权衡。
当我们运用一个思维模型时,通常会经历三个阶段:建模、解模和解释。这三个阶段分别对应着抽象思维、演绎思维和发散思维。通过抽象和形式化,我们将问题归纳成一种范式,建立模型。然后通过严密的演绎推理,解出这个模型。最后,使用发散思维,将模型中的意义用自然语言表达出来。
计算机思维 VS 数学思维:一场“相爱相杀”的大戏
数学思维的特点是概念化、抽象化和模式化。在解决问题时,它强调定义和概念,明确问题条件,把握其中的函数关系。通过抽象、归纳、类比、推理、演绎和逻辑分析,将概念、定义、数学模型和计算方法等与现实事物建立联系,最终用数学思想解决问题。
计算思维则是按照计算机科学领域特有的解决方式,对问题进行抽象和界定,通过量化、建模、设计算法和编程等方法,形成计算机可处理的解决方案。
简单对比一下:数学思维是人脑的思维,擅长抽象、归纳和推理;计算思维也是人脑的思维,但它建立在数学思维的基础上,运用计算机科学的思想、原理与方法,采用计算机能够实现的方式来解决问题。
实战演练:解题带你搞懂两者的区别
举个栗子,求解S=1+2+3+……+ n。
数学思维会这样思考:对问题进行抽象和推理,归纳成自然数求和公式:S= n *(1+ n)/2 。这种方式符合人类“依靠大脑进行运算”的特点,简洁高效。
计算思维则会这样思考:同样是对问题进行抽象和推理,但采用符合计算机工作特性、执行效率更高的“直接从1累加到n”的处理方式。虽然看起来笨拙,但更适合计算机执行。
这就是两者最本质的区别!
计算思维、算法和程序设计:铁三角关系大揭秘
算法思想并不等同于计算思维,它需要考虑更加实际的“计算”问题。计算思维是一种抽象的思维活动,而算法则是把这种思维活动具象化,描述成具体的方法与步骤。
程序设计则是算法在计算机上的正确实现,它是计算思维的最终结果。
还是以求解S=1+2+3+……+ n为例:
- 计算思维:得出“直接从1累加到n”的解决方案;
- 算法:考虑采用何种方法、通过何种步骤来实现这个方案,比如,如何输入与输出,怎样用循环实现累加等;
- 程序设计:将算法所描述的方法与步骤转换成计算机所能理解和操作的指令代码,比如使用“For/Next”语句进行循环、用“S=S+i”赋值语句实现累加等,使程序能够在计算机上运行并获得正确结果。
由此可见,数学思维是计算思维的基础,计算思维是解决问题的一种思考方式,算法是对计算思维的具体设计,程序设计则用于实现算法设计。
综上所述,构建计算思维活动的基本要素是“由问题引发思维、由思维产生算法、由算法形成程序”。它是体现计算思维的关键,是人脑的独立思考活动。所形成的问题解决方案是多样的,并且不受编程语言的限制,也就是我们常说的“一个问题可以有不同的解决方案,一个方案可以有不同的算法设计,一个算法可以用不同的编程语言来实现”。因此,在教学中应该着重体现利用计算思维解决问题的完整过程,而不是单一地教会学生某种编程语言。
计算机思维和数学思维,都离不开抽象和逻辑。
抽象:一个“脱”,一个“贴”,各有千秋
数学的抽象,在于剥离具体。 数学研究从公理出发,可以变成纯思维的活动,和具体的现实脱离关系。数学上的人为"定义",就是为了尽可能给出范围明确,不冗余的信息抽象。以后在利用这些信息,得出范围明确不冗余的抽象信息(证明的过程),如此反复。可见这里,数学需要的是一个自洽信息结构和关系。这些信息是架空具体和现实的。虽然,数学在极力的寻找关系,但这个行为发生在圈定好的有限范围内,由层层已知的定理和定义的护栏内。
计算机思维的抽象,在于映射具体。 计算机是用来模拟现实和解决现实问题的。所以,计算机思维是和现实极为紧密的,而现实的关系是错综复杂的。我们无法避免信息冗余,乱入的信息随机出人意料的自由组合。这也是为什么,数学正确和错误清晰而明确。计算机无法保证正确,只能说目前没有错误,bug永远存在需要不断的修复。现实变化了,计算机的思维模型就要跟着变化。
数学的抽象,全在于思维的目的和证明猜想的必要。计算机思维的抽象,在于需要解决的问题和模拟的程度。 有相似的地方,但最大的区别在于,计算机思维需要有生活的理解,有对现实问题的体验经历,个人的世界观和品位生活的能力有所关联。 数学对现实要求不高,大数学家可以是疯子,社交障碍,精神分裂,抑郁症。但,计算机科学家顶多是个同性恋。
逻辑:关系户的那些事儿
关于逻辑。其实,逻辑就是事物之间的关系,而掌握了关系的触发条件,就被看成规律。为什么按照逻辑,应该是这样的,为什么你的逻辑是对的,我的逻辑就是错的。就是因为逻辑本质的关系是物质固有的,在相同的环境和姿势条件下,关系所呈现的规律被观察,被体验,被总结,理解并记住。每每当我们对规律有了新的认识,相当于重新定义了关系,过去的逻辑就会被推翻,建立新的逻辑。逻辑推理,就是对关系的猜测,猜对了关系就是规律,猜错了就是毫无逻辑。
数学研究结构和关系,而现实世界就是由结构和关系构成。这里就是有意思的地方了,现实是完美运行的结构和关系,数学是在人脑里模拟探索的结构和关系。所以,数学是计算机科学的工具。当计算机科学在某个方面无法抽象和映射了,就需要等待数学同步意淫出来和现实世界一样的结构和关系。比如人工智能就是。 现实在随机发展,数学在随机猜想,而数学又是现实的一部分,这又像是计算机运行的原理,充满了递归。人脑像个计算机,人脑也像个宇宙,宇宙发明了人类,人类发明了计算机,人类能否用计算机递归发明人脑。现在不就在这个方向发展么?
计算能力不是产生智能的本质原因(这句话,我非常赞同!)。人类大脑的计算能力有限却有逻辑推理能力。目前计算机的运算能力远远超过人类的运算能力,却无法产生类似的学习和逻辑推理能力。但有一点计算机和人脑是一致的,就是信息通过二进制0和1(比特)来存储传递和表达。算法和结构有一个关系,就是结构越复杂算法就可以越简单,结构越简单那么算法就需要越复杂。所以,人类大脑的智能是因为大脑的结构非常复杂。对比计算机的结构如此的简单,是把复杂的算法都转移到了程序设计上面,也就是让人类的大脑来产生。未来人工智能能够像人类靠近的话,需要的不是计算能力而是一个复杂的硬件结构。并且人类的逻辑思维和智能的演变和人类使用的语言密切相关,所以人工智能也是需要配套的和人类语言差不多的编程语言出现(这就是我之前说过的,走向AGI必须要有创新性的定义)。当然,这都是我的猜测和理解,是思考人类智能本身产生的,不排除计算机本身发展出有别于人类智能模式的智能,比如变形金刚。
编程和数学:谁才是YYDS?
关于编程和数学的问题。虽然,数学是计算机的工具,在思维的本源上有相似和共同性。但是,学习和掌握一个技能需要练习和时间,需要在大脑中训练出特定的结构。纵然有了相同的基础结构,但是要想做的更好发展的更好需要的是训练和时间。
纵然,数学是工具是基础是上层的依赖。并不是说,数学高于一切,优于一切是最强大的。最基础的并不是最强大的,是最必要的最开始的。比如,沙子是建筑的基础但不能代表建筑的价值。无机物是有机物的基础,有机物是生命的基础,但生命的价值放在那里。发展的过程,环环相扣,关系的道路上谁也少不了谁。基础代表必要,发展才是未来。
计算机世界的“比特”:万物皆可盘
比特是信息的基本单位,结构和关系是信息的属性。计算机的伟大之处,就是在于创造了比特的概念,又开始用比特去描述世界,万物皆比特。
结构是固有存在的,是信息的排列组合。关系是观察者从某一个角度看到的排列组合,并且这个角度看到的是可以被观察者所理解的。这里的理解包含可感知,有些物质的排列组合所呈现出来的关系无法被感知(可展开想象)。所以不同的角度看相同的结构会有不同的关系。
脑洞大开:再来点儿延伸思考
总结,对的能证明的就是数学,对的不能证明的就是哲学(一旦证明了就又变成了数学),无法解释的我们还有神学。
网络安全学习路线&学习资源
网络安全的知识多而杂,怎么科学合理安排?
下面给大家总结了一套适用于网安零基础的学习路线,应届生和转行人员都适用,学完保底6k!就算你底子差,如果能趁着网安良好的发展势头不断学习,日后跳槽大厂、拿到百万年薪也不是不可能!
初级网工
1、网络安全理论知识(2天)
①了解行业相关背景,前景,确定发展方向。
②学习网络安全相关法律法规。
③网络安全运营的概念。
④等保简介、等保规定、流程和规范。(非常重要)
2、渗透测试基础(一周)
①渗透测试的流程、分类、标准
②信息收集技术:主动/被动信息搜集、Nmap工具、Google Hacking
③漏洞扫描、漏洞利用、原理,利用方法、工具(MSF)、绕过IDS和反病毒侦察
④主机攻防演练:MS17-010、MS08-067、MS10-046、MS12-20等
3、操作系统基础(一周)
①Windows系统常见功能和命令
②Kali Linux系统常见功能和命令
③操作系统安全(系统入侵排查/系统加固基础)
4、计算机网络基础(一周)
①计算机网络基础、协议和架构
②网络通信原理、OSI模型、数据转发流程
③常见协议解析(HTTP、TCP/IP、ARP等)
④网络攻击技术与网络安全防御技术
⑤Web漏洞原理与防御:主动/被动攻击、DDOS攻击、CVE漏洞复现
5、数据库基础操作(2天)
①数据库基础
②SQL语言基础
③数据库安全加固
6、Web渗透(1周)
①HTML、CSS和JavaScript简介
②OWASP Top10
③Web漏洞扫描工具
④Web渗透工具:Nmap、BurpSuite、SQLMap、其他(菜刀、漏扫等)
恭喜你,如果学到这里,你基本可以从事一份网络安全相关的工作,比如渗透测试、Web 渗透、安全服务、安全分析等岗位;如果等保模块学的好,还可以从事等保工程师。薪资区间6k-15k
到此为止,大概1个月的时间。你已经成为了一名“脚本小子”。那么你还想往下探索吗?
7、脚本编程(初级/中级/高级)
在网络安全领域。是否具备编程能力是“脚本小子”和真正黑客的本质区别。在实际的渗透测试过程中,面对复杂多变的网络环境,当常用工具不能满足实际需求的时候,往往需要对现有工具进行扩展,或者编写符合我们要求的工具、自动化脚本,这个时候就需要具备一定的编程能力。在分秒必争的CTF竞赛中,想要高效地使用自制的脚本工具来实现各种目的,更是需要拥有编程能力.
零基础入门,建议选择脚本语言Python/PHP/Go/Java中的一种,对常用库进行编程学习; 搭建开发环境和选择IDE,PHP环境推荐Wamp和XAMPP, IDE强烈推荐Sublime; ·Python编程学习,学习内容包含:语法、正则、文件、 网络、多线程等常用库,推荐《Python核心编程》,不要看完; ·用Python编写漏洞的exp,然后写一个简单的网络爬虫; ·PHP基本语法学习并书写一个简单的博客系统; 熟悉MVC架构,并试着学习一个PHP框架或者Python框架 (可选); ·了解Bootstrap的布局或者CSS。
8、超级网工
这部分内容对零基础的同学来说还比较遥远,就不展开细说了,贴一个大概的路线。感兴趣的童鞋可以研究一下,不懂得地方可以【点这里】加我耗油,跟我学习交流一下。
网络安全工程师企业级学习路线
如图片过大被平台压缩导致看不清的话,可以【点这里】加我耗油发给你,大家也可以一起学习交流一下。
一些我自己买的、其他平台白嫖不到的视频教程:
需要的话可以扫描下方卡片加我耗油发给你(都是无偿分享的),大家也可以一起学习交流一下。
网络安全学习路线&学习资源
结语
网络安全产业就像一个江湖,各色人等聚集。相对于欧美国家基础扎实(懂加密、会防护、能挖洞、擅工程)的众多名门正派,我国的人才更多的属于旁门左道(很多白帽子可能会不服气),因此在未来的人才培养和建设上,需要调整结构,鼓励更多的人去做“正向”的、结合“业务”与“数据”、“自动化”的“体系、建设”,才能解人才之渴,真正的为社会全面互联网化提供安全保障。
特别声明:
此教程为纯技术分享!本书的目的决不是为那些怀有不良动机的人提供及技术支持!也不承担因为技术被滥用所产生的连带责任!本书的目的在于最大限度地唤醒大家对网络安全的重视,并采取相应的安全措施,从而减少由网络安全而带来的经济损失!!!