Intro
I’m Ibrahim Alausa, a software developer from Nigeria.
When I decided to become a software developer, I researched the programming languages I should be familiar with to increase my chances of getting a job in Nigeria and noticed many companies were looking for PHP(Laravel) and Javascript(JQuery, React, and NodeJS) developers. I learned just enough to get myself a role at any company.
After almost a year of studying, reading articles, watching tutorials, attending meetups, and most importantly coding, I finally got a job 🎉 🎉🎉 .
After working professionally for the company for about 9 months, I was comfortable with a couple of things including
- Build user-ready features with ReactJS and Redux.
- Convert mockups to functional User Interface,
- Became familiar with building APIs.
- Write Tests using Jest, Mocha, and Chai
- A lot more :)
Then there was a lay-off
Unfortunately, there was a massive lay-off in the company and I had to start searching for a new job. I thought it would be a smooth ride since I had some skills on my toolbelt, however as time went on I realized the saying, Job search itself is a full-time job is a very accurate one. Believe me when I say It was not as easy as I thought.
After attending a lot of interviews during this period, I realized that there are lots of gaps in my knowledge. Many Interviewers didn’t just want to know if I can build and deliver features with my stack. They also wanted to make sure I have a concrete understanding of important concepts about the tools and programming languages.
A few questions from several interviews
- What are closures in javascript?
- Please can you explain the concept of hoisting in javascript?
- As a react developer, what would you call a SIDE EFFECT in your application?
- As someone familiar with redux, please describe the thunk in redux?
Those are just a few from a lot of questions I was asked at different interviews. Since I could not accurately answer many of these questions, it was very evident that I didn't have a firm understanding of certain concepts.
The problem was my learning approach
These interviews made me realize that the problem was my approach to learning programming when I was trying to get that first job as a software developer, I focused mainly on knowing how to implement a feature and get the job done.
I never considered having an in-depth study of any technology I was using, to learn about how it fits with others. I just needed to get a job with a steady monthly income. I never recognized it, but the same mindset stuck with me even after getting my first job, so it was no surprise that I found it difficult to explain core concepts concerning the technologies I was working with every day.
My new learning strategy
If I can't explain it totally, I don't understand it well enough.
This platform will serve as a way for me to expand on whatever I learn extensively, just like I’m teaching a 5-year-old. I can't wait to experience the light bulb moments.
To make sure I fill up my previous knowledge gaps, I have decided to become a Newbie once again 😎 .
It's a Wrap
I have a lot of respect and admiration for developers that teach. Especially those that can break down complex concepts and terminologies to anyone who is trying to learn. I don’t think it’s hard to figure out that these people can do these things because they have a solid understanding of the tools they work with and that’s my target.
Thanks for making it this far. I appreciate it. This is a new start for me and I hope you will also take the time to reflect on your knowledge gaps and work towards having a solid grasp on the programming languages and tools you use every day.
Keep Coding, Keep Learning 💪🏿 .