The right coding exercise depends on what you can already do. Someone learning their first Python statement needs a different starting point from someone who understands loops but struggles to solve problems without a tutorial.
These ten websites offer free coding practice in the browser, from guided lessons to short challenges. The list is organized by learning need, not ranked by popularity. We selected resources with a clear exercise format, a useful starting point, and official documentation or publicly accessible lessons that explain what they teach. This is a research-based guide, not a claim that we completed every course or tested every account feature.
Choose a starting point: Try Computer Science Circles for your first Python program, freeCodeCamp for a broader web-development path, SQLBolt for database queries, or CSS Diner for understanding selectors. Save Codewars for when you can already write small functions. You do not need to work through all ten.
1. Computer Science Circles: your first Python program
The University of Waterloo’s Computer Science Circles starts with a short program that prints a message. It mixes explanations with automatically graded exercises, including code writing, prediction and rearrangement tasks. That makes it a sensible first stop if a blank editor still feels intimidating.
Start here: Open “0: Hello!” and change a printed message before moving to the next lesson. The site’s guide says no installation is needed and use is free; an optional free account saves progress. Its limitation is scope: it introduces Python rather than providing a complete route through application development. Passing its tests also does not prove that your code is clear or well designed.
2. freeCodeCamp: a structured path beyond isolated exercises
freeCodeCamp combines lessons and projects, making it a better fit when you want a sequence to follow rather than a daily puzzle. Its official FAQ confirms that courses, projects and certifications are free.
Start here: Choose the introductory HTML material if your goal is making websites, then follow that track instead of opening several unrelated courses. The broader curriculum also covers programming topics beyond page markup. Some later work may use a code editor or other tools, so “starts in your browser” should not be read as a promise that every future project stays there. A certificate records progress; it is not a job guarantee.
3. CodingBat: small Java and Python functions
CodingBat is useful after you have met basic variables, conditions and functions. Its exercises ask for a small piece of code, then show the results against example tests. You can concentrate on one operation without setting up a whole application.
Start here: Pick Python Warmup-1 or Java Warmup-1. The official help describes the service as free and says all warm-up problems have solution code available. Try your own answer before reading it, then explain why the supplied solution works. The narrow Java/Python focus is a benefit for repetition, but it will not teach you how to assemble a full website or app.
4. Exercism: practice in a language you want to understand better
Exercism offers language tracks, practice exercises and free mentoring. It is especially useful when you know some programming but want to become more comfortable with the conventions of a particular language.
Start here: Join one language track and begin with its introductory exercise. The online-editor guide explains how to write code and run tests in the browser without a local installation. Human mentoring can add something an automatic pass/fail result cannot: discussion of how you approached the problem. Treat it as community support rather than an instant-response tutoring service. Track content and the amount of guidance can differ, so a complete beginner may prefer a more tightly guided introduction first.
5. Codewars: short challenges after the basics
Codewars uses community-written exercises called kata. You solve them in the browser and check your code against tests. It suits learners who can already write a small function and want repeated practice translating a description into working code.
Start here: Follow the official beginner guidance: choose Fundamentals and look for 8 kyu problems, the easiest rank. “Easiest” is relative to this platform, not a promise that a first-time coder will find it easy. Core practice is available free; Codewars Red is an optional paid feature package. If the problem statement is incomprehensible, return to a lesson on that concept rather than treating the rank as a judgment of your ability.
6. SQLBolt: learn a query, then use it
SQLBolt pairs short SQL explanations with interactive browser exercises. The sequence begins with reading data and later introduces joins, aggregates and changes to tables. It is a focused choice for someone who wants to ask questions of structured data rather than build an application first.
Start here: Read the introduction and follow “Lesson 1: SELECT queries 101.” Notice both the columns and rows that your query returns before adding constraints. The publicly accessible lessons let you practice against supplied data without installing a database. SQLBolt also explains an important limitation: database systems share core SQL concepts but differ in additional features and data types. Later, practice against the particular database you intend to use.
7. SQLZoo: apply SQL to varied tables
SQLZoo provides another route through SQL, with tutorials using country profiles, Nobel Prize winners and other sample tables. Its official site description identifies it as a free, hands-on tutorial.
Start here: Choose “0 SELECT basics,” then move to the World table exercises. Compared with repeatedly editing one familiar example, changing datasets asks you to read column names and understand the question again. That is the reason to try SQLZoo after an introductory SQLBolt session rather than completing both by rote. More involved assessments are available for confident learners. The menu spans beginner and advanced topics, so follow the tutorial sequence before jumping into window functions or self joins.
8. CSS Diner: understand what a selector selects
CSS Diner turns CSS selectors into a visual puzzle. You type a selector to pick the correct objects on a table, with the corresponding HTML available to inspect. The feedback connects a piece of syntax to the elements it actually targets.
Start here: Read the introductory rule example and attempt the first table. Hover over the displayed items to relate their appearance to the markup. This publicly accessible game is useful if your styles keep affecting the wrong elements. Its boundary is equally important: selecting an element is only one part of CSS. You still need separate practice with spacing, layout, responsive behavior and the cascade in an ordinary webpage.
9. Flexbox Froggy: make alignment visible
Flexbox Froggy asks you to move frogs to their lily pads by writing CSS. The original game is listed as free by its creator, Codepip, and teaches alignment, spacing and wrapping.
Start here: Begin with the opening alignment task and watch how a property changes the arrangement. Familiarity with basic CSS helps, but Codepip does not require it. This is useful when property names have become a memorization exercise without a mental picture. After a few levels, recreate a navigation bar or row of cards on a small practice page. The separate Flexbox Froggy Pro product is paid; it is not required for the original introduction.
10. Grid Garden: practice rows and columns
Grid Garden gives CSS grid a visual setting: you use grid rules to water carrots and deal with weeds. Codepip lists it as free and describes its focus as two-dimensional layout with rows, columns and grid areas.
Start here: Begin at the first garden task instead of skipping to a complex layout. Use it when you want to understand placement across a grid, following Flexbox Froggy’s introduction to arranging items. Neither layout method replaces the other. Finishing the garden is a starting point; the next useful test is building a simple page layout and checking what happens when its content or available width changes.
Turn a completed exercise into a useful skill
After solving a task, change one input, explain the result, and try a related example without the instructions in front of you. Keep a small record of the concept you practiced, not just your streak. Use a course for direction and a challenge site for repetition; collecting accounts is not the same as learning.
When you begin saving and sharing your own projects, our guide to file formats worth knowing before sharing your work can help explain the different roles of documents, images and structured data.
Resource details were reviewed on November 7, 2026. Features and course organization can change. The recommendations above are editorial judgments about learning fit, not measured rankings of teaching effectiveness.
