Tapha Ngum is a self-taught web developer who has worked for a long list of impressive clients like BMW and successfully sold an app template business. In today's interview Tapha talks learning to code, building a business and getting freelance clients as a developer without a CS degree.
Can you tell us a bit about yourself?
Hi all, I am Tapha, a Developer with over 10 years experience in both the front end and the back end aspects of Web & Mobile Development.
I am a self-taught developer and have worked with a variety of companies, including BMW and Heathrow Airport. I’ve also taught courses, as well as started and then sold on my own personal projects. The most well known of these is MyAppTemplates.com. A site that provided iOS and Android templates to developers.
I am currently working on and building FromToSchool.com - which is a site that teaches developers new languages and frameworks faster, by leveraging the languages and frameworks that they already know. I currently work remotely, but primarily live in London.
If you don’t have a CS degree, how did you learn coding? Did you do any particular courses or bootcamps?
I am a self taught developer and learned primarily via channels such as YouTube and books. I have never attended any Courses or Bootcamps, but can name some of the sources where I have had great results.
The first language that I learned was PHP, and I learned this via the Kevin Skoglund courses on Lynda.com. I also got a lot out of the videos on PHPAcademy, now called Codecademy on YouTube.
The method that I used to understand programming, which I initially found very difficult to learn, was to simply see the learning process as a process of layering. I saw it as a process in which I simply gradually exposed myself to the same concepts continuously, revisiting them until they started to have a higher and higher degree of resolution in my mind.
The most important thing was that I trusted this process. I had the belief that it would pay dividends if I just stuck with it long enough. This belief, though it sounds simple, had an absolutely profound effect on my confidence as I was just getting started. It made me realize that simply continuing to learn would no doubt eventually lead to understanding. And this was crucial.
I think that what throws off a lot of beginners in the early days of their coding journey is the idea that if they don’t get it initially, they will never get it. But knowledge is built brick by brick.
Having the confidence to know that most of learning to code is just a matter of persistence can be the difference between ultimately becoming a professional programmer, or giving up and never actually becoming a programmer.
Ace technical interviews with Algo Expert- "NOCS" gets you 15% off.
How did you get your first programming job/ freelance work?
My first programming job was with a small startup company at Heathrow Airport. In the months leading up to getting the job, I had been immersing myself in my own pet projects, gradually building up the practical experience that I needed in order to one day land a job. It is my firm belief that the learning that comes from making things is far more potent than the learning that comes from things like books and videos, though books and videos are necessary as an initial step.
When you’re making something, especially when that thing has some real-world practical value and solves your or a problem, you start to involve more and more of your senses. It has been proven scientifically that the more senses that are involved in a learning experience, the greater depth of learning that occurs.
I’ve also found that learning from multiple different sources at once helps to increase the depth of learning that takes place. I guess that also has something to do with engaging more of the senses. As each learning source will have a slight difference.
You’ve had some impressive freelance clients like BMW. How did you get those jobs?
Getting to work with a company like BMW was a huge moment for me, especially being a self-taught developer. It was sort of a confirmation of my level of skill. I imagine that it is the same feeling that actually getting a degree would engender.
Getting the contract was actually pretty straight-forward. I saw an email in my inbox from a recruiter who had seen my CV on a job site, and had decided to reach out to me. I rarely would actually reply to these kinds of outreaches but on that particular day I saw who the client was and just thought, why not?
About half of me still thought that there was no chance that I would be getting hired by a client like BMW, even after over 10 years of experience as a programmer and even while meeting the criteria perfectly.
I got a reply within about 20 minutes of sending the email and was on the phone with the recruiter just a few minutes later. I was invited to attend an interview at the King’s Cross offices in London and after 4 days was told I had passed. I got started the next day.
Can you tell us about building and selling your MyAppTemplates business?
After spending some time at the small company at Heathrow Airport (about 8 months), I decided that I wanted to try my hand at developing mobile apps. This was the time when people were cashing in on the app store gold rush. Some days you would hear stories of people building apps and within 1 month, shooting to the top of the app store and raking in $100k+ a month at what, it seemed, was overnight.
My idea was to build a facial attractiveness comparison app, that would compare your face to the faces of celebrities and see who was more attractive. What I noticed was that most of the apps that got a lot of attention relatively quickly, tended to be novelty apps like the one I had in mind.
And so with that Idea, I got to building. But there was one problem. I did not actually know how to build apps on mobile. My speciality at the time was PHP and the backend and had no idea where to even start to make a mobile app. But having spent some time playing with WordPress, and seeing how much time and energy themes could save you when they meet your use case (i.e. a gym theme for a gym company), I wondered why something similar did not exist for mobile apps.
It was with this questioning that I started to explore the possibility of maybe scrapping the facial attractiveness idea and instead, putting my energy into making app templates for people who were experiencing the same problem that I was. I decided to sell shovels instead of digging for gold in other words.
On May 25th 2012 I registered the domain name MyAppTemplates.com. I had saved some money from my job at the company at Heathrow so I used that to create the first of the templates.
After doing some research, I could see that the SEO opportunity to rank for the keywords that were associated with app templates, and even the keyword ‘app templates’ itself were wide open. So I jumped right in. My strategy was to make 100 guest posts to build link juice to the site over the course of 6 months, while I gradually made more and more templates for various use cases. Such as Taxi apps, Delivery apps, Gym apps.
This was exactly what I then proceeded to do. Though it ended up taking a little longer than 6 months. In the end, it ended up taking a year to get to a good level. Which was when I sold it. In its best month, when we did a deal with AppSumo, we made roughly $21,000.
Overall it was a great learning experience, and helped me to truly level up in many areas. Which, I think is the best part of the entrepreneurship journey. I highly recommend it to everyone who feels that they might have the knack for it.
What advice do you have for someone who wants to get their first programming job but they don’t have the time or money for a CS degree?
I think that if you’re starting to really think about learning then you should first go to sites like Twitter, Google or Reddit and search “programmer/coder learning path”. You will be able to see a number of different learning paths that other developers have taken. Searching in this way also enables you to get the path that is the most up to date. When you find a modern learning path that resonates with you, start to break it down into its core concepts.
Start to guide yourself through that learning path by applying the belief driven ‘layering’ concept that I described in the previous “how I learned to code” question. After you start to feel a reasonable level of confidence, think of something close to home that appears to you as a problem that could be solved by what you know right now.
Get started on it and use resources like StackOverflow to help you out when you stumble on your knowledge gaps. This, I think, is the best way to get yourself to a decent Junior developer level within the space of about 6 months.
Have you ever had imposter syndrome and if so, how have you dealt with it?
I have, in fact, this is the primary reason why I ended up creating FromToSchool. To me, most of the benefits that I’ve managed to gain from overcoming imposter syndrome have come from teaching. I feel like the process of teaching has given me a better perspective and understanding of my own level of knowledge in comparison to others. It has given me more empathy, which I believe is key to mitigating some of the negative side-effects of imposter syndrome.
Can you tell us about your constructivist approach to teaching coding and your new course?
With constructivism, The emphasis is on first, gaining empathy enough that you can see the pre-existing knowledge structure in your learner that can be leveraged. And then once you’ve grasped that, pulling on that structure in order to efficiently store new information into it.
This approach, if applied well, can make your programming tutorials and documentation easier to understand for your learners, and simply that much better overall.
This is the style of teaching that we use within our books and courses at FromToSchool. We are creating the first programming books that aim to focus strictly on teaching new technologies to experienced developers, using the languages and the frameworks that they already know. No brain searching needed.
Our goal is to not only allow developers to increase their learning speed in order to keep up with and match the speed at which technological change is taking place, but to surpass it. Be sure to check out our books and courses if this approach and article interest you and you’d like to learn more.