Learning path · Beginner
Programming fundamentals
The ideas every programming language shares, from variables to classes.
Start from zero: what a program is made of, how to find out why it broke, how code is organized into objects, another way of thinking with functions, and the tools you'll use every day.
39 pages5 chaptersabout 1.5 hours of reading
- Programming Languages
- Programming Fundamentals
- Operating Systems
Not started yet0/39 read
Start with Programming LanguageProgress comes from your reading history, kept only in this browser.
Chapter 1The first ideas
- 1Programming LanguageProgramming Languages, p. 25A programming language is a formal language with exact rules for writing instructions a computer can carry out, such as Python, JavaScript, Java or C.
- 2VariableProgramming Fundamentals, p. 56A variable is a named storage location in a program that holds a value, such as a number or a piece of text, which the code can read and change as it runs.
- 3Data TypeProgramming Fundamentals, p. 14A data type is a classification that tells a program what kind of value a piece of data holds, such as a number or text, and which operations work on it.
- 4StringProgramming Fundamentals, p. 54A string is a data type that represents text as an ordered sequence of characters, such as a name, a sentence, a URL, or the contents of a file.
- 5ArrayProgramming Fundamentals, p. 3An array is an ordered collection of values stored under one name, where each item is accessed by its numeric position, called an index, usually starting at 0.
- 6LoopProgramming Fundamentals, p. 35A loop is a control structure that repeats a block of code, either a set number of times, once for each item in a collection, or while a condition stays true.
- 7FunctionProgramming Fundamentals, p. 21A function is a named, reusable block of code that performs a specific task, optionally taking inputs called parameters and returning a result.
- 8ParameterProgramming Fundamentals, p. 43A parameter is a named input in a function's definition, and an argument is the actual value passed in that place when the function is called.
- 9ScopeProgramming Fundamentals, p. 50Scope is the region of a program where a name, such as a variable or function, is visible and can be used, which decides what each line of code can reach.
- 10NullProgramming Fundamentals, p. 38Null is a special value that means "no value here", used when a variable deliberately refers to no object or data at all instead of holding something real.
Chapter 2When things go wrong
- 11ExceptionProgramming Fundamentals, p. 19An exception is an event that interrupts a program's normal flow when an error occurs, which code can catch and handle instead of letting the program crash.
- 12Stack TraceProgramming Fundamentals, p. 52A stack trace is the list of function calls in progress when an error happened, from the line that failed back to where the program started.
- 13DebuggingProgramming Fundamentals, p. 15Debugging is the process of finding out why a program misbehaves, locating the faulty code and fixing it, often with the help of a tool called a debugger.
Chapter 3Organizing code
- 14ObjectProgramming Fundamentals, p. 39An object is a bundle of related data and behavior: values in named fields, often called properties, and functions that work on them, called methods.
- 15ClassProgramming Fundamentals, p. 9A class is a blueprint in object-oriented programming that defines the data and behavior shared by a group of objects, which are created from it as instances.
- 16ConstructorProgramming Fundamentals, p. 13A constructor is a special method that runs when a new object is created from a class, setting up its starting values so it is ready to use.
- 17MethodProgramming Fundamentals, p. 37A method is a function that belongs to an object or class and is called on it, so it can read and change that object's data, as in user.rename("Ada").
- 18OOPProgramming Fundamentals, p. 40OOP, or object-oriented programming, is a way of structuring code around objects that bundle related data together with the functions that act on that data.
- 19EncapsulationProgramming Fundamentals, p. 17Encapsulation is the practice of bundling data with the methods that use it and hiding internal details, so outside code works only through a public interface.
- 20InheritanceProgramming Fundamentals, p. 28Inheritance is an object-oriented programming feature that lets a new class reuse, extend, and override the fields and methods of an existing class.
- 21PolymorphismProgramming Fundamentals, p. 45Polymorphism is the ability of code to work with values of different types through one shared interface, with each type supplying its own behavior.
- 22InterfaceProgramming Fundamentals, p. 29An interface is a named set of method and property signatures that a type promises to provide, without saying how those members are implemented.
- 23AbstractionProgramming Fundamentals, p. 1Abstraction is hiding the complicated details of how something works behind a simpler interface, so code can use it by knowing only what it does.
Chapter 4Thinking in functions
- 24Functional ProgrammingProgramming Fundamentals, p. 22Functional programming is a style of building software from pure functions that avoid changing shared data, making code more predictable and easier to test.
- 25Pure FunctionProgramming Fundamentals, p. 47A pure function always returns the same output for the same input and has no side effects, meaning it does not change anything outside itself.
- 26ImmutabilityProgramming Fundamentals, p. 27Immutability means a value cannot be changed after it is created, so every update produces a new value instead of modifying the original in place.
- 27Higher-Order FunctionProgramming Fundamentals, p. 25A higher-order function is a function that takes another function as an argument, returns a function, or both, so behavior can be passed around like data.
- 28Lambda FunctionProgramming Fundamentals, p. 33A lambda function is a small function written inline without a name, usually passed straight to another function such as a sorting or filtering helper.
- 29CallbackProgramming Fundamentals, p. 7A callback is a function passed as an argument to another function, which then calls it later, for example when a task finishes or an event happens.
- 30ClosureProgramming Fundamentals, p. 10A closure is a function that remembers the variables from the scope where it was created, so it can keep using them even after the outer function has returned.
- 31RecursionProgramming Fundamentals, p. 48Recursion is a technique in which a function solves a problem by calling itself on smaller versions of the same problem until it reaches a simple base case.
Chapter 5Tools of the trade
- 32IDEProgramming Fundamentals, p. 26An IDE (integrated development environment) is an application that combines a code editor, a debugger, build commands and other developer tools in one place.
- 33TerminalOperating Systems, p. 32A terminal is the program that shows a text interface, passing your keystrokes to a shell or command-line program and displaying the text it sends back.
- 34CompilerProgramming Fundamentals, p. 11A compiler is a program that translates source code written in a programming language into a lower-level form, such as machine code, that a computer can run.
- 35InterpreterProgramming Fundamentals, p. 30An interpreter is a program that runs source code directly, step by step, instead of first translating the whole program into a separate executable file.
- 36LibraryProgramming Fundamentals, p. 34A library is a collection of ready-made code, such as functions and classes, that a program calls to do common jobs without writing that code itself.
- 37FrameworkProgramming Fundamentals, p. 20A framework is a reusable foundation of code, tools, and conventions that provides the structure of an application, so developers only fill in their own logic.
- 38Package ManagerProgramming Fundamentals, p. 41A package manager is a tool that installs, updates and removes software packages and their dependencies, resolving versions automatically.
- 39SDKProgramming Fundamentals, p. 51An SDK (software development kit) is a package of tools, libraries, documentation and examples for building software for a particular platform or service.
Along the way, compare
Pairs on this path that are easy to mix up, side by side.