Code School Diary: Level Up

st-edu-week-869-1-658x387
It’s the 16th of August 2015 and I’m writing a physics assignment about Identifying Brønsted–Lowry Acids and Bases and Their Conjugates. I have no idea where or how I’ll apply this. I don’t know exactly how this applies to me. All I know is that I am supposed to answer a couple of questions and get graded.
It’s the 28th of October 2016 and I’m working on a C programming project about building a fractal generator and explorer. I know why I am doing this though. I am building a graphics engine and applying mathematical  principles to it. In this way it will perform better than using intuition.
On the 9th of May 2016 I started a journey. A journey so far removed from my plans and capabilities that it took a moment for me to comprehend why I chose this route. Then it dawned on me. It’s the thrill of it. The beauty of it. The passion of it. All this from one month of bootcamp. A bootcamp that was such a terribly beautiful experience that it ensnared me. I knew then as much as I  know now that I… was home.
I am curious and like to solve problems. Simple enough right? Nope. I am currently working on a project called expert systems. Expert systems being a means of creating an AI of sorts that helps with the making of decisions or the evaluation of already made decisions. And to be honest. I am drowning. I don’t see an end. The task is overwhelmingly difficult. I am sleep deprived. I haven’t seen the sun in a while but I am levelling up.
I am capable of building sites, graphics engines, unix systems, AI and using algorithms. More importantly not only can I visualise the real world applications of such skills, I cant wait to apply them in tackling real world problems.
In 2015 I was on a level, then came the bootcamp in February and I levelled up. Then came the cohort in May and a week later I levelled up and I have been levelling up since.
My grades have plenty of fails and few passes yet I have retained all that I learned in attempting these projects. When I say level up I mean I became better as a person, both as a thinker and as a programmer.
The physics assignment I told you about? I got 83% for it. The fractal project I told you about? I got 0% for it. Yet I can create a fractal from its mathematical formula and graphically represent it on the screen. And I still don’t quite understand why I needed to know Acid and Base conjugates.
It’s the 13th of October 2016 and I have a project due on the 16th. Time to level up.
Written by Mandisi Makwakwa
This story is part of a regular series written for htxt.africa by students of WeThinkCode_, a revolutionary new teaching college in downtown Johannesburg, reflecting on what it’s like to be a young technologist starting out in South Africa today. Find out more about WeThinkCode_ here.
This article was originally published on htxt.africa on 17 October 2016.

Code School Diary: Yes, #FeesMustFall!

crvv88swiaaodgb
Once again students are demanding that fees must fall. This isn’t the first time this demand has been issued and if something isn’t done in response – and soon – protests like these will most likely become annual occurrences.
I can understand the frustration that fuels #FeesMustFall. I have also been in the situation where I had to worry that my tuition fees were simply unaffordable. I mean that I, just like countless other South African students, didn’t have have stacks of cash lying ahead of being told how much more I’d have to pay to get a qualification next year. It’s also a hard fact that obtaining funding can also prove to be a mission too impossible to achieve. The current situation is not all that surprising.
People naturally have different views about the current protests. Some are positive and supportive, some are just indifferent while some are just annoyed about the inconvenience protests have on their lives. I know how the protesting students feel; it was only last year where I felt like they do right now.
So naturally I think that their demands are reasonable. I believe that in spite of the politicians’ spin about how unaffordable free education, even while less important expenditures somehow find their way onto the budget. How many billions have been spent rescuing wasteful public companies? How hard can it be to rescue students who truly need rescuing?
I feel like it’s easier for me to come have a reasonable and favourable opinion of the protesting students because I have been in a situation where I felt desperate and hopeless. I am fortunate enough to know what they are fighting for feels like.
I am able to pursue my education without worrying about exorbitant university fees and accumulating crippling debts. Under these conditions it is a whole lot easier to focus on the what’s important to any student: learning.
So knowing how it was for me and how it could be for them makes it  very easy for me to say fight on. There is no question in my mind that #FeesMustFall.
Written by Gomotso Mofokeng
This story is part of a regular series written for htxt.africa by students of WeThinkCode_, a revolutionary new teaching college in downtown Johannesburg, reflecting on what it’s like to be a young technologist starting out in South Africa today. Find out more about WeThinkCode_ here.
This article was originally published on htxt.africa on 03 October 2016.

A block of code: wethinkcode_blog #1

WeThinkCode_blog is a new and ongoing series of articles written by students at the revolutionary WeThinkCode_ school in Joburg, in which they share their experiences of being up-and-coming technologists in Africa’s most connected city. To kick things off, Tumelo Motaung reveals how one post-it note can open the door to crunching code and making friends.

Depending on how old you are, you may find 84 Market Street easier than you would 84 Albertina Sisulu Street.

If the Johannesburg Metro Police CCTV coverage extended to our part of town, you could pull three months worth of tape with over 300 gloomy-­eyed students walking in and out of the 112 year old National Bank Building.

A hustle of yellow sticky notes adorn the doorway to the cluster area, where all the work happens.

“I am here because I know nothing about coding, also for the people – I have a deep yearning to connect with people.”

That one is hers. That’s what she wrote on her post-it on her very first day on campus. Three months, hundreds of hugs, fist pumps and high-fives down the line, she calls the campus home.

After a month of going in at six-thirty in the morning and leaving at around 7pm in the evening, after working on code that made little or no sense, you grow into your peers, and they grow into you.

You get to a point where only they understand what you mean when you refer to every mishap as a norm error. She changed her status to “Coder in Training” when she was accepted into the programme.

She went around telling everyone who would listen that she would change the face of Africa from her Mac.

“I have never gotten so many zero’s in my life.”

That was the general feeling, and yet she stayed, she hung on, even when she wasn’t passing any of the exams, let alone making good grades.

The pace is a little more relaxed now, we have more time for chats and video games. The level of work, on the other hand, has shot through the roof. We scream, we scratch heads, we go blank, we go broke, we go hungry, but the learning is inevitable. (function repeat() { eat(); sleep (); code(); repeat(); })();

It is 13:42 on a Tuesday afternoon. She should have eaten at least one meal, but her PrintF is at a standstill, her brain has hit a block, again. She wants to do this one her own, “figure it out”, but there is no room for heroes at We Think Code.

She’ll need to get up and ask for some help. This is what it’s about.

This article was originally published on htxt.africa on 07 June 2016.

Sink or swim: Being thrown in the coding deep end helps

“How hard can it actually be?”

I remember asking myself those exact words a few months ago.

Imagine you are told that you are among the select few who have made it into We Think Code. What’s great about this is you have around two years of university experience and you happened to get distinctions on every second module. It can’t be that tough right?

It’s now four months later and I have engaged in a lot of retrospection. I have to say I would have been better off if I had no prior coding experience. That way I would have had to start at ground zero with everyone else instead of having to start over and then catch up to the crowd.

In university I was an above average student. I earned my fair share of distinctions and was relatively comfortable. That’s all well and good but why then is it more challenging in this new environment, why have I felt as if I was drowning so many times?

What’s different about We Think Code compared to traditional universities? I say ‘universities’ because I’m not the only one who studied IT in university and now find themselves learning how to crawl all over again.

In a word, the problem is ‘Theory’. Personally I feel like a lot of the concepts I am currently learning are very familiar and easy to grasp. The problem was that I was using the same methods of learning as I did at varsity and that’s just not good enough.

Being given a list of study material and having access to the summary of what I would be asked in the exam made me soft. It was so easy that looking back I am disappointed I did not do better.

What makes things more challenging now is that everything I need to know I have to discover myself. Whether I trawl the internet, which can have way too much information, or ask some of my fellow students does not matter. To top that off you must meet the vague requirements while being given some of the narrowest deadlines imaginable. For example, being asked to code a UNIX shell in two weeks. Then you only find out what the criteria for marking is after submission. This taught me the importance of defensive coding.

I have come to believe that universities do a lot to help students pass. So much so that I believe it is counter productive. A lot of students will complete their studies only to be re-taught how to do their job. That’s if they are lucky enough to find one. It’s one of the key factors one becomes aware of on WeThinkCode_. Here, one learn skills relevant to your workplace, which are desired by corporate sponsors. This is a massive weight off my mind ahead of searching for a job.

It’s not a pleasant experience being thrown in the deep end but it has allowed me to learn so much in a short amount of time. I have also become more resourceful, resilient and persistent. I have acquired skills I am glad I have learnt now rather than later.

My biggest realisation here has been that I don’t know anywhere as much as I thought I knew. That’s a good thing because now I know how much more I can and should learn. To paraphrase Harvard’s David J. MalanWhat ultimately matters in this course is not so much where you end up relative to your classmates but where you, at the end of two years, end up relative to yourself in Week 0.”

Written by Kgomotso Mofokeng

This story is part of a regular series written for htxt.africa by students of WeThinkCode_, a revolutionary new teaching college in downtown Johannesburg, reflecting on what it’s like to be a young technologist starting out in South Africa today. Find out more about WeThinkCode_ here.

[Picture Credit: Robbie Sproule]

This article was originally published on htxt.africa on 12 August 2016.

Code school diary: Feeling the fear and coding anyway

Nine times out of ten, most people are stalled in beginning an endeavour by fear of failure.

Whether it be a starting a business, changing of career, taking that long overdue trip of ‘self-discovery’ or even exiting a toxic relationship, fear of the unknown can stop us in our tracks.

With this in mind, it’s ironic that we accept most simple realities like knowing that not everything will work out on the first attempt or that the best way of learning is to learn by doing.

If this is indeed so, then shouldn’t we ask ourselves – or relearn – to accept unsuccessful attempts as lessons rather than failure? I firmly believe that true failure is failing to find a lesson in our unsuccessful attempt, and not being able to see the reasons behind our mistakes. Essentially our common “failure” is but a learning curve.

As a programmer approaches a new project, there are several inevitable realities that need to be accepted.

The first version of the program will not work, though we will soldier on make changes and recompile over and over for as long as it takes until we finally achieve the desired results.

Usually there are new concepts that we should implement that we know little about. The reasonable and sensible thing to do is to conduct research in order to gain understanding and start implementing.

Simply put, we need to get over our fear of failure; we need to know and accept that not everything will work out on the first attempt, and just as in computer programming our life plans have to go through a debugging process, constantly under review as circumstances change.

This can never happen unless you take the risk! As Franklin D. Roosevelt said, “courage is not the absence of fear, but rather the assessment that something else is more important than fear.”

Written by Botshelo Diale

This story is part of a regular series written for htxt.africa by students of WeThinkCode_, a revolutionary new teaching college in downtown Johannesburg, reflecting on what it’s like to be a young technologist starting out in South Africa today. Find out more about WeThinkCode_ here.

[Image: Ian Burt]

This article was originally published on htxt.africa on 23 August 2016.

Born lucky: Reflections by a young technologist on youth day

Sometimes I ask myself how I got here on the path I have chosen to take. I mean, it does not take much for me to imagine how things could have been different.

When people think of South Africa they think of Apartheid, 1994 and the genesis of the Rainbow Nation. One of the few things people tend to forget when they reminisce about the struggles and sacrifices of the past is the reality of those they love reminiscing about the most.

Take me, for example. Where I’m from, Eersterust in north-east Tshwane, the past is irrelevant. Even though it has played such a huge role in how Eersterust is today, most people’s thoughts are preoccupied with the present. I’m from a place where murder is laughter and drugs are breakfast. Yes, I grew up in the belly of the beast.

The second youngest of six children, my father met his untimely end when I was only five. Thirteen bullets in all. It’s not a very unusual way to go out in Eerseterust. Anybody involved in gangsterism will tell you exactly that.

So it was up to my single mother to raise us in what seemed like purgatory.

I am one of the lucky few who made it out. A lot of my old friends would love to be where I am. Most of them are in jail, and those are the lucky ones. The others were very unfortunate and are now dead. I should know because we buried one every second week.

I’m certain instead of where they ended up, they would rather be doing the things I’m doing. Like re-coding the C library from scratch. Who would not prefer that to gang shoot-outs and drug dealing? I don’t know about you, but recreating the virtual bullets of the classic Wolfenstein 3D game sounds much more appealing than a real bullet to the head.

Some might wonder at how someone whose present life is such a contrast to that of his origin can get to a place where he can say he is at the forefront of education and tech development in South Africa. They might see it as vindication of the opportunities available in the country today.

But maybe the question should be why every child in the country should not have the same opportunity as I do.

Things could have been different for me but thankfully they are not. I am at a place where inspiration is just all around you. A place where trendsetters and CEO’s of multinational corporations occasionally pop in for a talk. Where else can any student experience all that?

I’m certain that if you had to choose between numerous other paths I could have taken and being at We Think Code, you would make the same decision as I did. If you were born lucky enough to have the chance to make it.

Written by Gomotso Mofokeng & Philip Jacobs.

This story is part of a regular series written for htxt.africa by students of WeThinkCode_, a revolutionary new teaching college in downtown Johannesburg, reflecting on what it’s like to be a young technologist starting out in South Africa today. Find out more about WeThinkCode_ by clicking here.

This article was originally published on htxt.africa on 15 June 2016.

Code school diary: The importance of embracing both change and the future

I remember my father telling me, “If you want something out of life, you need to go out and get it.”

Words of wisdom indeed. In my father’s day, that was the hard truth. To make and keep friends, you had to communicate with them face to face.

To make that life changing business deal, you had to physically go to that important meeting. To hear a person saying they are doing research, you knew they were at the library.

But something has changed in those wonderful words of wisdom. Words like “let’s go do research” have been replaced with “let me Google that for you” and that deal-changing meeting can be accomplished even if the participants are in two different continents.

Even the friends we make don’t have to be in the same country as us.

I am a coding student. I am learning system development at a time when we as human kind have opened up the door to the technological equivalent of Narnia.

My studies have opened up my eyes to the fact that we, as a human race, have gone down a rabbit hole and a weird and wonderful world awaits us. Life as we’ve known it has and will continue to change.

Which brings me to the now of things. The reason I am writing this now. My answer to a big question that people seem to ask. “How do we just adapt to all these things being done to us?” And I guess there is no real answer to this, but I will walk you through my whys. Why I think things are getting better.

I was also sceptical of change. Things were happening too fast. How long would it be before robots took over? what if ‘Terminator’ wasn’t so far fetched? Until I went into the WeThinkCode_ course. Studying the software development side of things has dropped the coins from my eyes. I was blind but now I see.

Close your eyes and imagine with me, if you will.  A world where cancer patients could be cured no matter what type of cancer they have. Where a person who literally lost and arm and a leg can get them back. Where being blind or deaf doesn’t mean you will never hear or see again.

Now open your eyes and look around. This is the age in which we live. People have been mapping and matching algorithms, using code, to try find which medication go best with which cancer. Robotic arms and implants have been invented that can give you back your limbs, sight or hearing.

So my “why” comes down to “why not?” Look at the benefits of embracing this change. I’m personally glad that I will be part of it.

Being able to have the potential to invent or code something that can change our world would be a huge dream come true. Imagine inventing something that improves the air quality around us. Or a better system of retrieving, cleaning and distributing water to poor communities.

Certainly, there are some things that will change; “Go out and get it” can mean stay in and code it. Where project managers for example can be coded rather than hired but with any kind of change, some things must be adapted. That is what change is. The sooner we accept the hard parts, then we can start benefitting from the almost magical things that are happening already.

Written by Colin Radebe

This story is part of a regular series written for htxt.africa by students of WeThinkCode_, a revolutionary new teaching college in downtown Johannesburg, reflecting on what it’s like to be a young technologist starting out in South Africa today. Find out more about WeThinkCode_ here.

This article was originally published on htxt.africa on 30 July 2016.