This guide covers fundamental concepts in computer science, programming, data structures, algorithms, and the Internet.
Binary
Binary is the base-2 numeral system used by computers, consisting of only two digits: 0 and 1. Each binary digit is called a bit.
Hexadecimal
Hexadecimal is the base-16 numeral system, using digits 0-9 and letters A-F. It’s often used in computing as a more human-friendly representation of binary-coded values.
Logic Gates
Logic gates are the building blocks of digital circuits, performing basic logical functions like AND, OR, NOT, NAND, NOR, XOR, and XNOR.
Boolean Algebra
Boolean algebra is a branch of algebra that deals with true/false values. It is fundamental to digital logic and computer programming.
ASCII
ASCII (American Standard Code for Information Interchange) is a character encoding standard for electronic communication, representing text in computers with numbers from 0 to 127.
Operating System Kernel
The kernel is the core component of an operating system, managing system resources, and communication between hardware and software.
Machine Code
Machine code is the lowest-level programming language, consisting of binary instructions that the CPU executes directly.
RAM
RAM (Random Access Memory) is a type of volatile memory that temporarily stores data and machine code currently being used by the CPU.
Fetch-Execute Cycle
The fetch-execute cycle is the process by which a CPU retrieves (fetches) an instruction from memory and then executes it.
CPU
The CPU (Central Processing Unit) is the primary component of a computer that performs most of the processing inside a computer.
Shell
A shell is a user interface for accessing an operating system's services, often through a command-line interface (CLI).
Programming Languages
Programming languages are formal languages comprising a set of instructions that produce various kinds of output. Examples include Python, Java, C++, and JavaScript.
Source Code to Machine Code
Source code is high-level code written by programmers. It is translated into machine code through a process called compilation or interpretation.
Variables & Data Types
Variables are storage locations in programming, and data types specify the type of data a variable can hold, such as integers, floats, and strings.
Pointers
Pointers are variables in some programming languages that store memory addresses, allowing direct manipulation of memory.
Memory Management
Memory management involves the handling of a computer's memory resources, including allocation and deallocation of memory.
Arrays
Arrays are data structures that store elements of the same type in a contiguous block of memory.
Linked Lists
Linked lists are data structures where each element contains a reference (link) to the next element, forming a chain.
Stacks & Queues
Stacks are LIFO (last-in, first-out) data structures, and queues are FIFO (first-in, first-out) data structures.
Hash Maps
Hash maps (or hash tables) are data structures that map keys to values using a hash function to compute an index into an array of buckets.
Graphs
Graphs are mathematical structures used to model pairwise relations between objects, consisting of vertices (nodes) and edges (connections).
Trees
Trees are hierarchical data structures with a root node and child nodes forming a parent-child relationship.
Functions
Functions are reusable blocks of code that perform a specific task, taking inputs (arguments) and returning outputs.
Booleans, Conditionals, Loops
Booleans represent true/false values. Conditionals (if-else statements) execute code based on Boolean conditions. Loops (for, while) repeatedly execute code blocks.
Recursion
Recursion is a programming technique where a function calls itself to solve smaller instances of the same problem.
Memoization
Memoization is an optimization technique that stores the results of expensive function calls and reuses them when the same inputs occur again.
Time Complexity & Big O
Time complexity measures the computational complexity of algorithms, commonly expressed using Big O notation, which describes the upper limit of an algorithm's running time.
Algorithms
Algorithms are step-by-step procedures for solving problems or performing tasks. Examples include sorting and searching algorithms.
Programming Paradigms
Programming paradigms are styles or approaches to programming, such as procedural, functional, and object-oriented programming.
Object-Oriented Programming (OOP)
OOP is a programming paradigm based on the concept of objects, which contain data (attributes) and code (methods). Key principles include encapsulation, inheritance, and polymorphism.
Machine Learning
Machine learning is a subset of artificial intelligence where algorithms learn from data to make predictions or decisions without being explicitly programmed.
Internet
The Internet is a global network of interconnected computers that communicate using standardized protocols.
Internet Protocol
The Internet Protocol (IP) is responsible for addressing and routing packets of data so they can travel across networks and arrive at the correct destination.
World Wide Web
The World Wide Web (WWW) is an information system where documents and resources are identified by URLs, interconnected by hyperlinks, and accessible over the Internet.
HTTP
HTTP (Hypertext Transfer Protocol) is the protocol used for transmitting web pages over the Internet.
HTML (Hypertext Markup Language): the standard markup language for creating web pages.
CSS (Cascading Style Sheets): used for describing the presentation of web pages.
JavaScript: a programming language used to create dynamic and interactive effects on web pages.
HTTP Codes
HTTP codes are response status codes indicating the result of an HTTP request, such as 200 (OK), 404 (Not Found), and 500 (Internal Server Error).
HTTP Methods
HTTP methods are actions to be performed on resources, including GET, POST, PUT, DELETE, and PATCH.
APIs
APIs (Application Programming Interfaces) are sets of rules that allow different software entities to communicate with each other.
Relational Databases
Relational databases store data in tables with rows and columns, and relationships between tables are established using keys. Examples include MySQL and PostgreSQL.
SQL
SQL (Structured Query Language) is the standard language for managing and manipulating relational databases.
SQL Injection Attacks
SQL injection attacks exploit vulnerabilities in an application’s software by inserting malicious SQL code into a query, allowing attackers to interfere with the database.