在深入学习任何特定编程语言之前,有志向的开发者都应该掌握这些构成所有软件开发基础的基本概念。

译自The Key Fundamentals of Programming You Should Know,作者 Jack Wallen。

对于许多人来说,软件开发是一个难以理解的事情,它被认为是那些在常春藤盟校学习计算机科学多年的超级聪明的人才能做的事情。

事实并非如此。

只要你愿意花时间学习一门语言并应用自己,任何人都可以成为一名开发者。但是,在你选择一门语言专注之前,你需要了解一些关于编程的关键知识,无论你使用什么语言或开发什么。

这样想吧。如果你决定要成为一名厨师,你需要了解烹饪的基本知识,然后再尝试学习米其林星级餐厅工作的精髓。跳过这些基础知识,你就会遇到困难。

但是,这些基础知识是什么?当我开始学习Python时,我意识到如果在直接上手之前了解这些知识,我会学得更好。

它们如下。

注释和文档

我们从一些相当不言自明的事情开始。当你编写代码时,你应该添加注释和文档。为什么?因为可能会有这样的时候,你要么必须重新审视旧代码(并且不记得你做了什么),要么必须由其他人接手。如果你不注释和记录你的代码,那么弄清楚发生了什么将是一项挑战。确保你了解如何向你选择的语言添加注释和文档(例如,一些语言使用 # 作为注释,而另一些语言使用 /)。

条件

条件相当简单。解释它们的简单方法是,如果一个条件为真,则运行一段代码,而如果条件为假,则运行另一段代码。Python 中的一个简单示例是:

name = "Jack"``   ``if name == "Jack":`     `print("Welcome, Jack!")``else:`     `print("I don't know you.")

上面的条件是_if name == “Jack”:_。如果为真,则运行第一个 print 语句。如果条件为假,则运行第二个语句。条件是编程中非常重要的部分,它可以创建更复杂的代码。

创造力

你可能会疑惑为什么我在这个列表中包含创造力。事实是,创造力对于软件开发绝对至关重要。在某些时候,你会遇到一个问题,而通常的解决方案无法解决它。当这种情况发生时,你需要发挥创造力。软件开发中没有一条成功的道路,有时最好的道路可能并不明显。一个有创造力的人总是能够看到一个问题的多种解决方案,并且可以应用其中任何一个来找出最佳解决方案。不要犹豫,发挥你的创造力。

数据类型

每种编程语言都使用数据类型,因为你不能只将一段数据放入程序中,并期望它在不帮助语言理解类型含义的情况下工作。有一些通用数据类型在每种语言中都使用,例如整数、浮点数、布尔值和字符串。你不仅要了解你选择的语言中可用的数据类型,还要了解它们的工作原理和作用,这一点绝对至关重要。

流程控制

流程控制告知代码执行如何发生。有三种基本类型的流程控制:

  • 顺序 - 代码逐行执行。

  • 选择 - 代码基于条件执行。

  • 迭代(循环) - 可以重复执行语句,直到满足条件。

函数

函数是一个代码单元,旨在执行特定任务。函数包含用于该任务的一组指令,可以在程序中重复使用,甚至可以在其他程序中重复使用。函数按名称定义,然后在整个程序中按名称调用。函数是模块化的,允许程序员抽象操作的细节,可重复使用,易于理解,并有助于简化测试和调试。

库和框架

库和框架可以轻松扩展编程语言的功能集,并允许你编写更复杂的软件,而无需每次都重新发明轮子。不过,库和框架是不同的。库是预先编写的模块的集合,其中包括可重复使用的函数、类和数据结构,以执行特定任务。另一方面,框架包含一组包含特定函数的库。这两种工具都可以使编程更高效、更灵活、更具可扩展性和更可靠。

循环

库和框架可以轻松扩展编程语言的功能集,并允许您编写更复杂的软件,而不必每次都重新发明轮子。不过,库和框架是不同的。库是预先编写的模块的集合,其中包括用于执行特定任务的可重用函数、类和数据结构。另一方面,框架包含一组包含特定功能的库。这两种工具都使编程更加高效、灵活、可扩展且可靠。

变量和语法

不要将每个值“硬编码”到您的程序中,您应该使用变量,它用作存储数据值的容器。通过使用变量,您可以使编写代码变得相当容易。最重要的是,您还可以根据需要更轻松地更改这些变量。例如,如果您在程序顶部设置name = “Jack”并使用整个name变量,如果您需要将“Jack”更改为“Olivia”,则不必遍历整个程序进行更改,您只需要更改变量一次。

与变量相关的是语法,它定义了语言的结构。鉴于大多数编程语言使用自己的语法,因此理解这一点非常重要,否则您的程序将无法工作。例如,您必须知道如何在您的语言中定义整数。例如,Python 用于指定数据类型(也称为“转换”)的语法如下所示:

x = str(3)`    `y = int(3)`    `z = float(3)

在 C++ 中,这将是:

int x = 3;` `float z = 3;` `char str[] = "New Stack";

版本控制

虽然您可能不需要在早期使用版本控制(例如Git),但最终它将变得至关重要(尤其是在与团队合作时)。版本控制允许您跟踪和管理对代码的更改。在与团队合作时,版本控制允许团队管理代码随时间的变化。对存储在版本控制系统(例如 Git)中的代码所做的每次修改都会在一个专门的数据库中进行跟踪,以便如果在代码中引入错误,可以回滚它。版本控制可以成为您作为软件开发人员最好的朋友。

好了……在踏入编程世界之前,您需要了解一些基本知识。我只粗略介绍了这些概念,所以您需要继续学习每一个概念,同时开始学习您选择使用的编程语言的复杂性和特殊性。

黑客/网络安全学习包

资料目录

  1. 成长路线图&学习规划

  2. 配套视频教程

  3. SRC&黑客文籍

  4. 护网行动资料

  5. 黑客必读书单

  6. 面试题合集

👇👇👇
**读者福利 |** CSDN大礼包:《网络安全入门&进阶学习资源包》免费分享 **(安全链接,放心点击)**

在这里插入图片描述

👉1.成长路线图&学习规划👈

要学习一门新的技术,作为新手一定要先学习成长路线图,方向不对,努力白费。

对于从来没有接触过网络安全的同学,我帮你准备了详细的学习成长路线图&学习规划。可以说是最科学最系统的学习路线,大家跟着这个大的方向学习准没问题。

在这里插入图片描述
在这里插入图片描述

👉2.网安入门到进阶视频教程👈

很多朋友都不喜欢晦涩的文字,我也为大家准备了视频教程,其中一共有21个章节,每个章节都是当前板块的精华浓缩。****(全套教程文末领取哈)
在这里插入图片描述

在这里插入图片描述

👉3.SRC&黑客文档👈

大家最喜欢也是最关心的SRC技术文籍&黑客技术也有收录

SRC技术文籍:

在这里插入图片描述

黑客资料由于是敏感资源,这里不能直接展示哦!****(全套教程文末领取哈)

👉4.护网行动资料👈

其中关于HW护网行动,也准备了对应的资料,这些内容可相当于比赛的金手指!

在这里插入图片描述

👉5.黑客必读书单👈

在这里插入图片描述

👉6.网络安全岗面试题合集👈

当你自学到这里,你就要开始思考找工作的事情了,而工作绕不开的就是真题和面试题。

在这里插入图片描述

所有资料共282G,朋友们如果有需要全套《网络安全入门+进阶学习资源包》,可以扫描下方二维码或点击链接免费领取~
**读者福利 |** CSDN大礼包:《网络安全入门&进阶学习资源包》免费分享 **(安全链接,放心点击)**

在这里插入图片描述

结语

网络安全产业就像一个江湖,各色人等聚集。相对于欧美国家基础扎实(懂加密、会防护、能挖洞、擅工程)的众多名门正派,我国的人才更多的属于旁门左道(很多白帽子可能会不服气),因此在未来的人才培养和建设上,需要调整结构,鼓励更多的人去做“正向”的、结合“业务”与“数据”、“自动化”的“体系、建设”,才能解人才之渴,真正的为社会全面互联网化提供安全保障。

特别声明:

此教程为纯技术分享!本书的目的决不是为那些怀有不良动机的人提供及技术支持!也不承担因为技术被滥用所产生的连带责任!本书的目的在于最大限度地唤醒大家对网络安全的重视,并采取相应的安全措施,从而减少由网络安全而带来的经济损失!!!

Logo

科技之力与好奇之心,共建有温度的智能世界

更多推荐