Your next step
Programming Courses
Choose a language, learn a skill or follow a career path. Beginners welcome.

TypeScript
Learn to make JavaScript code easier to maintain with types, interfaces and generics. Work through functions, classes, modules and practical TypeScript patterns.
Java developer
Build a foundation in Java, from your first console program to classes, inheritance, files and collections. Follow a structured path through data, conditions, loops and methods.
Build a Telegram bot with Python
Work through the creation of a Telegram bot in Python step by step. A focused skill course built around this practical task.
Python interview questions
Review common Python interview questions and the concepts behind them. Use this focused skill course to structure your preparation.
Python interview exercises
Work through coding exercises that can appear in Python interviews. Combine explanations with practice as you explore the tasks.
C++ developer
Start with C++ fundamentals and progress to classes, inheritance, polymorphism and modern memory management. Practise working with conditions, loops, arrays, functions and structures.
Go
Set up your Go environment and write your first program. Learn variables and types, conditions, loops, arrays and slices through the course modules.
Backend developer
Explore server-side development with JavaScript, Express and SQL. Learn how application logic, asynchronous code and databases work together.
JavaScript
Make web pages interactive with JavaScript. Learn conditions, loops, arrays, functions and objects, then work with the DOM and events and complete a mini-project.
Lua
Discover the fundamentals of Lua scripting: conditions, loops, tables and functions. Put the concepts together in the final test and mini-project.
Kotlin
Get to know Kotlin through conditions, loops, functions, lists and classes. Learn how null safety helps you handle missing values in your programs.
Writing readable Python code
Explore a guide to writing Python code, from the basics to a clear and readable style. Focus on how your code is written, not just what it does.
Algorithms
Understand what algorithms are, where they are used and how to apply them in programming. A focused introduction to thinking through a sequence of steps.
Passwords and encryption
Learn how passwords work, why encryption is used and how these ideas relate to protecting your data. An introduction to the concepts behind everyday digital security.
Python developer
Develop Python skills step by step: control flow, lists, functions, data structures and object-oriented programming. Learn to use modules and work with APIs.
CSS
Learn to style web pages with CSS. Explore selectors, text styling, layouts and responsive design, then apply what you learn to a website.
Frontend developer
Learn to build web interfaces with HTML, CSS, JavaScript and Vue. Move from page structure and responsive layouts to components, routing, state management and APIs.
HTML
Build the structure of a web page with HTML. Learn tags, tables, images, forms, semantic markup and metadata, then create a blog as your course project.
Python
Learn Python fundamentals, functions, modules and data handling. Explore objects and exceptions, then put your knowledge to work in a to-do list and a calculator project.
C#
Start programming in C# with variables, data types, operators and strings. Practise decisions, loops and methods before moving on to the practical module.
PHP
Explore PHP for server-side web development. Learn syntax, functions and arrays, then work with forms, files, databases, objects, sessions and cookies.
Generative AI
Learn to work with generative AI, from everyday interactions to prompt engineering and automation. Explore practical uses and more advanced applications of AI tools.
Git
Learn version control with Git. Practise essential commands, branches and remote repositories so you can keep track of changes and work with your code history.
SQL
Learn to query and organise relational data with SQL. Work with tables, filters, aggregate functions, joins and subqueries in a structured sequence.
Dart
Build a foundation in Dart with control flow, functions and collections. Learn the core ideas of object-oriented programming in the language.
Flutter
Learn to build mobile interfaces with Flutter. Explore widgets, state and routing, forms, native features, media and animation, with a module on publishing.
C++
Get started with C++ through data types, conditions, loops, arrays, pointers and functions. A focused introduction to the core building blocks of the language.
QA engineer / software tester
Learn how to test websites, mobile apps and APIs. Explore test design, documentation, tester tools and SQL, then prepare for interviews and a final project.