Learn to code for free from scratch
A clear path to get started without spending a cent: pick your first language, set up your environment and move forward with 100% free tutorials, code examples and videos. All in Spanish and explained step by step.
Where do I start?
The most common question. Short answer: pick one goal and one language, and don't drop it until you can build a small project on your own. Switching languages every week is mistake number one.
I want the easiest way to understand logic
Start with Python. Clean syntax, ideal for learning to think like a programmer.
Python tutorial →I want to build websites
Go with HTML + CSS + JavaScript and then PHP and databases.
Start with HTML →I want to build mobile apps
Learn Dart and then Flutter: a single codebase for Android and iOS.
Flutter tutorial →I'm studying a degree/course and need Java
A Java path from the introduction to OOP and databases.
Introduction to Java →The step-by-step roadmap
Set up your working environment
Before writing code you need an editor and the language tools. Choose based on your path:
- Install Visual Studio Code — the editor that works for almost everything
- The terminal from scratch — cd, ls, paths: the basis for everything else
- Install and configure Python
- Git and GitHub from scratch — version control, essential
- Install XAMPP — local web server with PHP and MySQL
- Install Android Studio — for apps and the Android emulator
- Install Flutter and the Dart SDK
Learn the fundamentals
Variables, conditionals, loops, functions and data structures. They are the same concepts in every language; only the way you write them changes.
- Python: variables · conditionals and loops · functions · lists · dictionaries
- HTML: the structure of a page
- CSS: styling · Flexbox · Grid (interactive)
- JavaScript: variables · functions · arrays · async/await
- JavaScript and the DOM: making the page interactive
- SQL: querying a database
- Dart fundamentals
- Java: operators · conditionals and loops · methods
- Java: variables · Strings · keyboard input · arrays · objects (OOP)
- Functions · Forms
- Concepts that apply in every language: debugging and reading errors, Big-O, data structures, recursion, HTTP and APIs.
- Try code instantly: JavaScript playground · Python playground.
Specialise in your area
Once you're comfortable with logic, go deeper:
- Web: APIs, XML, databases and back-end with PHP.
- Flutter apps: layouts, lists, navigation, asynchronous data, API connection.
- Advanced Java: intermediate concepts, advanced and databases.
- Extensions and plugins: create a plugin, an extension.
Practise with real projects
You learn by coding, not by reading. Apply what you've learned:
- Step-by-step guided projects: contact book in Java, analyse a CSV with Python, organise files with Python, to-do list in JavaScript, rock, paper, scissors, weather app with an API, guestbook with PHP and MySQL.
- Lesson-based course — video lessons organised by days.
- Project: pets plugin · cars plugin.
- Server and client with sockets.
- Recreate classic games: check out the games on the site for inspiration.
All the free content, by topic
Installation tutorials
Python
JavaScript
Tools
Fundamentals
Guided projects
Cheat sheets & playground
Web (HTML, CSS, JS, PHP)
Java
- Introduction
- Operators
- Variables
- Conditionals and loops
- Methods
- Strings
- Keyboard input (Scanner)
- Arrays
- Collections
- OOP (Objects)
- Exceptions
- Files (I/O)
- Threads and concurrency
- Modern Java
- Intermediate concepts
- Advanced concepts
- Databases
- Data structures
- Algorithms
- Regular expressions
- Testing with JUnit
- Consuming REST APIs
Frequently asked questions
Can you really learn to code for free?
Yes. All the software (editors, compilers, servers) is free, and here you have tutorials, code examples and videos at no cost. The Campus subscription is optional and only adds material organised by subject.
Which language do I learn first?
Python or HTML + CSS + JavaScript for most people. If your goal is mobile apps, Dart and Flutter. What matters is picking one and not switching until you finish a small project.
How much time do I need?
With 1 hour a day: in 2-3 months you'll build simple programs; in 6-12 months you'll be ready for real projects. Consistency matters more than long sessions.
Do I need maths?
Not to get started. Logic and motivation. Advanced maths is only needed in specific areas (3D, AI, cryptography).
Is my computer good enough?
Any machine from the last 10 years works. Only the Android emulator appreciates 8 GB of RAM.
Take the first step today
Don't wait for the "perfect moment". Open a tutorial, write your first line of code and come back tomorrow.