Fundamental Concepts
Algorithm
A set of organized and defined steps used to solve a problem or perform a specific task. Example: an algorithm to sort numbers from lowest to highest.
Debug
The process of identifying and correcting errors or bugs in a program. Tools like debuggers help find where and why a problem occurs.
Testing
Tests performed to ensure a program runs correctly, meets requirements, and has no bugs. It can be manual or automated.
Interpreter
A program that translates and executes source code line by line. Example: Python uses an interpreter to run its scripts.
Compiler
A program that translates source code into a machine language executable by the computer. Example: the C compiler converts C code into an executable file.
Refactor
The process of improving existing code without changing its functionality. This helps make it cleaner, more efficient, or easier to understand.
Log
Records generated by a program to document events or errors. They are used to diagnose problems and understand software behavior.
Open Source
Software whose source code is available for anyone to study, modify, and distribute freely. Example: Linux.
No Code
Tools or platforms that allow creating applications without writing code, using visual interfaces. Example: Wix or Airtable.
Low Code
Platforms that allow developing applications with minimal code writing, combining visual programming with customizable components. Example: OutSystems.
Framework
A set of tools, libraries, and rules that simplify software development. Example: Django for Python.
Library
A set of reusable functions or resources that developers can use to solve common problems. Example: NumPy in Python.
SDK (Software Development Kit)
A set of tools, libraries, and documentation that facilitates software development for a specific platform. Example: the Android SDK for creating mobile applications.
API (Application Programming Interface)
A set of rules and definitions that allows different programs to communicate with each other. Example: a map API to integrate maps into an app.
IoT (Internet of Things)
A system of interconnected devices through the internet that can collect, share, and analyze data. Example: smart thermostats or smartwatches.
Edge Computing
Data processing performed close to where it is generated, instead of relying on a central server. This reduces latency. Example: smart security cameras that process data locally.
Tools
IDE (Integrated Development Environment)
A development environment that includes tools like a code editor, debugger, and compiler to facilitate programming. Example: Visual Studio Code.
Text Editor
A simple program that allows writing and editing text, often used for writing code. Example: Notepad++ or Sublime Text.
Terminal
An interface that allows interacting with the operating system through text commands.
Console
Another term for the terminal, used to execute commands or programs.
CLI (Command Line Interface)
A text-based interface where users type commands to interact with the system or applications.
Linters
Tools that analyze the code to detect syntax, style, or convention errors. Example: ESLint for JavaScript.
Debugger
A tool that allows examining and correcting the functioning of the code step by step during its execution.
Syntax
Variable
A memory space that stores data with an assigned name. Example: x = 10
.
Constant
A value that does not change during the execution of the program. Example: PI = 3.14
.
Function
A reusable block of code that performs a specific task. It can be “called” to execute that task. Example: def add(a, b): return a + b
.
Procedure
Similar to a function, but generally does not return a value, it only performs actions.
Modularity
Dividing a program into smaller, manageable parts called modules, which facilitate the organization and maintenance of the code.
Data Types
Categories of data that a program can handle, such as integers (int), strings (str), or boolean values (bool).
Operators
Symbols that perform operations on data. Example: +
(addition), -
(subtraction), *
(multiplication).
Expressions
Combinations of variables, constants, and operators that produce a value. Example: x + 5
.
Conditional
Structures that allow making decisions in code based on a condition. Example: if (x > 10): print("Greater than 10")
.
Loop
A structure that repeats a sequence of instructions while a condition is true. Example: for i in range(5): print(i)
.
Recursion
When a function calls itself to solve a problem by breaking it down into smaller subproblems. Example: calculating factorial with recursion.
Memory
Reference
A link or address that points to the location of an object or data in memory. References are used to access or modify stored values without duplicating them.
Pointer
A variable that stores the memory address of another value or variable. Widely used in languages like C and C++ to work with dynamic structures.
Heap
A memory region used to store dynamic data. It is more flexible than the stack, but requires explicit management (or automatic in some languages).
Stack
A memory region used to store local variables and function calls. It follows a LIFO (last in, first out) model.
Buffer
A temporary memory area that stores data while being processed or transferred between systems. Example: a buffer for network data.
Garbage Collection
An automatic process that frees unused memory by deleting objects that no longer have active references. Example: Java’s garbage collector.
Concurrency
Parallelism
Simultaneous execution of multiple tasks on different cores or processors. It focuses on dividing large tasks to run at the same time.
Concurrency
Execution of multiple tasks that progress in parallel but may not literally execute at the same time. It focuses on handling multiple processes or threads.
Thread
A thread of execution within a program. It allows multiple tasks to run concurrently within the same process.
Mutex (Mutual Exclusion)
A tool to ensure that only one thread accesses a shared resource at a time, avoiding conflicts.
Semaphore
A mechanism that controls access to multiple shared resources through counters. It allows defining how many threads can simultaneously access a resource.
Collections
Array
A data structure that stores a set of elements of the same type in contiguous memory positions. Example: [1, 2, 3, 4]
.
Linked List
A data structure where each element (node) contains a value and a link to the next node. It allows dynamic insertions and deletions.
Queue
A data structure that follows a FIFO (first in, first out) model. Example: a line of customers.
Stack
A data structure that follows a LIFO (last in, first out) model. Example: stacking plates.
Dictionary
A collection that stores key-value pairs, allowing access to a value given its key. Example: {"name": "Ana", "age": 25}
.
Graph
A data structure that represents relationships between nodes through edges. It can be directed or undirected. Example: a route map.
Tree
A type of graph where nodes are organized hierarchically with a root node and branches leading to child nodes. Example: a filesystem.
DevOps
DevOps
A practice that combines software development (Dev) and operations (Ops) to accelerate application delivery through continuous integration and automation.
Continuous Integration (CI)
A process where developers frequently integrate code into a shared repository, ensuring automated tests to quickly detect errors.
Continuous Deployment (CD)
The next step after continuous integration, where approved changes are automatically deployed to production.
Pipeline
An automated flow of tasks that transform code into a final product, including building, testing, and deployment.
High Availability
The ability of a system to remain operational with minimal interruptions, achieved through redundancy and fault tolerance.
Scalability
The ability of a system to handle increasing loads by adding resources (horizontal or vertical scaling).
Container
An isolated environment that packages an application and its dependencies to run consistently across different systems. Example: Docker.
Virtual Machine
Software that emulates a physical computer, allowing multiple operating systems to run on the same hardware.
OOP (Object-Oriented Programming)
Object
An instance of a class that combines data (attributes) and behaviors (methods). Example: a car as an object of the Vehicle class.
Class
A model or template that defines the properties and common behaviors of a type of objects. Example: class Car
.
Method
A function defined within a class that describes a behavior of the object. Example: car.start()
.
Attribute
A property or data associated with an object. Example: car.color = "red"
.
Inheritance
A mechanism to create new classes based on an existing class, reusing its functionality. Example: Car
can inherit from Vehicle
.
Polymorphism
The ability to use the same method in different classes, adapting its behavior. Example: animal.make_sound()
can emit a “bark” or a “meow”.
Abstraction
The process of hiding complex details and showing only the essentials. Example: interacting with a car without knowing how the engine works.
Encapsulation
The practice of restricting direct access to an object’s data and manipulating it only through defined methods.