PE / BASE / 01
Python masterclass
Zero to advanced Python for students and professionals.
Open the syllabusPeru · Software development · Live online, in English · 18 and over
Writing code is one step of software development, and rarely the longest. Someone has to agree what to build, keep track of versions, check the work, fix what users report and keep the system running for years. Peru's public sector has written those steps into a technical standard since 2004. This page uses that standard to show what a real software development course should cover, and how ours teaches it.
Teaching live since 2020 · 10,000+ learners in 25+ countries · your own mentor every week
The short answer
For adults and university students in Peru, Modern Age Coders runs software development classes that are live, online and in English. Starting from zero if needed, learners pick Java or Python, then work through data structures, databases, Git, testing and full stack web projects, practising the whole life cycle from requirements to maintenance rather than code alone. Every session has a mentor on video, either among fifteen to twenty classmates or one to one, on whichever days and hours you choose. We train people to reason about a system, not to paste code they cannot explain.
Start here
A language, the thinking underneath it, and the full stack around it. All three are for adults from 18 and begin from zero.

PE / SW / 01
For complete beginners aged 18 and over, 10 to 12 months. Object-oriented design, collections, testing and the habits of large codebases, in the language of many company back ends.
Open the syllabus →
PE / SW / 02
From zero to interview-ready over 10 to 12 months. Lists, trees, graphs and the reasoning behind them, including the graph ideas in the lesson on this page.
Open the syllabus →
PE / SW / 03
12 to 14 months for beginners from 18. React, Node.js and the basics of deployment: a complete system with a front end, a server and a database.
Open the syllabus →More than code
It is the whole life of a program: deciding what it should do, building it, proving it works, delivering it, and then living with it for years while it changes. A good course teaches each stage as a skill.
Turning a vague request into requirements someone can test. Learners practise asking the questions a client forgot: what happens when the network fails, who may see this field, how many users at once.
Design, small functions, clear names, version control with Git, and reviews where another person reads your code before it is merged. Most of the job is reading code, so we practise reading as much as writing.
Bug reports, fixes that do not break something else, upgrades of libraries, and documentation that the next developer can follow. Maintenance is where most software spends most of its life.
Many self-taught programmers in Peru reach the middle column and stop. They can write code that works on their laptop, but have never had to keep a program running after other people started depending on it. Our projects run long enough for that to happen: learners return to their own code months later, fix issues raised by the mentor, and discover why the documentation they skipped would have helped.
Our Spanish page, curso de desarrollo de software en inglés, covers the industry figures, secure software and competitive programming, with a lesson on classes that protect their own rules. Here we follow the process itself.
Peru's software standard
NTP-ISO/IEC 12207 is the Peruvian technical standard for the software life cycle, Peru's adoption of the international ISO/IEC 12207. The Presidency of the Council of Ministers (PCM) first made it compulsory for public bodies in 2004 and renewed the requirement with a newer edition in 2017.
| Date | Document | What it did |
|---|---|---|
| 13 May 2004 | INDECOPI committee resolution 0048-2004/CRT-INDECOPI | Approved NTP-ISO/IEC 12207:2004, 1st edition, as a Peruvian technical standard |
| 14 June 2004 | RM 179-2004-PCM | Made its use compulsory for every body in the National Informatics System, with 18 months to put it in place |
| 27 February 2017 | RM 041-2017-PCM | Made NTP-ISO/IEC 12207:2016, 3rd edition, on software and systems engineering, compulsory |
| 6 April 2022 | 011-2022-PCM/PE-ST.01, FONAVI technical secretariat | Approved a software development and maintenance methodology based on the 2016 standard |
| 31 March 2023 | RDE 304-2023-PRODUCE/PROINNOVATE | Approved a development and maintenance methodology aligned to the standard |
| 11 November 2024 | 366-2024-OGA-MDMM, Municipality of Magdalena del Mar | Approved a development and maintenance manual aligned to the standard |
Sources: RM 179-2004-PCM with the standard annexed (PCM, official PDF on gob.pe); gob.pe's own records for RM 041-2017-PCM and the three adoptions, read on 9 November 2026. The 2017 resolution is published only as a scanned image, so we quote its title and date and nothing more. The adoptions are examples we found, not a complete list.
The 2004 edition groups the activities of the software life cycle into "cinco procesos principales, ocho procesos de apoyo y cuatro procesos organizativos": five primary processes, eight supporting ones and four organisational ones. Each process is split into activities, and each activity into tasks.
You do not need to memorise a standard to be a developer. But it is a useful map. When a learner asks why they must write tests or keep a changelog, the honest answer is that those are named processes in the way serious organisations, including Peru's own public bodies, are expected to build software.
Software written for a ministry, a regional government, a municipality or a public programme in Peru is expected to follow a methodology built on this standard. Suppliers who sell to the state meet it in contracts, and the private companies that work with them often adopt the same vocabulary.
A developer who already speaks that vocabulary, configuration management, verification, validation, joint review, reads a Peruvian tender or a methodology manual without fear. That is a practical advantage, not a certificate.
The map, in plain English
Here are the seventeen processes of the 2004 edition, with their Spanish names, and where each one turns up in our courses. The mapping is ours.
| Group | Process (Spanish name in the standard) | Where learners meet it |
|---|---|---|
| Primary | Acquisition (adquisición), supply (suministro) | Writing and reading a project brief as client and as developer |
| Primary | Development (desarrollo) | Every course: design, code, tests |
| Primary | Operation (operación), maintenance (mantenimiento) | Deploying a project and fixing issues in it months later |
| Supporting | Documentation (documentación) | A README and code comments the mentor actually reads |
| Supporting | Configuration management (gestión de la configuración) | Git from the first month: branches, tags, versions |
| Supporting | Quality assurance (aseguramiento de la calidad) | Agreed coding rules and automatic checks |
| Supporting | Verification (verificación), validation (validación) | Tests that check the code; a demo that checks the need |
| Supporting | Joint review (revisión conjunta), audit (auditoría) | Code reviews with the mentor and with peers |
| Supporting | Problem resolution (solución de problemas) | An issue list, kept honestly, closed with a test |
| Organisational | Management (gestión), infrastructure (infraestructura) | Planning a sprint; setting up a working environment |
| Organisational | Improvement (mejora), human resources (recursos humanos) | A short retrospective after each project |
Process names and grouping: NTP-ISO/IEC 12207:2004, sections 5 to 7, as annexed to RM 179-2004-PCM. The 2016 edition reorganises the processes; we teach from the 2004 text because its public copy is readable and its structure is simple.
The supporting processes are where beginners are weakest and employers care most. Configuration management in particular sounds bureaucratic until the first time a project breaks because two people changed the same file, or because a part was built before the part it depends on. The lesson below is about the second of those.
A lesson from the course
In an order where nothing is built before the things it needs. That sounds obvious, yet it is how build tools, package managers and deployment scripts fail every day. Our learners meet the idea through a small system with five parts.
A small web application has five parts. The login needs the database and the password module. The password module needs the database. Reports need the database and the login. Emails need the login. The database needs nothing.
Version 1 builds the parts in alphabetical order, which is what happens surprisingly often when a script simply loops over a folder. It checks, for each part, whether everything it needs has already been built.
Before running it, the mentor asks: which parts will fail? Learners usually spot emails, since "emails" comes before "login" in the alphabet. Fewer spot that login fails too, because "login" comes before "passwords".
Version 2 asks Python's standard library for a correct order instead. Then it makes one innocent-looking change and shows what happens when no correct order exists.
needs = {
"login": {"database", "passwords"},
"passwords": {"database"},
"reports": {"database", "login"},
"database": set(),
"emails": {"login"},
}
built = set()
for part in sorted(needs): # alphabetical order
missing = needs[part] - built
if missing:
print("FAIL", part, "needs", sorted(missing))
else:
print("ok ", part)
built.add(part)It prints ok database, FAIL emails needs ['login'], FAIL login needs ['passwords'], ok passwords and ok reports. Two of five parts were built too early.
from graphlib import TopologicalSorter, CycleError
needs = {
"login": {"database", "passwords"},
"passwords": {"database"},
"reports": {"database", "login"},
"database": set(),
"emails": {"login"},
}
print("Build order:", list(TopologicalSorter(needs).static_order()))
needs["database"] = {"reports"} # a "small change" on Friday
try:
list(TopologicalSorter(needs).static_order())
except CycleError as err:
print("Cycle:", " -> ".join(err.args[1]))It prints Build order: ['database', 'passwords', 'login', 'reports', 'emails'] and then Cycle: login -> reports -> database -> login.
An order in which every part comes after everything it needs is called a topological order, and graphlib.TopologicalSorter finds one. Read the cycle line as "is needed by": the login is needed by reports, reports are now needed by the database, and the database is needed by the login. Nothing in that loop can be built first.
That one line on Friday, "the database should produce a report when it starts", was reasonable as a feature and impossible as a structure. The lesson is not about Python. Maven, Gradle, npm and every serious build tool do the same calculation, and the developer who understands it can read their error messages instead of fearing them. In the NTP-ISO/IEC 12207 vocabulary above, this is configuration management doing its job.
The system, code and output are ours, written for this page and run with Python 3 on 9 November 2026. The graphlib module is part of the Python standard library.
A route of our own
For a complete beginner who practises steadily, about a year to be useful in a junior role, and longer to be trusted alone. Here is the route we suggest; the mentor adjusts it to each learner.
| Months | Focus | Evidence at the end |
|---|---|---|
| 1 to 3 | One language properly: Java or Python | Small programs written from a spoken brief |
| 3 to 5 | Git, testing and code review | A repository with history, tests and reviewed changes |
| 5 to 7 | Data structures and algorithms | Problems solved and explained aloud, not only submitted |
| 7 to 9 | Databases and a server | An API with a real database behind it |
| 9 to 11 | A front end and deployment | A full system that someone else can use |
| 11 to 12 | Maintenance | Issues raised by the mentor, fixed without new breakages |
Our plan, not a guarantee. Learners with a university programming course behind them often start at month 3; those who practise less move more slowly. We promise no job or salary.
Either is a sound first language. Java is strict about types, which catches many mistakes early and suits learners heading for large company systems. Python is quicker to start with and dominant in data and automation.
Some arrive with Python already: MINEDU's Fábrica de Programadores pilot taught it to 1,000 students in their last two years of secundaria. Others learnt C++ for the OPI, whose 2025 final allowed only C++. We build on whatever a learner brings rather than starting them again.
Coding assistants are part of the job now, and our professional courses teach them. But they write code, they do not own it. A developer still decides what to build, reviews every change and answers for it in production.
So we teach the process first. Someone who understands build order, testing and review can use an assistant well. Someone who does not will ship its mistakes faster.
If you are at university in Peru, our page on programación para universitarios explains how these courses sit beside a Peruvian degree, and the Java course page in Spanish compares Java versions and frameworks in more depth.
Language of the classes
No. The classes are live and online, and English is the only language we teach in. The mentor, based in India, adjusts pace and wording to you.
Mentors talk at a steady pace, check understanding often, and restate an idea in other words when it does not land. Learners can ask in imperfect English and get a patient answer. Within a few classes most stop thinking about the language and think about the code.
Software development happens in English whether the team is in Lima or not: compiler errors, library documentation, issue trackers and code reviews. Learning the trade in English means learning its real vocabulary from the first day.
In EF's English Proficiency Index 2025, Peruvians working in IT average 522, and Lima as a city reaches 555, which EF places in its high band.
Those figures describe adults who already work with English most days. For a learner below that level, an English-taught course is also an English course in disguise, and the free first class is the place to test whether the gap is comfortable.
Class times
At whatever time you book. Neither Peru nor India changes its clocks, so a slot stays where you put it.
| Peru time | India time | Often chosen by |
|---|---|---|
| 06:00 | 16:30 | People who code before the office |
| 09:30 | 20:00 | University students with afternoon lectures |
| 13:00 | 23:30 | A lunchtime class |
| 20:00 | 06:30, next day | People who code after work |
Peru: UTC minus 5 throughout the year, no daylight saving since 1994 (tz database zone America/Lima). India: UTC plus 5:30. Difference: 10 hours 30 minutes on every date.
Book in your own clock and the system converts it for the mentor. Many working adults in Peru change their slot when a project at work gets busy; with one to one classes that is a message, not a negotiation.
Progress
Six milestones of our own. Each one is checked with work you can show, not with a multiple-choice test.
| Milestone | You can | The evidence |
|---|---|---|
| 1. Write | Solve a stated problem in one language without a template | A program written live, explained line by line |
| 2. Version | Work on branches, write clear commits, undo a mistake | A repository whose history tells the story |
| 3. Verify | Write tests that fail for the right reason | A test suite that caught a real bug |
| 4. Structure | Split a system into parts and order their dependencies | A diagram with no cycles, and a build that follows it |
| 5. Deliver | Deploy a system that others use | A running link and a short user guide |
| 6. Maintain | Change old code safely | Three fixed issues with no new failures |
Milestone 4 is the lesson on this page grown up. Once you see dependencies everywhere, many confusing errors start to make sense.
Milestone 6 is the one that impresses interviewers, because almost nobody practises it before their first job.
Every milestone leaves evidence in a public repository: commits, tests, diagrams and issues.
Our certificate of completion records the course. It is our own, not a Peruvian university degree or a state qualification.
More courses
Foundations for beginners, routes for teenagers who want to start early, and extra skills for working developers. All live, all in English.
PE / BASE / 01
Zero to advanced Python for students and professionals.
Open the syllabusPE / BASE / 02
Twenty-four classes to collaborate like a team member.
Open the syllabusPE / BASE / 03
SQL, design and administration of real databases.
Open the syllabusPE / TEEN / 01
From a first program to object-oriented Java.
Open the syllabusPE / TEEN / 02
Real Python for secundaria students, from zero.
Open the syllabusPE / TEEN / 03
Logic and algorithms, handy for the OPI.
Open the syllabusPE / PRO / 01
Branch strategies, reviews and releases for teams.
Open the syllabusPE / PRO / 02
Scripts and AI tools that remove repetitive work.
Open the syllabusPE / PRO / 03
Coding agents used with review, tests and judgement.
Open the syllabusHow it works
Any day, any time, flexible: choose a batch, or for a very personalised plan choose 1-on-1 at the hour that suits your family.
Early
Dawn in Lima is late afternoon in India, a quiet hour to start the day with code.
Late
Evening in Peru is the Indian morning, and our mentors teach then as well.
1-on-1
A personal plan and slot, moved when your work requires it.
Your hands on the keyboard; the mentor navigates.
Your code is read and discussed like a colleague's.
One person through the course, who knows your repository.
Calm pace, rephrased on request, room to think.
Code you return to, so maintenance is real.
Fifteen to twenty adults, or one to one.
Student work
A selection is shown below; more live in the student labs.

AI and ML
An AI nutrition coach that reads what you eat and works you toward a target.

AI and ML
A chatbot that answers mathematics and programming questions, built and deployed by a student.

AI and ML
An assistant that helps a young person recognise unsafe situations online.

Web app
A weather forecasting site with live conditions for any location.
Fees
A monthly plan. The price is fixed in US dollars and collected from your card in dollars; turning it into soles is your bank's job, at its own rate, so expect small differences on the statement.
Free first class
Free
no card required
Group batch
$100 USD
a month, eight live classes
One to one
$150 USD
a month, eight live classes
What families say
Google reviews left by learners and parents, quoted unchanged.
★★★★★
"The one step solution for my son. Modern Age Coders make learning coding so simple that kids love it. The teachers explain complex concepts clearly with practical exercises and interactive content."
Ria Mukherjee
Parent
★★★★★
"Modern Age Coders has been a game-changer for me. I struggled to grasp IT concepts and coding before joining, but their classes transformed everything. I can now confidently write complex programs with ease."
Samriddha Mondal
Student
★★★★★
"One of the most wonderful education centres out there. Education is not limited to school syllabus but focuses on skill development."
Vansh Agarwal
Student
★★★★★
"My child Dhairya is really enjoying the Modern Age Coders classes. This is his first online class and he eagerly looks forward to it. I can already see his improvement, and the teachers are very cooperative."
Sonam Oswal
Parent of Dhairya
★★★★★
"Modern Age Coders have wonderful teachers who teach in a clear, easy and practical way. The teacher boosts students' confidence and inspires them to learn without hesitation."
Sonu Goyal
Parent
★★★★★
"I highly recommend this computer coding class! The teachers are incredibly knowledgeable and passionate about coding."
Ritu Kedia
Parent
Questions from Peru
No. English is the only language of teaching, in every live online class. Our mentors in India speak steadily, check you have followed, put things another way when needed and get used to your accent quickly. Compiler messages and documentation are in English too.
Yes. Our Java, Python and full stack courses for adults all start from nothing. The first months teach one language properly before any framework.
Programming is writing code that works. Software development is the whole life cycle around it: requirements, design, version control, testing, delivery and years of maintenance. Peru's NTP-ISO/IEC 12207 standard names these as separate processes.
The Peruvian technical standard for software life-cycle processes, based on ISO/IEC 12207. RM 179-2004-PCM made it compulsory for public bodies in 2004, and RM 041-2017-PCM did the same for the 2016 edition in February 2017.
Either works. Java suits large company systems and catches type mistakes early; Python is quicker to begin and strong in data and automation. If you already know one from university, the Fábrica de Programadores or the OPI, we build on it.
About a year of steady practice for a beginner to reach junior level, in our experience; our main courses run 10 to 14 months. It depends on weekly practice, and we promise no job or salary.
Any day, any time, flexible: choose a batch, or for a very personalised plan choose 1-on-1 at the hour that suits your family. With India 10 hours 30 minutes ahead, a 20:00 class in Peru is 06:30 the next morning for the mentor.
Yes, in the professional courses, after the basics. We teach learners to review every change an assistant proposes and to stay responsible for the code, which is only possible once you understand it.
The fee section shows the monthly price in US dollars, the currency your card is charged in; your bank converts to soles. From India the page shows rupees. The first class is free, with no card.
Yes, our own certificate of completion after the final exam. It is not a university degree and not issued by any Peruvian authority; your repositories are the stronger proof.
No. We quote the standard and the resolutions from public sources to explain the process; we have no link with PCM, INDECOPI or any public body, and we do not certify compliance.
Read next
More for adults in Peru who want to build software.
The Spanish page: the industry, secure software and a lesson on class invariants.
Java versions, Spring Boot and the Java or Python question.
Courses that sit beside a Peruvian degree.
The index of our Peru pages.
The course behind the graph lesson.
One live class, start to finish.
Part of the guide: Every Peru page
More guides: Coding and AI classes in Peru · En español: clases de programación en inglés · Start here: English-medium coding in Lima · By age and stage: AI and coding for professionals · Exams, olympiads and school holidays: IB computer science tutor · Guides to choosing: An English-taught option to Crack The Code · Regions of Peru: Amazonas region · Cities: Arequipa: coding for every age · Lima and Callao districts: Programación para niños en Ancón
Start here
In the free class you solve a small problem with the mentor and talk about where you want to go. The mentor watches how you reason and how easily the English flows, then recommends a starting course.
Reading first? There is a full description of a live class, and the complete course list with syllabuses.
WhatsApp us · +91 91233 66161 · connect@modernagecoders.com
All teaching is live, online and in English, by mentors in India. Write to us on WhatsApp, in English, for the fastest answer.
A priority demo is a full class of about 45 to 60 minutes. After the class the mentor sends a written skill report and a personal learning roadmap on WhatsApp. If you enrol, the demo fee is adjusted against your first month's fee. Share your demo Order ID with us on WhatsApp and we take it off.
Book a priority demo