Recursion, Refugees and Me
"The power of recursion obviously lies in the possibility of defining an infinite set of objects by a finite statement. In the same way, an infinite number of computations can be described by a finite recursive program, even if this program contains no explicit repetitions. "
Wirth, Niklaus (1976). "Algorithms + Data Structures = Programs".
In computing, recursion is a special type of algorithm. Repeating indefinitely until all of its criteria are met, it is unique both in the simplicity of its implementation and its complexity of execution. When the code runs, the computer does not know its own end point, it only knows the path to get there.
It is a process that once put in motion may never end.
When I was an undergraduate, I was not a good programmer and while one would say that all undergrads are bad programmers, I was outstanding in my ineptitude. Even the most simple piece of code would throw me down a rabbit hole of conditional statements and badly indented loops. All the code I wrote was spaghetti and all of it stank. It is safe to say, I was not a natural programmer. Assignment after assignment I would scrape by, inching my way to passing grades with little understanding of what I was actually doing. I spent hours in computer labs across the campus plugging away at the literal infinite combinations of code, deciphering its meaning as an astrologer would study the stars, only with slightly less success.
At the time of writing I have been a professional programmer for five years. I have worked for international brands and independent start-ups, and I have for all intents and purposes, 'made it'. So, what happened? I can safely say Sagittarius did not enter it's fourth quarter and bestow me knowledge of Switch Statements and Mercury's accent did not give me an intimate understanding of the Java compiler.
Quite simply, I got help. A PhD student that I now owe my career to, took pity on a bewildered eighteen year old student and mentored me for more hours than I care to count. He was patient when I was stupid, jovial when I was frustrated and most of all committed. He re-assured me that one day I would be able to read the stars.
At that time, he started a process that he did not know the end of. He just knew the path to get there.
This is the reason why I have supported code schools in London, why I have worked to set the framework for an after-school programming club for children in Islington and why I mentor students whenever I get the opportunity. I owe deep and unpaid debt to the recursive power of teaching and, more specifically, the potential of committed mentoring to people’s education.
It is also the reason why this year I helped start a code school for refugees and long term unemployed people in Athens. A code school in the business of transferring knowledge from those with, to those without. Our school aims to provide a permanent solution to the problems of unemployment, poverty and lack of education. But lucky for us we have a process. A process that has no repetitions but offers infinite solutions to a defined set of problems.
It is a process that once put in motion may never end.
If you believe, like I do, that free education is a right and not a privilege, and that investment now will have far-reaching consequences then join me this month in supporting the Social Hackers Academy to continue the work of educating some of the world's most in need.
On 7th December, we are launching a crowdfunding campaign to ensure the continued work of our school and we need you to support us however you can.