Hacking Heroes treated programming as more than a technical subject.
The programme used code as a practical environment in which young people could learn how to investigate problems, test ideas, work with others and become more independent learners.
Programming is for everyone
The project’s stated purpose was not to teach the basics of a few programming languages. It was to argue that programming has become a third language — alongside a first language and a foreign one — that everyone should understand at a basic level in order to make sense of the world and the changes happening in it.
That argument was aimed as much at adults as at teenagers. The founders were explicit that the perception of programming as difficult, specialist or inaccessible is reproduced by the people teaching it, and that changing how young people see it means changing how their teachers see it first.
Learning by making
Participants learned programming by using it.
Instead of treating code as an abstract subject, the programme connected technical skills to ideas the participants actually wanted to build. The workshops were organised around project work, and the project work culminated in a hackathon where the ideas had to survive contact with a real team and a real deadline.
Learning how to learn
Technical knowledge was the first layer, not the point.
The stated aim was that participants would leave able to find information, ask better questions, evaluate what they found, and continue on their own. Both founders were self-taught — one of them explicitly so, having built a career from books, conferences, workshops and practice — and the curriculum reflected a belief that this is a teachable skill rather than a personality trait.
Breaking work into pieces
Participants practised dividing complex problems into smaller tasks, and then dividing those tasks across people.
This is ordinary professional practice and almost never taught at school. In Porto it stopped being an exercise: teams of four had five days, which is enough time to build something only if the work is split sensibly.
Collaboration and shared responsibility
Because the teams were international, collaboration could not be assumed. It had to be organised — in a second language, between people who had met days earlier.
The project treated the resulting friction as part of the curriculum rather than an obstacle to it.
Open-source culture
Participants were introduced to open-source software: what it is, how to use it, and how to contribute to it. The intention was that they would see software as something made by people they could join, rather than as a finished product handed down.
The project’s own materials were meant to work the same way, released under an open licence for other educators to take further.
Mistakes and experimentation
A programme built on making things is necessarily a programme in which things fail. The workshops were structured so that not-working was the normal state of an unfinished project rather than evidence of a wrong answer.
Supporting educators
Alongside the youth workshops, the project ran a two-day methodology workshop for teachers and people working with young learners, and produced materials for them to reuse.
This was the part of the project designed to outlast it. The workshops taught sixteen young people in Kalisz and a comparable group in Espinho; the methodology work was aimed at everyone those educators would go on to teach.
