The Twinkling Of A Dream
“Should I take an online course and learn Java? Maybe I could build a game.”
Why is it that computers invariably lead to gaming?
Maybe it’s because a game literally tells a story and invites you in to “play” a part in that story.
Nonetheless, my friend Manu, was debating whether he should get into coding and he reached out to me, asking for advice on how to get started. The year was 2014 and it was right about when I was deep into running an Innovation Lab in Cluj, Romania, with a small but fiery group of developers who I had embarked with on a journey to launch several new Software Products in a short span of 18 months. We did and it was a thrill.
But it ate up most of working time and I had no time to think about coding advice to my old friend. Who, by the way, lived in a different city – Timisoara.
So I simply said “Sure, but Java?”
Helpful. I know.
I remembered the first time I encountered the beast. Sorry, Java. I was still in high school and it was a couple of years after my first stint with programming and that old computer programming language, called Turing. The next couple of years after I had written that Tetris-like game - see it's all about the games I'm telling you - I pursued programming and took a second course, this time, learning another programming language, called Pascal. I loved it, because of course, Pascal was a brilliant philosopher so my masterplan was to explore Pascal because it must be a brilliant programming language. Brilliant. Well it actually was, and that Pascal course in high school was the course that literally sealed my faith as a future programmer.
After I saw the immense creative potential of programming I decided to get serious about it. In my final year of high school, I applied to the University of Toronto’s Computer Science program and I started reading everything I could about how to be a good programmer.
Oh, so this was 1997 and this was really the first year I got online. Everything was so new. What a different world.
I started surfing. Oh yeah. “Surfing the net” back in ‘97 would be like us playing with a time machine today. It was incredible. There wasn’t much out there. As of December 2018, there are 1.94 billion websites according to “Internet Live Stats”. But 21 years ago, in 1997, there were just 1.1 million websites.
A million websites seemed like the whole world back then. Especially since four years prior to that, there only 130 websites. Can you believe it – there were 130 websites in 1993. Crazy.
So I would log into my dial up Internet after school and I’d start exploring this new wonderful world called the Internet and I started reading everything I could get my eyes on. This was about the time when I was book fanatic and I’d run to the public library to check out books and read – and read – and read. Now, I felt like I had the whole world at my fingertips, all the libraries put together, on one screen.
And I started reading. And learning. And never stopped since.
When Java Was Cool, Fun And Exciting
One day, my CD tray opened by itself.
I - of course - freaked out. And I thought my computer had gone mad. But it turned out I had been hacked.
That’s how I got introduced to a world of so called “script kiddies” - youngsters, some younger than myself back then – who would find “scripts” - pieces of code written by someone else – and they would use them to hack into people’s computers. Why? Oh, just for fun, that’s why.
I stayed up nights and kept digging into it and found out that others experienced the same thing – the beauty of online communities – and they posted details about how the hack worked.
My mind exploded. Wow. Really? This stuff is possible? I mean, you can login to your computer and run some “scripts” and stuff and click a few buttons and you can open someone’s CD tray across the ocean? What? Seriously?
Oh, I had to dig deeper.
And that’s how I encountered Java.
It turned out that this was a new programming language, freshly invented by some genius programmers back then, and it was a programming language that was free to use and anyone could try it out.
You know what happened next, of course.
I tried it out.
There were online tutorials on how to get started and even more advanced tutorials on how to do stuff that to this day gets me so excited that I could drop everything and write me some scripts just for fun. I learned to write scripts using Java, scripts – as in small programs that do one small thing – and I’ve learned to transfer data between computers using the Internet. I was fascinated.
See, those “script kiddies” who hacked my computer were not programmers. They were kids who got a kick out of hacking people and bragging to their friends about it. What I was after was to learn what the people who created the original scripts knew - I was after the skills needed to build the original programs that the script kiddies would use. Because those scripts where written by real programmers, and usually for good reasons. But of course the malicious users found ways to utilize them for horrible purposes.
So I became a so called “white hat hacker” - one of the good guys. I started using Java to write “good scripts” that would do good things like protect your computer or alert you when someone is trying to hack your computer or scripts that would discover security flaws and showed you how to make your computer more secure.
Oh, it was fun.
The Traditional Educational System Strikes Again
I loved Java.
Then I finally got into University of Toronto and began my formal education as a Software Developer.
Guess what the first course - of the first semester - of the first year of that formal education was?
Java, of course.
In fact, when I started, in ‘98, that was the first year that Java was introduced as the main programming language for beginners in U of T. They used Turing before. The irony.
And so I thought, oh, I got this. I had been learning Java for the past year, hacking – white hat hacking – and doing pretty advanced stuff. This will be fun and easy.
But no. The good old traditional educational system managed to ruin it for me once again.
And so we started out with objects, classes and interfaces. Yeah, we started with those. I still remember it. What’s a class? What’s an object? And what’s an interface? Oh, and inheritance? You’re in university now, you have to know what inheritance means. Yeah, types – types too. You have to define the types. And on, and on, and on.
When do we get to build cool stuff? When do we get to actually use Java?
Not just learn about Java.
That’s when I got the ominous feeling that I won’t be going to too many lectures for the next few years.
Hacking The Educational System Was Even More Fun Than Hacking Code
And I was right.
I skipped lectures like they were the plague.
I literally lived in the Computer Lab. The ultimate computer nerd sanctuary, open dawn to dusk and I was the first one to get in – in fact I’d wait at the door for the lab to open – and the last one to get out - “wait, wait, almost done, one more line of code – wait". That was me pretty much every day for years in a row.
The good news was that most of the marks were based on programming assignments. You’d have to go to lectures where they would supposedly teach you what to do – same with the tutorials – and then you’d have to go home or in the computer lab and actually do the work – write the code.
Well, I so hacked that system.
I’d go online and learn what I needed to learn and I’d spend my entire day locked in the lab trying different things and mastering my craft. I honed, and honed, and honed.
I refused to let the educational system suck the life out of my passion for programming and I learned to love my craft by practicing. By creating. And learning all along. Not by talking about it and about the theory – with no real feeling of the nitty gritty of actually doing it and applying the knowledge to real problems.
Oh and I learned the theory while practicing. I could tell you everything you wanted to know about classes, objects, interfaces, inheritance, types and even garbage collection. My favorite theoretical concepts were the ones that professors would not even teach in class but I’d learn by using them hands on and by digging deep, poking and seeing how they work.
I ended up doing a lot of Java advanced work after I graduated and started my professional career as a Software Developer. I used Java for a number of years developing desktop, mobile and web apps in the early 2000’s and I know that what I have applied in my work were the lessons I learned in that computer lab on that U of T campus in the late 90’s. Not the theory I learned during the lectures or tutorials. Not that.
Java Just Isn't What It Once Was
So when my friend Manu asked me in 2014 about Java and about him starting his journey as a Java developer, 19 years after Java had been invented – I initially shuddered.
Sure, Java still has its usages and it’s incredibly powerful and there are a lot of Java developers out there. In fact, almost half the developers in the world are Java developers.
But, I wondered, was Java the best language for someone literally just starting out in 2014?
I was too busy building iPhone and Android apps at that time to think about it deeply enough though.
I just had a feeling that starting your programming journey from scratch with Java in 2014 was not the same as doing it as I did back in the 90’s.
But I left it at that – just a feeling. And told my friend to do what he thinks makes sense for him and see how that goes.
You know, the kind of horrible “leave me alone” kind of advice someone gives you when they don’t really wanna be bothered.
Tech Education Changed My Life - Can I Use To Change Someone Else's Life?
But I was bothered.
Here was a young man, in his late 20s, who had a tough time through life. A tough time growing up. And he had no real marketable skills and had no real plan for building a future for himself.
About a year had past since Manu had asked me for advice and I kinda wiggled my way out of lending hand.
His Java adventures didn’t turned out too spectacular and he was about to drop everything and leave the country. He was about to move to Germany with a friend and start a new life, try to get some work doing whatever wherever for whoever just to make a living.
“So what do you think?”, I asked my wife.
She was pregnant with our fourth child and running a non-profit while homeschooling our other three children.
By the way – how do women do – you know, what they do?
My love, if you’re reading this, just so you know, I know you know, but still – I so, so love you.
But anyways, she said “give him a chance” and I did.
I took Manu in for a year and I helped him learn to code. From scratch.
I helped him get an apartment nearby and for a year he would come over to my house and we turned my garage into a computer lab. We got him a laptop and we started coding. Together. Side by side. A few months into it, my baby daughter was born and I took some time off work and spent time with Manu, teaching him, guiding him and getting him to a point where he could build a professional career for himself as a Software Developer.
And no. Not Java.
The thrill of learning something new is absolutely incredible. It grows you. It makes you a new person – a new you.
I loved learning in high school. I loved it in university. I loved learning alongside my friend Manu. And I love it still.
But Can Tech Education Change A Billion Lives?
But it bore a new thought.
More like a dream.
If Tech Education changed my life and gave me the opportunity to provide a good future for my family. And if Tech Education changed my friend Manu’ life and opened up a new bright future for him – could Tech Education be a means to help more people?
Can we scale this?
Can I teach 10 Manu’s? 100? A million?
And that’s how the Carmel seed was planted.
Can we use Tech Education to change a billion lives?
I spent the last three years of my life building, questioning, probing, trying, poking, writing, coding, failing, experimenting – and most importantly, learning.
No. More importantly.
I believe. I believe Tech Education can change a billion lives.
It changed my life.
It changed Manu’s life.
And I believe it can change your life.
And many other lives.
As long as the Tech Education we’re talking about doesn’t bore us all to death, but it’s exciting, it’s invigorating and it makes us better people. As long as we can come up with a model to scale Tech Education in an effective way. In a way that makes it – yeah, fun – in a way that makes it fun to learn. But not just fun for entertainment purposes. But in way that learning makes you want to smile. In a way that you can’t wait to wake up and keep going because you know there will be a new reason to smile waiting for you – as long as you push yourself to keep learning.
I spent the last three years of my life building a dream that humans are more precious than machines and if we want a more human world in this machine world we live in, the only way to do that is to put humans in charge of machines – by giving those humans the skills to boss those machines around.
I call bossing machine around – Software Development.
If you believe we can build a more human world, stick around.
We’re just getting started.