UNI-L / S / 01
Java for college
Core Java to Spring Boot.
Open the syllabusLima · University students · Live online, in English
You study in Spanish at a Lima university, between lectures, labs and a long ride across the city. The programming world you are heading into works in English: its documentation, its error messages, its code reviews. This page sets out what to learn beside your degree each year, why learning it in English pays off, how live classes fit a Lima timetable, and a statistics lesson on UNI's own open admission data that every computing student should meet once.
Live classes since 2020 · more than 10,000 learners worldwide · mentors who code with you, not at you
Short answer
Modern Age Coders teaches university students in Lima to program, live online and in English: Python from zero, data structures and algorithms, Git and GitHub, SQL, and then Java, web development or data science. Lessons are taught live over video by a mentor, either one to one or with fifteen to twenty classmates, at hours that fit around lectures, labs and the commute. Students write and test their own code every session, so they learn to reason about a problem instead of pasting an answer, and they learn the English vocabulary of the field as they go.
Start here
Python if you are new to code, data structures if you already program, and Git because every team expects it.

UNI-L / 01
From the first line to files, functions, classes and data. Right for first-year students in any faculty, and for engineers who met Python once and never felt sure of it.
Open the syllabus →
UNI-L / 02
Arrays, hash maps, trees, graphs and their costs, practised live. The core of a computing degree and of most technical interviews.
Open the syllabus →
UNI-L / 03
Branches, pull requests and reviews, so group projects stop living in folders called final_v3. Short, practical, and useful from the first semester.
Open the syllabus →Lima universities
Any undergraduate in Lima, whether in computing, engineering, economics or a field that has nothing to do with code yet. Universities set your degree; we teach programming beside it and are not connected with any university.
SUNEDU reported in September 2021 that Peru had 94 licensed universities, 46 public and 48 private, with "1 millón 100 mil de estudiantes universitarios". It has published no newer national total that we found, so the figure keeps its year. A large share of those students live in Lima Metropolitana, a city of 10,141,775 people in the 2025 census.
Lima's universities each run their own calendars. The Universidad de Lima, for example, starts its 2027-1 classes on Monday 29 March 2027, and UNMSM ran its 2026 admission in two stages, 2026-I and 2026-II.
Degrees in Peru are taught in Spanish, and they cover theory well. What students tell us they lack is volume of practice: writing hundreds of small programs, reading other people's code, and using the tools teams use.
Our classes add that practice, at an hour you choose, without asking you to travel. They do not replace a course, earn credits, or count towards a grade; your university alone decides those.
Year by year
Our suggested plan. Adjust it to your degree; a computing student moves faster through the first rows, an economics student may stop after data.
| Year | Focus | Course | You can show at the end |
|---|---|---|---|
| First | Python and Git | Python masterclass, Git and GitHub | Small tools in a public repository |
| Second | Data structures and algorithms | DSA masterclass | Solutions you can explain and time |
| Third | Databases and the web | MySQL, full stack web development | A working web app with a database |
| Fourth | Data or a second language | Data science, or Java | An analysis on real open data, or a Java service |
| Final | Depth in one direction | AI and ML, generative AI, or interview practice | A finished project you can present in English |
Python or Java
Python first for almost everyone; Java first only if your degree already teaches it in the first year or you are sure you want backend or Android work.
Python lets a first-year student write something useful in the first week: a script that renames files, a grade calculator, a chart from a CSV. The syntax gets out of the way, so attention goes to the logic.
It is also the language of data work in economics, engineering, the sciences and AI, which makes it useful to students well outside computing.
Java makes you state types and structure classes from the start. Many computing degrees use it for object-oriented programming courses, and students who meet it early find those courses easier.
If your curriculum switches to Java in the second year, learn Python now and take our Java course the semester before. The ideas carry over; only the syntax is new.
Whichever you choose, the habits matter more than the language: small programs every week, tests before trust, and code you can explain line by line in English. Students already deep in a computing degree will find the specific path on our Java course page for Peru and our Python course page for Peru.
Why English
Because the field already works in English, and because your English is likely to grow fastest in exactly these years. We teach only in English, and always live.
EF's English Proficiency Index 2025 gives Peruvians aged 18 to 20 a score of 469, in its low band, and those aged 26 to 30 a score of 559, in its high band. The same edition scores Lima city 555 and people working in IT 522.
These are different people, not the same people measured twice, so we read it cautiously: the years around university look like a time when English can grow fast. Practising it with code, where the vocabulary is narrow and repeated, is an efficient way to use that window.
Python's documentation, Stack Overflow answers, library READMEs and most video courses are in English. So are compiler errors, whatever the language of your operating system.
Mentors are based in India and teach in clear, steady English. They expect questions, repeat when asked, and help you say "this function returns a list of tuples" as naturally as you say it in Spanish.
| English | In a sentence | Spanish |
|---|---|---|
| to return | The function returns the average | devolver |
| an argument | Pass the file name as an argument | un argumento |
| to raise an exception | It raises a ValueError on empty input | lanzar una excepción |
| a pull request | Open a pull request for review | una solicitud de cambios |
| edge case | An empty list is an edge case | caso límite |
A Lima data lesson
UNI publishes anonymised data on its admission applicants as open data. We use it, in our own lesson, to teach a mistake that appears in research, business dashboards and student projects alike: comparing averages of groups whose members keep changing.
The Universidad Nacional de Ingeniería shares "Postulantes a los procesos de admisión" through Peru's national open-data portal, licensed ODC-By (Open Data Commons Attribution). The file Admision_UNI_2018-2_al_2020-1.csv covers four admission cycles, 2018-2 to 2020-1, in 30,358 rows.
Its data dictionary describes the id column as an anonymous identifier that "debería aparecer nuevamente con el mismo identificador" when a person applies more than once. That makes repeat applicants traceable without knowing who they are. We use only the ordinary exam route, rows with a score, and print only averages.
For each applicant we sort their attempts in time, then ask: how does the average score change from first attempt to second, third and fourth?
Version 1 does what most first analyses do. It puts every first attempt in one column, every second attempt in another, and compares the column averages.
import csv
from collections import defaultdict
from statistics import mean
tries = defaultdict(list)
with open("Admision_UNI_2018-2_al_2020-1.csv", encoding="utf-8") as data:
for row in csv.DictReader(data):
if row["modalidad"] == "ORDINARIO" and row["calificacion_final_postulante"]:
when = (int(row["año_postulacion"]), int(row["ciclo_postulacion"]))
tries[row["id"]].append((when, float(row["calificacion_final_postulante"])))
by_attempt = defaultdict(list)
for scores in tries.values():
for n, (when, score) in enumerate(sorted(scores), start=1):
by_attempt[n].append(score)
print("Applicants:", len(tries))
for n in sorted(by_attempt):
print("Attempt", n, "rows", len(by_attempt[n]), "mean", round(mean(by_attempt[n]), 3))It prints: Applicants: 11054, Attempt 1 rows 11054 mean 7.45, Attempt 2 rows 3888 mean 9.301, Attempt 3 rows 1312 mean 10.124 and Attempt 4 rows 305 mean 10.24.
Read naively, retakes help a lot at first and then barely at all: from attempt 3 to attempt 4 the average rises by only 0.116 points. But the columns contain different people. Only 305 applicants reach a fourth attempt, and they are not a random fifth of the 1,312 who made a third. Version 2 compares each person with themselves.
import csv
from collections import defaultdict
from statistics import mean
tries = defaultdict(list)
with open("Admision_UNI_2018-2_al_2020-1.csv", encoding="utf-8") as data:
for row in csv.DictReader(data):
if row["modalidad"] == "ORDINARIO" and row["calificacion_final_postulante"]:
when = (int(row["año_postulacion"]), int(row["ciclo_postulacion"]))
tries[row["id"]].append((when, float(row["calificacion_final_postulante"])))
for scores in tries.values():
scores.sort()
for k in (1, 2, 3):
pairs = [(s[k - 1][1], s[k][1]) for s in tries.values() if len(s) > k]
stayed = [s[k - 1][1] for s in tries.values() if len(s) == k]
gain = mean(b - a for a, b in pairs)
print(f"Attempt {k} to {k + 1}: {len(pairs)} people, same-person gain {gain:.3f}")
print(f" at attempt {k}: returners {mean(a for a, b in pairs):.3f}, leavers {mean(stayed):.3f}")It prints: Attempt 1 to 2: 3888 people, same-person gain 1.698, at attempt 1: returners 7.603, leavers 7.367, Attempt 2 to 3: 1312 people, same-person gain 1.043, at attempt 2: returners 9.081, leavers 9.413, Attempt 3 to 4: 305 people, same-person gain 0.856 and at attempt 3: returners 9.385, leavers 10.348.
| Step | Change in column averages | Average change for the same people | People in the pair |
|---|---|---|---|
| Attempt 1 to 2 | 1.851 | 1.698 | 3,888 |
| Attempt 2 to 3 | 0.823 | 1.043 | 1,312 |
| Attempt 3 to 4 | 0.116 | 0.856 | 305 |
Data: Universidad Nacional de Ingeniería, Postulantes a los procesos de admisión, 2018-2 to 2020-1, from the national open-data portal under an ODC-By licence. Every figure is our own, in points on the file's own score scale. The file also contains addresses and school names, which we neither use nor print. A "first attempt" here is the first within these four cycles; some applicants may have applied before 2018-2.
The last line explains everything. At attempt 3, the people who came back for a fourth try averaged 9.385; those who did not come back averaged 10.348. The column for attempt 4 is filled by weaker attempt-3 scorers, so its average looks flat even though those same people improved by 0.856 on average. Comparing crowds hid most of the change. This is the general rule: when membership changes between groups, compare matched pairs. It says nothing about whether anyone should retake an exam; that is a personal decision, and admission is decided by the university alone.
Around a Lima timetable
Better than a second commute. A class you join from your room, a campus library or a quiet corner at work costs only the hour itself.
Groups meet at a regular hour you choose when joining. One-to-one classes can move week by week around exams, lab reports and part-time work.
INEI found that 97.3% of people aged 19 to 24 in Peru were internet users in its survey for April to June 2026. A laptop and a stable connection are all you need.
Pause during finals and restart afterwards. Monthly plans have no long contract, so the plan can follow the semester.
Students who want something narrower than this page can go straight to a subject: Java for computer science students, Python for engineering students, the C++ course or SQL and data analysis. The national overview for students is coding courses for university students in Peru.
Class times
At hours you pick. Lima keeps the same clock all year, and so does India, so a slot never drifts.
| Lima | India | India date |
|---|---|---|
| 07:00 | 17:30 | Same |
| 09:30 | 20:00 | Same |
| 12:00 | 22:30 | Same |
| 17:00 | 03:30 | Next |
| 21:00 | 07:30 | Next |
Lima runs five hours behind UTC and never changes its clocks (tz zone America/Lima); India runs five and a half hours ahead of UTC. The gap stays at 10 hours 30 minutes.
Book in Lima time and the mentor sees the India time automatically. Many students choose early morning before lectures or a lunchtime hour on campus; late evening works too.
Progress
Our milestones for students, whatever their degree. Each one is something you can demonstrate, not a number of hours.
| Milestone | Usually by | You can |
|---|---|---|
| 1. Fluent basics | Month 2 | Write and debug small Python programs alone |
| 2. Versioned | Month 3 | Work through branches and pull requests |
| 3. Efficient | Month 6 | Choose a data structure and state its cost |
| 4. Persistent | Month 8 | Store and query data with SQL |
| 5. Analytical | Month 10 | Analyse a real file and avoid a misleading comparison |
| 6. Communicative | Month 12 | Present a project and its limits in English |
Milestone 5 is the UNI lesson: spotting that the attempt-4 column holds different people from the attempt-3 column.
You get a short note after each block on what to strengthen.
When the members of a group change, compare each member with themselves.
A flat average can hide a real change.
More courses
Three directions. Every course is live, in English, with a regular mentor, in a group or one to one.
UNI-L / S / 01
Core Java to Spring Boot.
Open the syllabusUNI-L / S / 02
React, Node.js and deployment basics.
Open the syllabusUNI-L / S / 03
SQL, schema design and administration.
Open the syllabusUNI-L / D / 01
Python, machine learning and deep learning.
Open the syllabusUNI-L / D / 02
From Python to deep learning and generative AI.
Open the syllabusUNI-L / D / 03
LLMs, retrieval and AI agents.
Open the syllabusUNI-L / F / 01
The maths behind lessons like the one above.
Open the syllabusUNI-L / F / 02
Proofs, calculus and matrices at degree level.
Open the syllabusUNI-L / F / 03
Building with AI assistants while keeping your own 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.
Before lectures
Early Lima hours meet the Indian evening.
Between or after
Midday and evening hours are possible; you choose.
1-on-1
A personal hour that moves around your exams.
Someone who knows your code and your goals.
Clear, steady, technical English, with patience.
Every solution is yours; the mentor reviews.
University groups never mix with school students.
Git, a terminal, an editor teams actually use.
A class of fifteen to twenty, or just you.
Student work
Students who keep going ship real tools. Some are below; the student labs collect more.

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
Plans are paid month by month. The price is set in US dollars and your card is billed in dollars; the soles amount on your statement depends on your bank's exchange rate that day.
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
From Google, in the words of students and parents.
★★★★★
"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
Lima students ask
No. All classes are live, online and taught only in English. Mentors keep a steady pace, adapt to your accent, and help you put into English what you already understand in Spanish.
No. We give no credits or grades and we are not connected with UNI, UNMSM, PUCP, the Universidad de Lima or any other university. Our classes are practice beside your degree.
With the Python masterclass and the Git course. Both start from zero. After about three months most students move on to data structures.
We make no job or salary promises. We teach skills that software teams use and help you build projects you can show and explain; how you use them is up to you.
Sometimes, and openly. You attempt problems yourself first, then compare with an AI suggestion and explain any difference. The aim is that you understand every line you submit.
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. For the mentor in India it is always 10 hours 30 minutes later: 09:30 in Lima is 20:00 there.
Yes. Plans are monthly. Pause during finals and restart when the semester allows.
You pay monthly by card in the US dollars shown here, and your bank handles the change into soles. Browsing from India shows rupees instead. Your first class is free of charge.
Some courses close with a completion certificate from us. It records your work; it is not a university credit or degree, and neither SUNEDU nor any university has a part in it.
Elsewhere on this site
More for university students in Peru.
The national guide for students.
Java alongside a computing degree.
Numerical Python for engineers.
Queries and analysis on Peruvian open data.
The Lima page for children and teenagers at bilingual schools.
Every course and city for Peru.
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 · Subjects and courses: AI agents course · 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 · Lima and Callao districts: Programación para niños en Ancón
Start here
The first class is a short problem at your level and a conversation about your degree and goals. The mentor then suggests a course and a format.
To look around first, read how we teach or open the course list.
WhatsApp us · +91 91233 66161 · connect@modernagecoders.com
Teaching is live, online and English-only, from mentors in India. Message us on WhatsApp, in English, for a fast reply.
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