What are the best coding classes in Amsterdam-West?
Coding classes in Amsterdam-West reach the densest of the eight Amsterdam districts, formed in 2010 out of Oud-West, Westerpark, De Baarsjes and Bos en Lommer on 9.45 square kilometres of land. In February 2009 one of its neighbourhoods, De Kolenkit, was reported as the worst in the Netherlands. In the years after, a large part of it was demolished and replaced with new building, and one of its four buurten is now called Laan van Spartaan. The name is unchanged and much of the place is not. 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.
Search for De Kolenkit and you will still meet a sentence from February 2009 calling it the worst neighbourhood in the Netherlands. The same entry that records the label also records what happened next: an urban renewal plan under which a large part of the buurt was demolished and replaced by new construction. Seventeen years later the name is identical and a substantial part of the physical neighbourhood is not. A name is a promise that the thing on either side of it is the same thing, and that promise quietly broke here without anybody being told.
Facts last verified 9 September 2026. Teaching is online; no Amsterdam-West branch is claimed.
A groep 5 child in Bos en Lommer who has run out of things to finish, a teenager off the Kinkerstraat who wants a page on the internet that is actually theirs, a student in the Helmersbuurt who would rather know how the model works than what it said, and an adult on the Laan van Spartaan whose employer switched on a set of tools and explained none of them: four doors, and the first hour of each is free.

Typed Python, drawings that follow instructions and a first program that notices a rule, taught in English to the groep 5 to 8 child anywhere in the district.
See the syllabus
The language the browser actually runs, built up until a real page responds to a real person, for the teenager who wants something they can send somebody.
See the syllabus
How the models are assembled and where they come apart, for the student who would rather understand the tool than be surprised by it.
See the syllabus
The current tools used with judgement instead of trust, for anybody handed them at work with no instructions and a deadline.
See the syllabusBrowse the course atlas for more than one hundred options and use the coding roadmap to check prerequisites.
The four we are known for
These run underneath everything above. Every one is live and online, placed by ability rather than by age, and the first class is free.

Python, web and AI projects where the learner still owns the thinking.
See the syllabus
Automate the work you already do, then let AI carry part of it.
See the syllabus
Train a model, read what it learned, and be able to say why it is wrong.
See the syllabus
Run AI coding agents on real work without losing control of the codebase.
See the syllabusAmsterdam-West was created in 2010 by joining Oud-West, Westerpark, De Baarsjes and Bos en Lommer, and since 1 January 2015 it has also held the part of Westpoort east of the A10. Its own entry says it has the highest population density of any district in the municipality, on an area given as 9.45 square kilometres of land.
From 2010 to 2014 the district was run by an elected stadsdeelraad. In 2014 the deelraden were abolished across the city and the district has been governed by a bestuurscommissie since. The name Amsterdam-West has therefore covered three different arrangements, four predecessor districts and one addition of territory, all inside sixteen years.
The district entry publishes 148,908 residents for 1 January 2022. The wijk figures on this page are 2026 for population and 2025 for everything else, so no density, share or district total is computed here from the district figure, and the two are never divided into each other.
Two of the district's wijken carry full published figures: De Kolenkit and the Helmersbuurt. They are a deliberate pair, both dense, both largely rented, built in different centuries and treated very differently by the outside world. No district average is computed from two wijken.
| Item | As published | Date | Used here? |
|---|---|---|---|
| Residents | 148,908 | 1 January 2022 | quoted, never combined with a 2026 figure |
| Area | 9.45 square kilometres, stated as land | undated | quoted; no density computed from a 2022 population |
| Density | the highest of any district in the municipality | undated | quoted as the entry's claim, not tested here |
| Formed | from Oud-West, Westerpark, De Baarsjes and Bos en Lommer | 2010 | the reason the district has no single older identity |
| Territory added | the part of Westpoort east of the A10 | 1 January 2015 | noted; no series is drawn across it |
A nineteenth-century quarter that was never pulled down and a post-war one that largely was. Populations are 2026 figures; households, area, density, housing and tenure are 2025; incomes are 2024.
11,767 residents in 6,280 households averaging 1.9 people, of which 3,565 hold one person, 57 percent. 1,795 residents are under fifteen, 15 percent, and 1,040 are sixty-five or over, 8.8 percent. 74 hectares total and 72 of land, giving 16,368 people to the square kilometre. 6,095 dwellings at an average value of 419,000 euro, 4,876 of them rented at 80 percent, and an average income of 32,400 euro per resident. Four buurten: Kolenkitbuurt-Noord, Kolenkitbuurt-Zuid, Robert Scottbuurt-West and Laan van Spartaan.
7,271 residents in 4,570 households averaging 1.6, of which 2,670 hold one person, 58 percent. 675 residents are under fifteen, 9.3 percent, and 1,010 are sixty-five or over, 14 percent. 35 hectares total and 33 of land, giving 22,424 people to the square kilometre. 4,470 dwellings at an average value of 646,000 euro, 2,906 of them rented at 65 percent, and an average income of 55,800 euro. Three buurten: Helmersbuurt-Oost, the WG-terrein and Cremerbuurt-Oost.
The Helmersbuurt is at 22,424 people to the square kilometre and De Kolenkit at 16,368. The neighbourhood with the reputation is the less crowded of the two by a wide margin, which is worth knowing before anybody reaches for an explanation involving overcrowding.
West also holds the Spaarndammerbuurt, the Staatsliedenbuurt, the Frederik Hendrikbuurt, the Da Costabuurt, the Kinkerbuurt, the Van Lennepbuurt, Westerpark, Landlust, Erasmuspark, the Overtoomse Sluis, the Vondelbuurt and the village of Sloterdijk, among twenty-seven named buurten. They are listed because they exist and given no invented numbers.
What the class asks about any of this
Nothing. A learner is placed on what they can already do, demonstrated in the free hour, so a child on the Laan van Spartaan and a child on the WG-terrein sit in the same group when they are at the same stage and in different ones when they are not. Neither the buurt, the school nor the reputation of an address is an input to the decision, and a family that moves across the district keeps its slot.
One district entry, one buurt entry, two wijk pages, and a list of things the published record does not settle.
| Claim | As published | Source and date | Status on this page |
|---|---|---|---|
| The district | 148,908 residents; 9.45 km2 of land; formed 2010 from four stadsdelen; Westpoort east of the A10 added 1 January 2015; stadsdeelraad to 2014, bestuurscommissie since; the highest density in the municipality | stadsdeel entry, population dated 1 January 2022 | quoted; the density claim is not tested |
| The label | reported as the slechtste wijk van Nederland, the worst neighbourhood in the Netherlands | buurt entry, attributed to NU.nl, February 2009 | quoted with its date and its source, and argued against |
| What happened after | an urban renewal plan under which a large part of the buurt would be demolished in the following years and replaced by new construction | buurt entry, undated beyond the following years | the centre of this page |
| Figures alongside the assessment | unemployment 11.5 percent; early school-leaving 16 percent; Cito results among the lowest in the city | buurt entry, not separately dated | quoted as undated, and never compared with a 2026 figure |
| De Kolenkit now | 11,767 residents; 6,280 households; 6,095 dwellings at 419,000 euro; 80 percent rented; income 32,400 euro; density 16,368 | statistics office, 2026 population, 2025 housing, 2024 income | quoted in full |
| Helmersbuurt now | 7,271 residents; 4,570 households; 4,470 dwellings at 646,000 euro; 65 percent rented; income 55,800 euro; density 22,424 | statistics office, same vintages | quoted in full |
What the record does not establish: how many homes were demolished, how many were built, what the population of the buurt was in 2009, or what any of the 2009 indicators would be today. No source read here gives any of those. That absence is not a footnote to the argument on this page, it is the argument, and it is why the page compares nothing across 2009 and 2026. Modern Age Coders has no connection to the stadsdeel, the city or any school named here and claims none.
A label from February 2009, a demolition programme in the years after, and a search result that still hands you the first without the second.
When two records share a name, every join, every trend line and every search result treats them as the same thing. That is what a name is for and it is usually right. It stops being right when the thing is replaced underneath the name, and nothing in the data announces the moment that happens.
Here the same entry that carries the label also carries the plan: a large part of the buurt was to be demolished in the following years and replaced by new construction. One of its four buurten is now named Laan van Spartaan. The event is on the record. It is simply not attached to the label in any way a reader or a search engine would notice.
The tempting move is to put 2009 next to 2026 and announce an improvement or a decline. This page does not, because nothing published says how much was replaced. Unemployment of 11.5 percent from an undated assessment and an average income of 32,400 euro from 2024 are not two points on one line. They are two descriptions of two overlapping but different places.
| What is being compared | The 2009 side | The 2026 side | Why the comparison fails |
|---|---|---|---|
| The buildings | the housing stock as it stood before renewal | 6,095 dwellings, average value 419,000 euro | a large part of the first was demolished and replaced |
| The residents | not published anywhere read here | 11,767 residents in 6,280 households | no 2009 population to compare with |
| The condition | unemployment 11.5 percent, early school-leaving 16 percent, undated | average income 32,400 euro, 2024 | different indicators, different years, different housing |
| The name | De Kolenkit | De Kolenkit | identical, and doing all the work |
| What is honest | a dated label with a named source | a dated set of figures | report both, join neither |
Names and ids are the glue of every dataset. Join on customer_id and you assume the customer is the same customer. Chart a metric over five years and you assume the metric measured the same thing in year one as in year five. Compare a school against its own record from a decade ago and you assume it is the same school. Most of the time those assumptions hold, which is exactly why nobody checks them, and the failures are quiet rather than loud. A company is acquired and its customer records are migrated with their ids intact, so its history now belongs to a different company. A product keeps its code after a redesign that changed everything about it. A metric definition is revised in one release note and the dashboard title stays the same, so a step change in the chart looks like a business event. A neighbourhood is largely demolished and rebuilt and keeps its name, so a sentence written in February 2009 is still the first thing anybody reads about it in 2026. In every one of those cases the data is correct, the join is technically valid and the conclusion is wrong. The defence is not clever code. It is a decision, made by a person, about when a thing has changed enough that its identifier should not carry its history any further: version the entity, give it a valid-from date, or mint a new id and record what it replaced. Whoever does not make that decision has made it by default, in favour of continuity, on behalf of everybody who will ever query the table.
Customer ids through an acquisition, product codes through a redesign, metric names through a definition change, hostnames through a hardware refresh: the id survives and the thing does not. Practised on a neighbourhood that kept its name through a demolition programme.
| Stage | Rule | What it prevents | What it gives you |
|---|---|---|---|
| Date every claim | Attach the date and the source to any statement about an entity | A seventeen-year-old sentence read as current | A reader who can see how old the evidence is |
| Record replacement events | Log mergers, rebuilds, redefinitions and migrations against the id | A discontinuity invisible to every later query | A history somebody can interrogate |
| Version the entity | Give the id a valid-from date, or mint a new one and link it | One identifier silently spanning two things | Joins that can be made deliberately rather than by accident |
| Test the join | Before comparing across time, ask what changed between the endpoints | A trend line drawn through a replacement | Either a defensible comparison or a good reason not to |
| Let old labels expire | Treat an undated reputation as evidence about its own date only | A stale judgement travelling forever | A description of the thing as it is now |
A favourite toy that has had its wheels, its battery and half its body replaced over the years. Is it the same toy? The children argue about it, and then decide what would have to change before they would agree it was a different one.
Two records in Python sharing a name, each with a valid-from date, and a join that refuses to run when a replacement event falls between them. The stretch: write the version that joins on the name alone, run both against the same question, and describe exactly what the naive version claimed.
A real identifier at work that survived a migration, an acquisition or a redefinition. Adults reliably find a chart crossing the event, a title that never changed, and nobody who can say which side of it the current numbers belong to.
The district population, area, formation, governance and the Westpoort addition come from the stadsdeel entry, with the population dated 1 January 2022. The February 2009 label, its attribution to NU.nl, the renewal and demolition plan and the figures quoted alongside the assessment come from the entry for the buurt. Every population, household, age, area, density, dwelling, value, tenure and income figure for De Kolenkit and the Helmersbuurt comes from the national statistics office page for that wijk, with 2026 populations, 2025 household and housing figures and 2024 incomes. No figure on this page is carried across the 2009 boundary and none of the arithmetic joins the two sides.
Which rung a learner starts on is settled in the free hour by what they can already do, and never by the buurt on the address or anything anybody once wrote about it.
Children decide for themselves how much has to change before a name stops fitting.
Scratch Coding for KidsGame Development for KidsLearners start attaching a date and a source to every claim before they use it.
Python and AI for KidsWeb Development for KidsTeenagers build records that version themselves and joins that refuse to cross a replacement.
JavaScript for TeensReact Course for TeensAdults find a real identifier that outlived the thing it named and work out what it has been claiming.
Generative AI CourseAI Tools Mastery CourseBecause the sentence is real, correctly quoted and seventeen years old, and nothing in it says so.
A model asked about this neighbourhood has a great deal of text to draw on, and the most quotable line in all of it is the one calling it the worst in the Netherlands. That line is genuinely in the record, it has a source and it has a date. What it does not have is any marker telling a reader that a demolition programme followed it, and a summary has no particular reason to go looking. The result is fluent, sourced, technically accurate and describes buildings that in substantial part are no longer standing.
So the learner practises the two questions that catch it: when was this said, and has the thing it was said about been replaced since. Then they build the version that enforces the answer, with a valid-from date on the record and a join that will not silently cross a replacement event. That is a small amount of code protecting a large amount of judgement. A fifteen-year-old in Bos en Lommer who has taken a stale label apart will be the person at thirty who asks which side of the migration the customer history came from. Models will keep returning the most quotable sentence. Asking how old it is stays a person's job.
The case for a child in Amsterdam-West learning to code in 2026 is therefore not about one neighbourhood's reputation. It is that names are how data is joined, that a name can outlive the thing it named without any warning being emitted, and that a buurt which was largely rebuilt and kept its label is the clearest example of the problem a person is likely to walk past on the way to school. The longer argument is in the case for a child writing code in 2026.
West is dense, well connected and short of space. The obstacle for a family here is almost never getting somewhere; it is finding an hour and a quiet corner in a flat that has neither to spare.
The class runs at home in Bos en Lommer, off the Kinkerstraat or on the Laan van Spartaan at the same time each week. Nothing has to be travelled to and no room has to be hired.
Every lesson is in English. Groep, havo, vwo and profielkeuze stay in Dutch on purpose, because those are the words printed on the paperwork a child brings home and an English substitute only adds a step.
The teacher watches the learner work, so the level is shown rather than stated; a named course follows from it and an hour is fixed in the week. Payment is not discussed during it and no card is requested.
Two learners at the same stage work together whichever buurt they are in and whatever anybody has written about it. Two at different stages do not, for the same reason.
A repeating twice-weekly slot, normally eight lessons in a month. Noord-Holland takes its school holidays with regio Noord, and the weeks a family will be away are put into the plan before it begins.
Only the Dutch clock moves, so the distance to the teacher changes with the season. After school, early evening and either weekend day work at both settings.
A district where the children are concentrated in particular streets
Under-fifteens are 15 percent of De Kolenkit, which is 1,795 children, and 9.3 percent of the Helmersbuurt, which is 675. Two neighbourhoods a few minutes apart differ by a factor of nearly three in the number of school-age children in them. That is the practical reason a specialist group at one particular level rarely forms locally, whatever the school does, and the reason groups here are assembled on ability from across the world instead, at every age up to sixty-seven.
On the page rather than saved for a telephone call.
A full lesson with a real task, a level and a named next course.
Per month, normally eight lessons, five to ten learners placed by ability.
Per month, normally eight lessons, one learner with one teacher.
One international rate exists and it is quoted in dollars, with no euro edition, so an address in the Helmersbuurt is charged exactly what an address in De Kolenkit is. Nothing is paid until the free lesson has settled a course and an hour, and payment is then arranged over WhatsApp. Pausing, switching plan and missing a week are all set out on the pricing page.
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
The first task might be a toy that has had every part replaced, a pair of records that refuse to join across a rebuild, or an identifier at work that survived a migration nobody logged.
The district, its neighbourhoods, one very old sentence, the teaching and the terms.
That was reported in February 2009, attributed to NU.nl, and it is seventeen years old. The same entry records that an urban renewal plan followed, under which a large part of the buurt was demolished and replaced by new construction, and one of its four buurten is now called Laan van Spartaan. This page quotes the label with its date and its source precisely so that it can argue against its continued use, and it deliberately does not compare any 2009 figure with any current one.
This page does not say, because nothing published that was read here allows the question to be answered. No source gives how many homes were demolished, how many were built, or what the population of the buurt was in 2009. Comparing an undated unemployment figure with a 2024 average income across a demolition programme would be joining two different places on the strength of a shared name, which is the exact error the page exists to describe.
11,767 residents in 2026, in 6,280 households averaging 1.9 people, of which 3,565 hold one person. 6,095 dwellings at an average value of 419,000 euro, 4,876 of them rented, 80 percent. An average income of 32,400 euro per resident in 2024, and a density of 16,368 people to the square kilometre across 72 hectares of land. The four buurten are Kolenkitbuurt-Noord, Kolenkitbuurt-Zuid, Robert Scottbuurt-West and Laan van Spartaan.
The Helmersbuurt, and not by a little: 22,424 people to the square kilometre against 16,368. The Helmersbuurt also has the higher average dwelling value, 646,000 euro against 419,000, and the higher average income, 55,800 euro against 32,400. Density and prosperity are not running in the same direction here, which is worth knowing before anybody reaches for an explanation involving crowding.
In 2010, by joining the former stadsdelen Oud-West, Westerpark, De Baarsjes and Bos en Lommer, and since 1 January 2015 it has also held the part of Westpoort east of the A10. It was governed by an elected stadsdeelraad from 2010 until the deelraden were abolished in 2014, and by a bestuurscommissie since. Its entry gives 148,908 residents for 1 January 2022 and 9.45 square kilometres of land.
No. Every lesson runs in English from beginning to end. Dutch school vocabulary is the one deliberate exception and stays exactly as a Dutch school writes it, so groep, havo, vwo and profielkeuze are spoken rather than translated. There is no Dutch-language version of any course.
The teacher is three and a half hours ahead during Dutch summer time and four and a half in winter, because only the Dutch clock changes. The practical window runs from the end of the school day to mid-evening, with both weekend days open, and a single repeating weekly slot is agreed at the free lesson and then kept.
No, and none is claimed in Bos en Lommer, 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.
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.
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.
East of here is Amsterdam-Centrum, where the district turns out to be less crowded than its own neighbourhoods, and south is Amsterdam-Zuid, where two official registers disagree by 432 on the Zuidas. Across the water lies Amsterdam-Noord. The city page, coding classes in Amsterdam, carries the picture for all eight districts, and the city sits inside Noord-Holland. Everything descends from the Netherlands coding hub, and a learner who wants trained models rather than running programs should start at AI and machine learning classes in the Netherlands or the AI and Python Academy.