Programming Concepts
The ideas underneath every programming language. Learn them once, and each new language becomes a matter of new syntax rather than new thinking.
18 pages 123 glossary terms Tech+
How to use this topic
The pages run from the basics — what a program is and how a computer stores numbers and text — through the building blocks of every program, to data structures, algorithms and the way real software is built, tested and shared. Read them in order if you are new to programming; each page also stands on its own as a reference. Two topics continue where these pages stop: Software Architecture & Design for how larger systems are structured, and Testing & QA for testing as a craft.
Examples are written in pseudocode and Python, and sometimes in C or JavaScript when a contrast between languages makes the idea clearer. Every example is complete and prints exactly the output shown. If you want to learn Python itself, the Python topic covers the language in depth.
Pages marked Tech+ cover material from CompTIA Tech+, the successor of IT Fundamentals+ (ITF+), in particular its areas on notational systems, data representation and software development concepts.
Learning path
- 01What Is Programming?What a program is, how programming languages differ, and how source code becomes something a processor can run.
- 02Algorithms, Pseudocode and FlowchartsBreaking a problem into precise steps, and writing those steps down in pseudocode or as a flowchart before you code.
- 03Number Systems and Data RepresentationHow computers store numbers: binary and hexadecimal, bits and bytes, negative numbers and floating point.
- 04Character EncodingHow text becomes numbers: ASCII, Unicode and UTF-8, and why text sometimes turns into garbage.
- 05Boolean LogicTrue and false as a small algebra: AND, OR, NOT and XOR, truth tables, De Morgan's laws and logic gates.
- 06Variables, Types and Type SystemsWhat variables and constants are, which data types most languages share, and how static, dynamic, strong and weak typing differ.
- 07Control StructuresThe three building blocks of every program — sequence, selection and iteration — and why structured programming replaced goto.
- 08Functions, Abstraction and DecompositionSplitting a problem into smaller parts, hiding details behind a name, and writing functions without surprising side effects.
- 09RecursionFunctions that call themselves: base case and recursive case, the call stack, and when a loop is the better choice.
- 10Data StructuresWays to organize data in memory — arrays, linked lists, stacks, queues, hash tables, trees and graphs — and what each is good at.
- 11Searching and SortingClassic algorithms for finding and ordering data: linear and binary search, and bubble, insertion, merge and quick sort.
- 12Algorithmic ComplexityDescribing how an algorithm's running time and memory grow with its input, using Big O notation.
- 13Programming ParadigmsDifferent ways to structure a program — imperative, procedural, object-oriented, functional and declarative — and what each is good for.
- 14Object-Oriented ConceptsThe ideas behind object-oriented programming in any language: objects, encapsulation, inheritance, polymorphism and abstraction.
- 15Memory ManagementWhere a running program keeps its data — the stack and the heap — and how memory is given back, by hand or by a garbage collector.
- 16Concurrency BasicsDoing several things at once: processes and threads, concurrency versus parallelism, race conditions, locks and asynchronous code.
- 17Debugging and TestingFinding and fixing bugs systematically, and writing automated tests that prove your code still works.
- 18Version Control with GitKeeping the history of your code with Git: commits, branches, merging, remotes and pull requests.
Programming Concepts glossary
Short definitions of the terms used in this topic. The full glossary covers every topic.