Skip to content
Home/Netherlands/Amsterdam/Amsterdam-Zuidoost
Zuidoost, Amsterdam

Coding classes in Amsterdam-Zuidoost, where the neighbourhood with the cheaper homes has the better-off residents

What are the best coding classes in Amsterdam-Zuidoost?

Coding classes in Amsterdam-Zuidoost reach 95,385 residents (1 January 2026) across 22.08 square kilometres, in a district that has been a stadsdeel since 1987. Amstel III and Bullewijk has an average dwelling value of 211,000 euro and an average income of 37,400 euro. Gein, a few minutes down the line, has 344,000 euro and 30,600 euro. Cheaper homes and better-off people, in that order, which happens because the word dwelling is doing two different jobs. Modern Age Coders teaches live online in English across the whole district, ages 6 to 67, first lesson free, then USD 100 monthly in a group of five to ten or USD 150 one to one.

In Amstel III and Bullewijk the average home is valued at 211,000 euro and the average resident earns 37,400. In Gein the average home is 344,000 and the average resident earns 30,600. Cheaper housing, richer people. That combination is not a puzzle about the property market. It is what happens when one column called dwellings holds rented studios averaging 1.2 occupants in one row and family houses averaging 2.0 in the next, and somebody takes the average anyway.

Facts last verified 9 September 2026. Teaching is online; no Amsterdam-Zuidoost branch is claimed.

Course picks for Amsterdam-Zuidoost

Four courses for a district of families and a district of twenty-somethings, side by side

A groep 5 child in Gein who has finished every game in the house and wants to make one, a teenager in the Bijlmer with an app in mind and no idea where an app comes from, a student near the AMC who needs Python to stop being a chore, and an adult in Holendrecht handed a set of AI tools at work with no instructions attached: four doors, and the first hour of each is free.

Browse the course atlas for more than one hundred options and use the coding roadmap to check prerequisites.

The four we are known for

Python, AI, vibe coding and agentic coding

These run underneath everything above. Every one is live and online, placed by ability rather than by age, and the first class is free.

Zuidoost today

Ninety-five thousand people, and the oldest stadsdeel in the city

Zuidoost was established as a stadsdeel in 1987 with a directly elected stadsdeelraad, which makes it the longest-standing of the eight. It counted 95,385 residents on 1 January 2026 across 22.08 square kilometres. Unlike several of its neighbours, its published population is current, so the figures on this page sit in the same year as the wijk figures below them.

Four areas since 2022, and a district rebuilt before that

Since 24 March 2022 the district has been divided into four areas: Bijlmer-West, coded GT21, Bijlmer-Centrum GT22, Bijlmer-Oost GT23 and Gaasperdam GT24. After 19 March 2014 Zuidoost continued to exist as a stadsdeel while the form of government attached to it changed. From the 1990s onward a large part of the Bijlmermeer was extensively renewed, which is why so much of the housing here is younger than the district. What that kind of rebuilding does to a place that keeps its name is the argument of the Amsterdam-West page in this series, and this page leaves it there. The district also holds Venserpolder, the Amsterdamse Poort, Ganzenhoef, Geerdinkhof, Kantershof, Holendrecht, Nellestein, Reigersbos and Gein, along with Station Amsterdam Bijlmer ArenA, the Johan Cruijff ArenA and the ArenAPoort shopping area.

A district at 4,320 to the square kilometre

95,385 residents over 22.08 square kilometres gives about 4,320 people to the square kilometre, which this page is working out rather than quoting. That is thin by Amsterdam standards, and the reason is visible in the two wijken below: one of them is a converted business park with 859 people to the square kilometre.

Two wijken, chosen for how unlike they are

Amstel III and Bullewijk, and Gein. They hold 16,518 residents between them, and on almost every published measure they point in opposite directions. That is what makes them useful rather than what makes them unusual.

What is not computed here

No Zuidoost average of income, dwelling value, household size or age. Two wijken cannot produce one, and the point of this page is that averaging across places this different would produce a number describing neither of them.

Where the learners are

One column name, two entirely different objects

Both of these are wijken of Amsterdam-Zuidoost and both are described by the same set of published columns. Populations are 2026, households and housing are 2025, incomes are 2024.

The same fields, filled in for two very different places
What the column is calledAmstel III and BullewijkGeinDoes the name mean the same thing?
Residents5,44011,078yes
Households, average size2,805 at 1.2 people5,550 at 2.0 peoplethe unit differs: 1.2 is barely a household
Single-person households2,225, 79 percent2,550, 46 percentno, these are different living arrangements
Dwellings2,5955,147no: rented units against family houses
Rented, and owned2,595 rented, 100 percent, and 0 owned3,037 rented, 59 percent, and 2,110 ownedno, and the zero is the clue
Average dwelling value211,000 euro344,000 euronot comparable, for the reason above
Average income per resident37,400 euro30,600 euroyes, and it runs the other way
Under fifteen, and sixty-five plus235 and 601,605 and 2,445yes, and the gap is enormous
People per square kilometre8596,117yes, seven times apart

Amstel III and Bullewijk holds seven buurten, among them the AMC, Hoge Dijk and four numbered stretches of Amstel III itself, on 500 hectares of land. Gein holds four, named Gein 1 to Gein 4, on 183 hectares. The rest of the district, including Venserpolder, Holendrecht, Reigersbos, Nellestein, Ganzenhoef, Geerdinkhof and Kantershof, is named and given no invented figures. Placement here follows what a learner can already do, so a child from Gein 3 and a teenager from the Bijlmer meet in one group when they are working at one level.

Verified local facts

Every figure, its source, its year, and one arithmetic check

One district entry, two wijk pages, and a subtraction that shows the two places are not built the same way.

The district, from its entry

Het stadsdeel telde op 1 januari 2026 95.385 inwoners; het heeft een oppervlakte van 22,08 km2; Zuidoost werd in 1987 ingesteld als stadsdeel met een rechtstreeks gekozen stadsdeelraad; na 19 maart 2014 bleef Zuidoost als stadsdeel bestaan, maar veranderde de daaraan verbonden bestuursvorm; since 24 March 2022 it is divided into Bijlmer-West (GT21), Bijlmer-Centrum (GT22), Bijlmer-Oost (GT23) and Gaasperdam (GT24); vanaf de jaren negentig werd een groot deel van de Bijlmermeer ingrijpend vernieuwd.

Amstel III and Bullewijk

5,440 residents (2026); 2,805 households averaging 1.2 (2025), of which 2,225 hold one person, 79 percent; ages 235 under fifteen at 4.32 percent, 1,755 aged fifteen to twenty-five at 32 percent, 3,090 aged twenty-five to forty-five at 57 percent, 295 aged forty-five to sixty-five at 5.4 percent and 60 aged sixty-five and over at 1.1 percent; 527 hectares total, 500 land and 28 water; density 859; 2,595 dwellings, all 2,595 of them rented at 100 percent and none owned; average value 211,000 euro; average income 37,400 euro (2024); seven buurten.

Gein

11,078 residents (2026); 5,550 households averaging 2.0 (2025), of which 2,550 hold one person, 46 percent; ages 1,605 at 14 percent, 1,300 at 12 percent, 2,960 at 27 percent, 2,760 at 25 percent and 2,445 at 22 percent; 192 hectares total, 183 land and 9 water; density 6,117; 5,147 dwellings, 3,037 rented at 59 percent and 2,110 owned at 41; average value 344,000 euro; average income 30,600 euro (2024); four buurten, Gein 1 to Gein 4.

A subtraction worth doing

Multiply 2,805 households by an average of 1.2 and you account for about 3,366 of Amstel III's 5,440 residents. Even at 1.25, the top of what the published 1.2 can round from, you reach only 3,506. So at least 1,900 residents there are not inside a private household at all. Gein's 5,550 households at 2.0 account for essentially all of its 11,078. Why a rounding bound is the right test is the Amsterdam-Noord page; here it is simply used.

What is not claimed

This page does not say what those 1,900 residents live in. The published figures name no institution, and a district holding a large academic hospital and a great deal of recently built rented accommodation offers more than one candidate. The gap is computed, its size is stated, and its cause is left alone.

Modern Age Coders has no connection to the stadsdeel, the city, the hospital or any school named here and claims none. The district density of about 4,320, the two-wijk total of 16,518 and the household arithmetic above are this page multiplying and subtracting published numbers, and are labelled as arithmetic where they appear.

Signature project

Cheaper homes, richer residents, and a column that lied by keeping its name

Two wijken, one schema, and an inversion that disappears the moment you ask what a row actually represents.

1. Notice the relationship running backwards

Across most neighbourhoods, higher average incomes sit beside higher average dwelling values. Here it inverts: 37,400 euro of income against 211,000 of dwelling value in one wijk, and 30,600 against 344,000 in the other. An inversion is not a mystery to be explained. It is a prompt to check whether the two columns are measuring what their names say.

2. Ask what one row is

In Amstel III every one of the 2,595 dwellings is rented and none is owned, average household size is 1.2, 79 percent of households are one person, and only 60 residents in the whole wijk are over sixty-five. In Gein, 41 percent of homes are owned, households average 2.0 and 2,445 residents are over sixty-five. The word dwelling is covering a rented unit for one young adult in the first case and a family house in the second.

3. Stop averaging across the boundary

Once the rows are different kinds of object, an average over them is a statement about the mixture rather than about value. The fix is not a better average. It is to split the column by type, report each separately, and say plainly that a district-wide figure would answer no question anybody has.

What each figure is really telling you
ReadingWhat it looks like it saysWhat it actually saysThe check that catches it
Homes are cheaper in Amstel IIIhousing is more affordable therethe units counted are smaller and all rentedlook at tenure: 100 percent rented, 0 owned
Residents earn more in Amstel IIIit is the more prosperous neighbourhoodits residents are 89 percent aged fifteen to forty-fivelook at the age profile, not the average
Gein has more expensive homesit is the wealthier place41 percent of its homes are owner-occupied family housingcompare tenure before comparing value
A district average of eithera summary of Zuidoosta weighted statement about which type dominatesask whether the rows are the same kind of thing
1.2 people per householdsmall householdsat least 1,900 residents outside private households entirelymultiply households by size and compare with population

Before you average a column, check that the rows are the same kind of thing

A schema is a promise that everything in a column is comparable, and it is a promise nothing enforces. The column header says dwellings, and in one row that is a rented studio holding one person and in the next it is a house holding a family, and the header says dwellings in both. Take the average and you have produced a number that moves when the mixture moves, whether or not a single price has changed. This is the quietest way that data goes wrong, because nothing is missing, nothing is stale, nothing is mistyped and every individual value is correct. The examples multiply as soon as you look. Average order value in a business that sells a five pound accessory and a five thousand pound machine tells you about the sales mix. Average session length across a site with bots and humans on it tells you what share are bots. Average salary across full-time and part-time staff moves when hiring patterns move. Average response time across cached and uncached requests measures the cache hit rate. In every case the fix is the same and it is unglamorous: find the type, split the column by it, report the parts, and only then decide whether any combined figure is worth publishing. The tell is often an inversion, a relationship that everybody expects running the wrong way round, as it does here. An inversion almost never means the world is surprising. It means two things sharing a column name are not the same thing, and the mixture has changed between the rows.

Reliable pipeline

Five habits for a column that holds more than one kind of thing

Order values, session lengths, salaries, response times, ticket resolution: every one of them is routinely averaged over rows that are not comparable. Practised on two neighbourhoods where cheaper housing sits beside higher incomes.

Averaging only where averaging is allowed
StageRuleWhat it preventsWhat it gives you
Ask what one row isWrite a sentence describing a single row before touching the columnA schema trusted because it has a nameThe type, which everything else depends on
Look for a type fieldFind the column that already distinguishes the kinds, or add oneTwo populations blended invisiblyThe ability to split later without re-collecting
Split before summarisingReport the average per type, then decide about a combined figureA number that moves with the mixtureFigures that mean what they appear to mean
Treat inversions as evidenceWhen a relationship runs backwards, suspect the definitions firstA surprising story told about a schema faultA fast route to the actual problem
Cross-check the totalsMultiply an average by its count and compare with the wholeA category quietly covering part of the populationA size for what the column is missing

For younger learners

The average price of everything in a shop that sells sweets and bicycles. The children compute it, notice it describes nothing on either shelf, and work out the rule about when averaging is allowed at all.

For teenagers

The two wijken in Python, with a type field on every row and an average function that refuses to run across mixed types unless it is told to. The stretch: produce the inverted result on purpose, then write the two sentences that explain it away.

For adults

A real average from work. Adults very reliably find a mixture inside it, a change in that mixture that moved the figure, and a meeting where the movement was explained as something else entirely.

The district population, area, formation, governance, the four areas of 2022 and the renewal of the Bijlmermeer come from the stadsdeel entry, with the population dated 1 January 2026. Every population, household, age, area, density, dwelling, value, tenure and income figure comes from the national statistics office page for the wijk named beside it, with 2026 populations, 2025 household and housing figures and 2024 incomes. The district density of about 4,320, the two-wijk total of 16,518, the 89 percent aged fifteen to forty-five and the household arithmetic showing at least 1,900 residents outside private households are this page multiplying, dividing and subtracting published numbers, and are labelled as arithmetic wherever they appear.

Learning ladder

From a shop selling sweets and bicycles to an average that refuses to cross a type

The rung is settled in the free hour by what the learner can already do, and never by which part of the district the address falls in.

Ages 6 to 10

What is the average thing in this shop?

Children compute an average that describes nothing on either shelf.

Coding for KidsRoblox Game Coding for Kids
Ages 11 to 13

Describe one row out loud

Learners say what a single record is before they do anything to the column.

Python and AI for KidsMaths Through Coding
Ages 14 to 18

Type fields and averages that refuse

Teenagers build a summary that will not run across mixed kinds without being told to.

App Development for TeensAI and Machine Learning for Teens
Ages 18 to 67

The mixture inside the metric

Adults take a real average from work and find the two populations hiding in it.

Python Automation CourseAI Tools Mastery Course
Coding and AI

An AI will explain why cheaper homes sit beside higher incomes. Why should a teenager in Zuidoost distrust the explanation?

Because the inversion is not a fact about the housing market; it is a fault in a column header.

Give a model the two rows and ask why one neighbourhood has cheaper housing and better-off residents, and it will produce something about young professionals, about regeneration, about proximity to work. Each of those is a reasonable sentence and all of them are answers to a question that should have been refused, because the two dwelling figures are averages over different kinds of object: 2,595 rented units with no owner-occupation at all in one wijk, and a stock that is 41 percent owned family housing in the other. Nothing in the numbers announces that. The column is called dwellings in both rows.

So the learner practises describing one row out loud before touching the column, and then writes the version that enforces it, with a type on every record and an average that will not silently cross one. It is a small amount of code guarding against the most invisible failure in the whole subject, because nothing is missing and every value is correct. A fourteen-year-old in Gein who has taken an inverted result apart will be the person at twenty-nine who asks what a row is before agreeing that average order value has fallen. Models will keep producing the explanation on request. Refusing the question stays a person's job.

The case for a child in Amsterdam-Zuidoost learning to code in 2026 is therefore not about property. It is that averages are the most trusted and least examined operation in working life, that they are only valid over things of one kind, and that two neighbourhoods a few minutes apart with the price and the income running opposite ways make the rule impossible to forget. The longer argument is in why learning to code still repays a child in 2026.

Delivery

Live classes from the Bijlmer out to Gein

Zuidoost is spread across twenty-two square kilometres and served by a metro that runs north to south, which is fine until the class a family wants is not on the line at all.

Twenty-two square kilometres, and nothing to cross

The class happens wherever the laptop already is, in Gein, in Holendrecht or in the middle of the Bijlmer, at one hour that repeats. In a district this size on one metro line, that removes the part families actually struggle with.

Four Dutch words, and the rest in English

Groep. Havo. Vwo. Profielkeuze. Those stay as the school prints them, and everything built around them is English. A child should not have to work out which term the teacher means before working out the lesson.

The opening hour costs nothing and settles everything

What the learner can do is established by giving them something to do. The course is then whatever that answer points at, and a weekly time is agreed on the spot. Card details are not collected at any stage of it.

Grouped by what they can do, and by nothing else

Two learners working at one level belong together whether one is in Gein and the other in Venserpolder. Two at different levels do not belong together, and no shared postcode changes that.

Eight lessons in most months

Two a week at a repeating hour. Because Noord-Holland sits in the regio Noord holiday block, the weeks that will be lost to it are known in advance, and they are put into the schedule rather than discovered halfway through a term.

A time difference that only one side causes

The Indian clock has not moved since it was set. The Dutch one does, twice a year, which is why the teacher is three and a half hours ahead for part of the year and four and a half for the rest. Both settings leave the same usable window open.

Two neighbourhoods with almost no age overlap

Amstel III and Bullewijk has 235 residents under fifteen and 60 over sixty-five. Gein, in the same district, has 1,605 and 2,445. One is a place almost entirely of people between fifteen and forty-five, 89 percent of it; the other has a full age range. A district that looks average in aggregate is nothing of the kind on the ground, which is precisely why a group formed on ability from across the world beats one formed from whoever happens to live nearby, at every age up to sixty-seven.

Fees

The fee, in dollars, everywhere in the district

On the page rather than kept back for a call.

First classUSD 0

A full lesson with a real task, a level and a named next course.

Group tuitionUSD 100

Per month, normally eight lessons, five to ten learners placed by ability.

Private tuitionUSD 150

Per month, normally eight lessons, one learner with one teacher.

There is one international rate, quoted in dollars, with no euro edition, so an address in Gein is charged exactly what an address near the AMC is. Nothing is paid until the free lesson has settled a course and an hour, and payment is arranged over WhatsApp afterwards. Pausing, switching plan and missing a week are all described on the pricing page.

Reviews

Six Google reviews, kept exactly as the people who left them wrote them

Rated 4.9 across 547 Google reviews. These are real reviews, reproduced as written.

★★★★★

"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

Free placement class

Tell us the level, not the neighbourhood

The first task might be the average price of everything in a shop that sells sweets and bicycles, an average that refuses to run across two types, or a metric at work that moved because its mixture did.

+31

FAQ

Amsterdam-Zuidoost coding class questions

The district, two very unlike neighbourhoods, one inverted result, the teaching and the terms.

How can a neighbourhood have cheaper homes and better-off residents at the same time?

Because the two figures are not describing the same kind of object. Amstel III and Bullewijk has an average dwelling value of 211,000 euro and an average income of 37,400; Gein has 344,000 and 30,600. In Amstel III all 2,595 dwellings are rented and none is owner-occupied, households average 1.2 people and 79 percent of them hold one person. In Gein 41 percent of homes are owned and households average 2.0. The word dwelling is covering a rented unit for one young adult in one row and a family house in the next, so averaging the column compares two different things.

Where are the missing residents of Amstel III?

This page does not say, and it is careful not to guess. Multiplying 2,805 households by an average of 1.2 accounts for about 3,366 of the 5,440 residents, and even at 1.25, the highest the published 1.2 could round from, only 3,506. So at least 1,900 people there are not in a private household. The district holds a large academic hospital and a great deal of recently built rented accommodation, and nothing published that was read here says which of those explains the gap.

What are the two neighbourhoods on this page?

Amstel III and Bullewijk, with 5,440 residents across seven buurten including the AMC and Hoge Dijk on 500 hectares of land, and Gein, with 11,078 residents across four buurten named Gein 1 to Gein 4 on 183 hectares. They were chosen for how unlike each other they are. The rest of the district, including Venserpolder, Holendrecht, Reigersbos, Nellestein, Ganzenhoef, Geerdinkhof and Kantershof, is named on this page without figures.

How long has Zuidoost been a district?

Since 1987, when it was established as a stadsdeel with a directly elected stadsdeelraad, which makes it the longest-standing of the eight. After 19 March 2014 it continued to exist as a stadsdeel while the form of government attached to it changed, and since 24 March 2022 it has been divided into four areas: Bijlmer-West, Bijlmer-Centrum, Bijlmer-Oost and Gaasperdam.

Is the class taught in Dutch?

No, English is the language of the lesson from the first minute to the last. Four Dutch school words are held back from that rule, groep and havo and vwo and profielkeuze, on the grounds that a child already knows them and an English rendering would only need turning back again. Nothing is offered in a Dutch edition.

What hours suit a family in Zuidoost?

For part of the year the teacher is three and a half hours ahead and for the rest four and a half, a difference produced entirely by the Dutch clock changing while the Indian one does not. In practice that leaves every afternoon after school, every early evening, and the whole of both weekend days. One repeating hour is chosen in the free lesson and then left alone.

Why not use a class nearer home?

For most things, do. The specific difficulty is that a group of five to ten learners at one particular level in one particular subject needs a pool to draw from, and this district is two very different populations rather than one: a wijk with 235 children under fifteen sits beside one with 1,605. Groups here are formed on ability from across the world, which is the only arrangement in which a narrow level actually fills.

Is there a Modern Age Coders classroom in Amsterdam-Zuidoost?

No, and none is claimed in the Bijlmer, elsewhere in Amsterdam or anywhere in the Netherlands. All teaching is live and online and needs a laptop or desktop, working audio, a current browser and a connection that holds. The telephone number shown on this page is an Indian one and is described as such.

What do Amsterdam-Zuidoost coding classes cost?

The first lesson is free. After it, group tuition is USD 100 a month for two live lessons a week, normally eight across the month, in a group of five to ten learners. One-to-one tuition is USD 150 a month at the same frequency with a single teacher. Course, format, recurring hour and availability are all confirmed before anything is paid.

How many learners are in a group?

Five to ten, matched on level, pace and goal rather than on age, school or neighbourhood. One-to-one means a single learner with a single teacher. When no group at the right level is running, a family can take one-to-one lessons or wait for the next group to form.

Explore Amsterdam and beyond

North-west into the city, and out to the province

North-west of here is Amsterdam-Oost, whose page sets two neighbourhoods with the same number of homes against each other, and beyond it Amsterdam-Zuid and its two disagreeing registers. Amsterdam-West carries the label that outlived its buildings. The city page, coding classes in Amsterdam, holds the picture for all eight districts, and just south of the city sits Amstelveen. Everything descends from the Netherlands coding hub, and a learner who wants trained models rather than running programs should begin at AI and machine learning classes in the Netherlands or the AI and Python Academy.

Free Amsterdam-Zuidoost classCall +91 91233 66161

Keep exploring Modern Age Coders

Coding classes in nearby places

Free resources

From the blog

Start here