Programming
129 free lessons across 5 courses in this category.
Courses
Topics across courses
Getting started
- Running PythonPython · Check Python 3, use the interactive prompt, and run Python files from a terminal.
- Hello WorldPython · Write, save, and run a first Python program with the print function.
- User InputPython · Read keyboard input, convert it when needed, and display useful output.
- Comments and ErrorsPython · Document Python code with comments and use tracebacks to locate mistakes.
- Running JavaScriptJavaScript · Run JavaScript in a browser console, an HTML page, and Node.js.
- Hello WorldJavaScript · Write a first JavaScript program and display its output in several environments.
- Comments and ErrorsJavaScript · Document intent, inspect error messages, and debug common JavaScript mistakes.
- Strict ModeJavaScript · Enable stricter checks and avoid error-prone legacy JavaScript behavior.
- Installing JavaJava · Install a Java Development Kit and verify that its compiler and runtime are available.
- Hello WorldJava · Create a small Java class with a main method and print text.
- Compiling and Running JavaJava · Turn Java source code into bytecode and execute it with the JVM.
- Comments and ErrorsJava · Document Java code and use compiler messages and stack traces to locate mistakes.
- Installing a C CompilerC · Install GCC or Clang and verify that a standards-friendly C compiler is ready.
- Hello WorldC · Build a complete first C program and understand its essential parts.
- Compiling and Running CC · Compile standard C with useful warnings, then run the resulting executable.
- Comments and Compiler ErrorsC · Document intent and use compiler diagnostics to find mistakes.
- What Is SQL?SQL · Understand how SQL describes questions and changes for relational databases.
- Trying SQL with SQLiteSQL · Install or open SQLite and run SQL against a small local database.
- Tables, Rows, and ColumnsSQL · Read the structure of relational data as tables made of rows and columns.
- SQL Data TypesSQL · Choose practical column types for text, numbers, dates, and other values.
Data basics
- VariablesPython · Store, update, and name values clearly in Python programs.
- Working with StringsPython · Create, format, search, and slice Unicode text in Python.
- Working with NumbersPython · Calculate with integers and floating-point numbers using Python operators.
- Booleans and ComparisonsPython · Create True and False values and combine comparisons into conditions.
- Type ConversionPython · Convert strings, numbers, and collections explicitly and inspect value types.
Collections
- ListsPython · Store ordered values, update items, and use common Python list methods.
- TuplesPython · Represent fixed ordered records and unpack tuple values in Python.
- DictionariesPython · Store key-value data and safely read, update, and iterate over dictionaries.
- SetsPython · Store unique values and perform fast membership and set operations.
Control flow
- If and ElsePython · Branch Python programs with if, elif, and else conditions.
- LoopsPython · Repeat work with Python for loops, while loops, and range.
- Break and ContinuePython · Stop loops early, skip iterations, and use loop else clauses.
- List ComprehensionsPython · Build transformed and filtered lists with readable Python comprehensions.
- If and ElseJavaScript · Run different code according to clear, ordered conditions.
- LoopsJavaScript · Repeat work with for, while, and iterable-friendly loops.
- Switch StatementsJavaScript · Match one value against several explicit cases.
- If and ElseJava · Choose which statements run by testing boolean conditions.
- SwitchJava · Select behavior from several known cases with Java switch.
- For and While LoopsJava · Repeat work with for, while, and do-while loops.
- Break and ContinueJava · Stop a loop early or skip the remainder of one iteration.
- If and ElseC · Choose code paths with clear C conditions.
- SwitchC · Select among discrete integer or character values with switch.
- LoopsC · Repeat work with for, while, and do-while loops.
- Break and ContinueC · Exit or skip loop iterations without obscuring control flow.
Functions and modules
- FunctionsPython · Define reusable Python functions with parameters, return values, and docstrings.
- Importing ModulesPython · Reuse standard-library and local Python code with import statements.
- Installing Packages with pipPython · Install, inspect, record, and remove third-party Python packages with pip.
- Virtual EnvironmentsPython · Isolate Python project dependencies with the built-in venv module.
Files and data
- Reading Text FilesPython · Read complete files or process text one line at a time with safe closing.
- Writing Text FilesPython · Create, overwrite, and append UTF-8 text files safely in Python.
- Working with PathsPython · Build, inspect, create, and list filesystem paths with pathlib.
- Reading and Writing JSONPython · Convert between Python values and JSON text or files using the standard library.
Next steps
- Try and ExceptPython · Catch expected Python exceptions, clean up resources, and raise clear errors.
- ClassesPython · Model data and behavior with Python classes, instances, and methods.
- Dates and TimesPython · Create, calculate, format, and parse dates and times with datetime.
- DebuggingPython · Find Python defects systematically with tracebacks, print checks, assertions, and pdb.
- ArrayListJava · Store a resizable sequence of objects with Java ArrayList.
- ExceptionsJava · Catch expected failures, clean up reliably, and throw clear Java exceptions.
- PackagesJava · Group related Java types, avoid name conflicts, and control access.
- Command-Line ArgumentsJava · Read text arguments supplied after a Java class name.
Values and operators
- Variables (let, const, var)JavaScript · Store values with clear names and choose the appropriate declaration.
- Working with StringsJavaScript · Create, combine, inspect, and transform text values.
- Working with NumbersJavaScript · Perform arithmetic, round results, and handle invalid numeric values.
- Booleans and ComparisonsJavaScript · Represent true-or-false state and combine reliable comparisons.
- Type ConversionJavaScript · Convert input explicitly and inspect values before using them.
Functions and objects
Arrays and DOM
Async and next steps
- PromisesJavaScript · Represent future results and consume them with then or async/await.
- Fetching Data from an APIJavaScript · Request JSON data and handle network and HTTP failures.
- JavaScript ModulesJavaScript · Split code into explicit files with exports and imports.
- Working with JSONJavaScript · Serialize JavaScript data and parse JSON received from storage or APIs.
Data and operators
- VariablesJava · Declare, initialize, update, and name values in Java.
- Primitive Data TypesJava · Represent numbers, characters, and true-or-false values with Java primitives.
- Working with StringsJava · Create, combine, compare, and inspect Java strings.
- OperatorsJava · Calculate values and build conditions with Java operators.
- Type CastingJava · Convert compatible primitive values and parse numbers from text.
- User InputJava · Read console input with Scanner and display formatted output.
- VariablesC · Declare, initialize, update, and name C variables clearly.
- Basic Data TypesC · Select basic C types and print values with matching format specifiers.
- OperatorsC · Calculate, compare, and combine values with C operators.
- printf and scanfC · Format output and read simple input while respecting types and buffer limits.
- Type ConversionC · Understand implicit conversions and use explicit casts only when they express a checked decision.
Methods and arrays
- MethodsJava · Place reusable behavior in named Java methods.
- Parameters and Return ValuesJava · Send values into methods and receive calculated results.
- ArraysJava · Store a fixed number of same-typed values in an indexed array.
- Looping Through ArraysJava · Visit array elements with indexed and enhanced for loops.
Object-oriented basics
- Classes and ObjectsJava · Model related data and behavior with Java classes and instances.
- ConstructorsJava · Initialize new objects into a useful state with constructors.
- Getters and SettersJava · Protect object state with private fields and controlled access methods.
- InheritanceJava · Create a specialized class from a more general Java class.
Functions and arrays
- FunctionsC · Define small reusable C functions with declarations and return values.
- Function ArgumentsC · Pass values and pointers with explicit size and mutation rules.
- ArraysC · Store fixed-size sequences and stay within array bounds.
- C StringsC · Represent, inspect, and copy null-terminated strings without overflowing buffers.
Pointers and memory
- PointersC · Use addresses and dereferencing while preserving validity and ownership.
- Pointers and ArraysC · Understand array-to-pointer conversion and bounded pointer arithmetic.
- StructsC · Group related values into named records and access them safely.
- Memory Allocation with mallocC · Allocate, resize, and release dynamic memory without leaks or invalid access.
Files and next steps
- Header FilesC · Share declarations between C source files with guarded headers.
- Reading and Writing FilesC · Open, process, and close files while checking every operation that can fail.
- MakefilesC · Automate a small multi-file C build with make.
- Undefined BehaviorC · Recognize operations for which the C standard imposes no requirements and prevent them.
Reading data
- Selecting DataSQL · Use SELECT and FROM to retrieve rows from a table.
- Selecting Specific ColumnsSQL · Return only the columns or expressions needed by a query.
- DISTINCTSQL · Remove duplicate rows from a query result with DISTINCT.
- Column and Table AliasesSQL · Give result columns and table references short, meaningful temporary names.
Filtering and sorting
- Filtering with WHERESQL · Use comparisons in WHERE to keep only matching rows.
- Combining ConditionsSQL · Build precise filters with AND, OR, NOT, and parentheses.
- Searching with LIKESQL · Match simple text patterns with LIKE and SQL wildcards.
- Sorting ResultsSQL · Sort query results by one or more expressions with ORDER BY.
- Limiting ResultsSQL · Return a small, predictable slice of a result set.
- Working with NULLSQL · Represent missing values and test them correctly.
Joins and relationships
- Primary KeysSQL · Give every row a stable, unique identity with a primary key.
- Foreign KeysSQL · Connect tables and protect references with foreign key constraints.
- INNER JOINSQL · Combine rows from related tables when both sides match.
- LEFT JOINSQL · Keep every left-side row even when no related row exists.
- COUNT, SUM, and AVGSQL · Summarize sets of rows with common aggregate functions.
- Grouping ResultsSQL · Produce one aggregate result for each category with GROUP BY.
Changing data
- Inserting RowsSQL · Add complete or partial rows safely with INSERT.
- Updating RowsSQL · Change existing values with UPDATE while protecting unrelated rows.
- Deleting RowsSQL · Remove selected rows safely and understand relationship constraints.
- Creating a TableSQL · Define a table with useful types, defaults, and constraints.