The order a working engineer would teach you in: one language learned properly, the command line, version control, a database, then the data structures and algorithms every technical interview assumes, and finally code that other people can read. Free, hands-on, in your browser.
Overview
Syllabus
- Learn Python — Variables, control flow, functions, collections, then classes and objects, in Python. Everything after this step is written in a language, so this is the one to learn deeply rather than quickly. Prefer Java, C++ or Go? Each has a full journey on Coddy and the later steps ship in all of them.
- Learn Linux and the Command Line — Navigate the filesystem, manage permissions, chain commands with pipes, read logs and write a first shell script. Servers, containers, CI pipelines and most developer tools are driven from a terminal.
- Learn Git & Version Control — Commits, branches, merges, conflicts, remotes and undoing mistakes safely. Every job, every open-source project and every take-home assignment lives in a Git repository; learning it right after the terminal means every later exercise happens the way real work does.
- Learn SQL — Select, filter, join, group and aggregate real tables. Nearly every application is a thin layer over a database, and a software engineer who cannot read a query cannot debug the product they work on.
- Stack - Data Structures Series #1 — Stack, queue, linked list, binary tree and hash table, each implemented from scratch and then used to solve problems. This is the vocabulary of every technical interview and the reasoning behind every performance decision in real code.
- Recursion Challenges - Master The Recursive Thinking — Recursion first, then the classic sorts - bubble, selection, insertion, merge and quick - written and compared. You learn why an algorithm is fast, not just that it is, and see the same ideas animated in Coddy's algorithm visualizer.
- Clean Code - Write better code using Python — Clean code principles, an object-oriented project built end to end, and a bank of coding problems to solve without a tutorial. Readable code is the skill code review actually tests, and solving unfamiliar problems is what an interview actually measures.
Courses
-
Master Quick Sort, one of the fastest sorting algorithms in practice. Build the partition step, write the full recursive sort in your language of choice, analyze its complexity, and practice with coding challenges.
Prerequisites:
- Knowledge of a programming language of your choice.
-
Master Selection Sort, one of the simplest sorting algorithms. See how it works step by step, build it from scratch in your language of choice, analyze its complexity, and practice with coding challenges.
Prerequisites:
- Knowledge of a programming language of your choice.
-
Master Merge Sort, the classic divide and conquer algorithm. Build the merge step, write the full recursive sort in your language of choice, analyze its O(n log n) complexity, and practice with coding challenges.
Prerequisites:
- Knowledge of a programming language of your choice.
-
In this course, you will learn about the Hash Table data structure, create a Hash Table from zero using your preferred language, and practice coding challenges with it!
Prerequisites:
- Basic object oriented programming knowledge in a language of your choice
-
In this course, you will learn about the Linked List data structure, create a Linked List from zero using your preferred language, and practice coding challenges with it!
Prerequisites:
- Basic object oriented programming knowledge in a language of your choice
-
In this project, you will create a User Class and practice your object oriented programming skills in a programming language of your choice!
Prerequisites:
- Knowledge of OOP in any language of your choice
-
In this course, you will learn about the Binary Tree data structure, create a Binary Tree from zero using your preferred language, and practice coding challenges with it!
Prerequisites:
- Basic object oriented programming knowledge in a language of your choice
-
Simple yet powerful algorithm. Learn how to efficiently arrange elements, understand time complexity, and enhance your sorting skills. Dive in now!
Prerequisites:
- Knowledge of a programming language of your choice.
-
In this course, you will learn about the Queue data structure, create a Queue from zero using your preferred language, and practice coding challenges with it!
Prerequisites:
- Basic object oriented programming knowledge in a language of your choice
-
In this course, you will learn about the Stack data structure, create a Stack from zero using your preferred language, and practice coding challenges with it!
Prerequisites:
- Basic object oriented programming knowledge in a language of your choice
-
Put your programming problem solving skills to the test using the exercises with different difficulties in this course. Designed for coders with some prior knowledge of the basic syntax in any programming language.
Prerequisites:
- Intermediate knowledge of programming
- Being comfortable with conditional statements, loops, functions and lists
- Having knowledge of problem solving and algorithmic thinking
-
Recursion is an important concept in computer science and a very powerful tool in writing algorithms. In this course, you will use recursion to solve challenges from beginner to advanced. In the end, you will ace this topic.
Prerequisites:
- Good knowledge in any programming language
-
Everything About Bubble Sort
Prerequisites:
- Fundamentals
- A computer and internet connection is required
-
This course will give you the tools to write better code using Clean Code principles with Python language, Happy Coding!
Prerequisites:
- Python fundamentals
- Python object oriented programming
-
A free, interactive online Python course. You write code on every lesson, get AI hints when you're stuck, and earn a free certificate when you finish.
- Master Python syntax, variables, types, and control flow
- Write reusable functions and work confidently with lists, dicts, and sets
- Build object-oriented Python programs with classes, inheritance, and methods
- Read, manipulate, and structure real data the Pythonic way
-
A free, interactive Linux course for beginners. You type real commands into a browser-based Linux terminal on every lesson - files, permissions, pipes, bash - with a free certificate when you finish.
- Navigate the filesystem and manage files from the shell
- Read, search, and transform text with grep, sed, and pipes
- Compose commands with redirection and pipelines
- Use environment variables, permissions, and processes confidently
-
A free, interactive online SQL course. You run real SQL queries against live tables on every lesson, with AI hints when a query doesn't return what you expect, and a free certificate when you finish.
- Write SELECT, JOIN, and aggregate queries on real data
- Filter, group, and sort with WHERE, GROUP BY, and HAVING
- Compose subqueries and CTEs for complex questions
- Design simple relational schemas with the right keys and types