To learn code, teach code

L.S.M Kabweza Avatar

Some ten years ago, I was employed by a local private college to teach web development at weekends. A few years earlier I had taught myself a bit of PHP, html and css. Enough to build a decent ‘database driven website’, as they were called in those days. But I only knew the stuff I needed for that startup and nothing else.

I didn’t realise it before I signed up because I’d taken the job to just boost my income, but teaching programming is what taught me a lot of what was to become a very useful skill. A year later I used the skills at another internet startup where I built a content management system for their content publishing business.

Another year later, reading 7 Habits of highly effective people (good to read it if you haven’t, and if you have, you probably know reading it again will reveal new things) I could clearly relate to the learning practice recommended in the book. Early in the book, Covey advises that the best way to get the habits, is to teach them soon after learning them. This, he said, would ensure that the person understands deeply what they are learning, and it also commits them to uphold what they teach.

For me, just knowing that I would need to teach someone who was very unfamiliar with even the basics of web development (some didn’t even have the prerequisite knowledge required thanks to colleges not caring) ensured I understood it enough to explain it in different ways to different people in the simplest of terms.

We have all been in situations where even setting up your development environment gets so complicated you want to put it off for another day. If you will need to teach someone how to set up their environment, there’s no quitting. You look for the answers until you find them, and you quickly discover that they are easily findable. You realise that the reason we quit so early is because we don’t have to be accountable to anyone. It’s as if we’re looking for the first available excuse to retreat to our comfort zones.

It can be learning Ruby on Rails that you have been putting off for more than a year now. Committing to teach it means you have to start learning it. Why not sign up to teach a lesson called “Basic a introduction to writing your first Ruby on Rails script“. Once you have someone signed up for that class, you have to learn it.

Or maybe you don’t even know if Ruby is the right language to learn. So maybe teach a lesson titled “Choosing the right programming language to learn: The dead simple basics explained for non-programmers“. My point is that you don’t even need to have some complex prerequisite knowledge to teach (to learn). You just need to know you are embarking on something you will need to teach.

Can be Android apps development. Or Objective-C. Or the deeper waters of data structures. Whatever it is, signing up to teach it is what will spur you to learn it and understand it.

The only reason I’m harping on about this common knowledge is that we have a skills problem in Zimbabwe. In the world in fact. Even as open as the internet is, and as filled as it is with great tutorials about how to do stuff, we still have a skills problem. Not enough people are learning how to write code.

Even at a non-engineering level where you are building atop existing frameworks (essentially assembling pieces together like they do to cars at Willowvale), we don’t have enough people. In fact, especially the piecing together kind of programming.

If we would teach each other, we would all learn faster and be able to apply those skills on our apps. Be able to quickly hack simple code together to rapidly test out ideas. Fewer ideas would wither away in our heads untested. You don’t need to become a software engineer; you just need to be able to build the first version of Twitter, or the first version of Yo. Those kind of things can be done by an average person who has no background at all in computer science. You can go on and hire proper engineers when you have the problem of needing to scale the app so that it can handle 10,000 users a day. What a good problem to have that will be.



  1. Tendy T

    Great advice Sir , better still one can even make videos of such lectures and post them on to youtube and grow one’s profile.

    1. TV

      I always follow your posts and i find them informative but much more convenient coz the info published here would have been already acknowledged or i was gonna come across them sooner or later. But your prize token is that you put your own perspective into your articles that i find very refreshing and so I follow… anyway, enough props for you. I meant to ask: your statement “The only reason I’m harping on about this common knowledge is that we have a skills problem in Zimbabwe. In the world in fact. Even as open as the internet is, and as filled as it is with great tutorials about how to do stuff, we still have a skills problem. Not enough people are learning how to write code”……. I disagree. I am in the IT industry, in Southern Africa but I am more of a geek than an “people’s person” but for the past 5 odd years, I have found myself in the midst of guys (and shorties) that will spit coding of all languages and levels at a whim but yet are barely breaking even on putting bread on the table. My take is that we are not suffering a skills shortage, we are suffering from a set up that has left a multitude of highly skilled unemployed workers with a bunch of qualifications and shiny fancy bits of paper that do NOT offer any solace in the real world. Bear with me- i know i digress from the above article, but my point is there is no drive to encourage the skilled to go further when they are at a loss when looking for positions that tally with their qualifications. I say this coz I am a “muchinda!” I do not specialize in any area of the IT industry but i achieve my goals by building the proper team for each short specific project that i fight tooth and nail for. So… insteaad of a simple 3 word question after your article, I choose to ask you this: You see a skills shortage (IT Industry), I see a wealth of bored guys with nothing to do. Please assist me, or post the areas that are lacking in skills and i guarantee you, the proper guys, with the proper skills will respond to fill. And this wont even be through me- I’m pointing all my websites and clients and outsourced labour in your direction. Lets go, Techzim!

      1. L.S.M Kabweza

        … my point is there is no drive to encourage the skilled to go further when they are at a loss when looking for positions that tally with their qualifications.

        I should probably start such posts with: “This article s for startups and aspiring entrepreneurs: ”

        But still, even for those looking for jobs, we do have a shortage of technically skilled people to employ. Dude, even Silicon Valley has this problem. But this post wasn’t directly about that.

        Thanks for the feedback.

  2. Rupert B

    Great Article Soul,
    You are right, anyone can learn code. My advice to anyone wanting to learn code, get yourself some tutorials from and learn WordPress; its much more powerful than Joomla or Drupal, trust me, ive built on both all 3 and WordPress is the way forward.


  3. Haha #dead

    Lol Soul you are the one who built the GolfZone website !

    I hacked that site in a few seconds. Mr SOul Kwabeza how can you right an article advising people to start programming when you clearly dont know everything about PHP programming to make your illustrations valid.

    Anyway Mr Kwabeza, have you ever heard of mysql_real_escape_string ???? SQL injection is just littered on your site.

    Contact me if you want me to teach you to code. Mr Kwabeza

    1. L.S.M Kabweza

      lol, no I don’t write code anymore as a primary job, But yes, the golfzone you see today was written by me back in 2005. When I left that startup years back, my recommendation was that they migrate to WordPress urgently as it had everything we needed and more.

      I never acquired enough skill to build a WordPress. That is the point of this article; average people can learn enough knowledge to build the first version themselves.

      On your offer to teach me the basics of SQL Injection, I’d love so please do get in touch. Email is kabweza at techzim. We can even do something via the hubs?

      1. Haha #dead

        OK will do.

        WHen is the next ZOL startup challenge ??

        1. L.S.M Kabweza

          Check back in a couple of days. We should be announcing.

    2. Anonymous

      if pple know you hack you are not doing it right

    3. tino

      can u please teach me coding from scratch please please

  4. Sam the Sahara Hacker

    That IS the way to go Soul. We have yet to fix that part in our community (sharing knowledge). A lot of people find it odd when I reach out to help them with their ideas and actual code, they usually suspect an ulterior motive then later realize there’s none.

    Startup ideas are a dime a dozen, and there are solutions to local problems I’d gladly help others build and then happily pay for . Just because we code doesn’t mean we want to make everything ourselves.

    I wonder though how we can spur this culture of sharing and learning skills, maybe our own “PyCons” and the like?

  5. Keith

    True, taught someone the Oracle OCA and OCP Java Syllabus and got them and myself certified in the process. Learning by teaching is the way to go.