Practice
Learn by writing code
Reading teaches you the idea; practice makes it stick. Every problem has a hint if you get stuck and a full solution with the expected output.
SQL Practice
Beginner Beginner sets
- SQL Filtering and Sorting PracticePractise DISTINCT, ORDER BY, LIMIT, AND/OR/NOT, NULL checks and column aliases on a product catalogue.8 problems
- SQL Functions PracticePractise COUNT, SUM, AVG, MIN and MAX, string functions like UPPER and LENGTH, and filtering by date ranges.8 problems
- SQL GROUP BY PracticeSummarise data per group with COUNT, SUM and AVG, and filter groups with HAVING.3 problems
- SQL INSERT, UPDATE and DELETE PracticePractise changing data safely with INSERT, UPDATE and DELETE, and changing tables with CREATE TABLE and ALTER TABLE.7 problems
- SQL SELECT PracticePractise reading data with SELECT, choosing columns, calculating values, and filtering rows with WHERE.4 problems
Intermediate Intermediate sets
- SQL GROUP BY and HAVING PracticeGroup sales data by one or more columns, combine WHERE with HAVING, and filter groups by their totals, averages and counts.7 problems
- SQL JOIN PracticeCombine tables with INNER JOIN and LEFT JOIN, find missing matches, and summarise joined data.3 problems
- SQL JOIN Types PracticeGo beyond INNER and LEFT JOIN with RIGHT JOIN, FULL OUTER JOIN, self joins, cross joins, and queries that join three tables.7 problems
- SQL Subqueries, CASE and UNION PracticePractise subqueries, IN and EXISTS, ANY and ALL, CASE expressions, UNION and UNION ALL, and common table expressions (CTEs).10 problems
Advanced Advanced sets
- SQL Recursive CTEs, Views and Transactions PracticeGenerate series and walk hierarchies with recursive CTEs, save queries as views, and make changes safely with transactions and indexes.7 problems
- SQL Window Functions PracticeRank rows with ROW_NUMBER, RANK and DENSE_RANK, compare with group averages using PARTITION BY, and calculate changes and running totals with LAG, LEAD and SUM OVER.8 problems
Python Practice
Beginner Beginner sets
- Python Conditions PracticePractise if, elif and else, combined and nested conditions, and controlling loops with break, continue and pass.8 problems
- Python Dictionaries, Sets and Tuples PracticePractise counting and grouping with dictionaries, comparing groups with sets, and packing and unpacking tuples.9 problems
- Python Functions PracticePractise writing functions with parameters, return values and default arguments.3 problems
- Python Lists PracticePractise indexing, slicing, adding, removing and summarising list items.3 problems
- Python Loops PracticePractise for loops, while loops, range(), break and continue.3 problems
- Python Operators and Input PracticePractise arithmetic operators, operator precedence, type conversion and reading user input with input().8 problems
- Python Strings PracticePractise indexing and slicing strings, string methods like split, join, strip and replace, and formatting output with f-strings.8 problems
- Python Variables PracticePractise creating, updating and printing variables, and converting between types.3 problems
Intermediate Intermediate sets
- Practical Python PracticePractise real-world tasks, working with SQLite databases, CSV files, folders of files, JSON from APIs, and HTML pages, all without needing an internet connection.7 problems
- Python Files, Exceptions and Modules PracticePractise reading and writing files, handling errors with try/except, and using the json, datetime, re and collections modules.9 problems
- Python Functions Deep Dive PracticePractise default and keyword arguments, *args and **kwargs, returning several values, scope, lambda functions and recursion.10 problems
- Python OOP PracticePractise classes and objects, constructors, inheritance, polymorphism, encapsulation with properties, and abstract base classes.8 problems
C Practice
Beginner Beginner sets
Intermediate Intermediate sets
- C Arrays, Strings and Structures PracticePractise arrays, 2D arrays, C strings and the string.h functions, structs, files and bit manipulation in C.10 problems
- C Pointers and Memory PracticePractise pointers, pointer arithmetic, output parameters, malloc, realloc and free, and linked lists in C.8 problems
Advanced Advanced sets
Advanced C sets are being written.
C++ Practice
Beginner Beginner sets
- C++ Arrays, Vectors and Strings PracticePractise std::vector, std::array, std::string, 2D grids and structs with common collection tasks.7 problems
- C++ Basics PracticePractise C++ variables, data types, arithmetic operators, integer division, type conversion and formatted output.7 problems
- C++ Control Flow PracticePractise if/else, switch, for and while loops, nested loops, break and continue in C++.7 problems
- C++ Functions PracticePractise writing C++ functions, passing by value and by reference, overloading, default arguments, recursion and static variables.7 problems
Intermediate Intermediate sets
- C++ Object-Oriented Programming PracticePractise C++ classes, constructors, encapsulation, inheritance, virtual functions, abstract classes and operator overloading.6 problems
- C++ References, Pointers and Memory PracticePractise references, pointers, nullptr checks, pointer arithmetic and smart pointers in C++.6 problems
- C++ STL PracticePractise std::map, std::set, std::unordered_map, stacks, priority queues and the standard algorithms on real tasks.7 problems
Java Practice
Beginner Beginner sets
- Java Arrays and Strings PracticePractise Java arrays, 2D arrays, String methods, StringBuilder and wrapper classes on everyday tasks.8 problems
- Java Basics PracticePractise Java variables, data types, arithmetic, integer division, casting, string conversion and formatted output.7 problems
- Java Control Flow PracticePractise if/else, switch expressions, for and while loops, nested loops, break and continue in Java.7 problems
- Java Methods PracticePractise writing static methods, return values, pass-by-value behaviour, overloading, varargs and recursion in Java.7 problems
Intermediate Intermediate sets
HTML Practice
Beginner Beginner sets
Intermediate Intermediate sets
- HTML Forms and Tables PracticePractise building data tables and accessible forms with labels, the right input types and built-in validation. Each solution is rendered live, and the forms show what they would send.6 problems
- Semantic HTML and Accessibility PracticePractise semantic page structure, landmarks, accessible images, links and buttons, and built-in interactive elements. Each solution is rendered live.6 problems
Advanced Advanced sets
Advanced HTML sets are being written.
CSS Practice
Beginner Beginner sets
Intermediate Intermediate sets
- CSS Layout Practice: Flexbox, Grid and PositionPractise building real layouts with Flexbox, CSS Grid and positioning, from navigation bars to card grids and badges. Each solution is rendered live.6 problems
- Responsive CSS and Effects PracticePractise media queries, fluid sizes, custom properties, transitions and animations by styling given HTML. Each solution is rendered live; resize your browser window to test the responsive ones.6 problems
Advanced Advanced sets
Advanced CSS sets are being written.
JavaScript Practice
Beginner Beginner sets
Intermediate Intermediate sets
- JavaScript Arrays and Objects PracticePractise transforming data with map, filter, reduce and sort, working with objects, destructuring, Map, Set and JSON. Every solution has been run with Node.js and shows its real output.7 problems
- JavaScript Functions PracticePractise writing functions, default and rest parameters, arrow functions, callbacks and closures. Every solution has been run with Node.js and shows its real output.6 problems
TypeScript Practice
Intermediate Intermediate sets
DSA Practice
Beginner Beginner sets
Intermediate Intermediate sets
Python for Data Practice
Beginner Beginner sets
Intermediate Intermediate sets
React Practice
Beginner Beginner sets
Intermediate Intermediate sets
Advanced Advanced sets
Advanced React sets are being written.
Node.js and Express Practice
Advanced Advanced sets
Advanced Node.js and Express sets are being written.
Machine Learning Practice
Intermediate Intermediate sets
- Building Better Models PracticePractise ensembles, feature engineering, pipelines with mixed columns, cross-validation, hyperparameter tuning and imbalanced data with scikit-learn.7 problems
- Clustering, PCA, Text and Production PracticePractise k-means, PCA, anomaly detection, TF-IDF text classification, cosine similarity, saving models and drift checks.7 problems
Advanced Advanced sets
Advanced Machine Learning sets are being written.
Become a Better Programmer
Get new tutorials, coding challenges, and cheat sheets.