As a person starting out learning software development you might get to a point where you keep on watching tutorial after tutorial, reading technical books hoping that one day you will know enough to get your first developer job. A lot of newbie programmers find themselves in the endless loop of watching tutorial videos and reading programming books, unfortunately, some of them give up because they never felt ready enough to build their own software(I almost gave up too).
In this article, I will share my struggle and how I have overcome them.
I started out learning to code in 2017 and after a few months, I noticed that I kept on watching different tutorials(Udemy courses and youtube) while reading some books but I never felt ready to start a project or create a simple side project without the guidance of a video tutorial or book. This made me wonder if I was ever going to be a programmer.
I continued in this tutorial hell for several months, watching tutorials and coding along hoping that one day I will be the developer. The reason I kept on watching tutorials was that I was afraid of leaving my comfort zone. Luckily I ran into an article about escaping the tutorial purgatory. This was a turning point for me because the writer described the exact situation I was currently in and also listed some things that helped.
After reading that article, I made up my mind to reduce the amount of time I spent watching tutorials and invest that time in building applications. But it wasn't easy to start building applications because it took me out of my comfort zone of being walked through building an application by a video tutorial or book. I also had to think of what to build because I could never build the next Facebook. I had ideas of simple applications to build but they all felt difficult and I didn't know where to start from.
The process of building my website was an eye-opener for me because I had to learn a somewhat new technology while trying to create something of value. It was a very intimidating process for me but it made me understand a bit of what software development is about.
Building my own application taught me somethings which have helped me so far in my career.
Reading error messages : This is one thing a lot of newbie developers overlook, initially when I faced an error message when coding I immediately go into panic mode looking through my code trying to figure out what broke it without paying attention to the error message and more often than not the error message is your biggest clue to figuring out what broke your code.
Google/ Asking the right question : I always felt I needed to get the answer/solution to my coding problems without searching google or StackOverflow, so I'd spend hours trying to figure it out on my own and get frustrated, when I could have easily done a google search or ask for help on StackOverflow/similar platforms. Also in order to a response to your question, you have to learn how to ask technical questions and Gordon Zhu provided a guide in his article How to be great at asking coding questions.
Problem Solving : I learnt how to breakdown my problem into pseudocode, I may not write down the pseudocode but I know the steps I need to convert to code so I can achieve a particular result.
When I was done I had a working website despite the fact that the design was terrible. In that process I was able to learn Gatsby, React and a CMS(content management system i.e Contentful)
After this, I was lucky enough to have a software developer friend who was working on a couple of freelance projects so he delegated some tasks to me which also helped me get my hands dirty and this also helps me grow my confidence(confidence is important). A couple of months and 10+ interviews later I was able to land my first developer job.
Code along while watching Tutorials: Initially, when I started watching tutorial videos I didn't code along, I just binge watched like it was Netflix or Lord of the Rings but soon enough I started coding along, googling any syntax/code I didn't really understand and building my own copy of the tutorial application. Also after watching a video tutorial I think it is a good idea to go a step further by adding a new feature to the tutorial application based on the knowledge you got from that tutorial or change/break something so you can get used to problem-solving, googling and debugging because these are some of the core things involved in software development.
Try building an application : This can be intimidating at first but this is the best way to hone your skills. Just pick the language/framework you are interested in, learn the basics and maybe watch a video tutorial then try to build something simple like a Todo application(yeah yeah not another todo app). Well if you are tired of build todo apps you can check out this list of awesome alternatives or you can build a CRUD(create, read, update, delete) application then progressively add new features like authentication, authorization e.t.c. Just build stuff, you will grow faster that way.
Try to get experience with production applications: I was lucky to have a friend Isah Ibrahim who gave me a chance to learn while working on freelance projects with him. If unfortunately, you don't have a friend like that then you can look for an open-source project that you could give you that experience. Lucky me I also found a React open source project called Coding Coach where we are building a platform where people can find mentors. This project helped me learn more about React because I worked with some really really good software developers. The project is currently in its Alpha release.
Finally, If you are still looking for your first developer job my advice to you is to start applying for junior/mid-level developer roles because there is no harm in trying and these interviews if conducted properly helps you identify the areas you need to improve and also skills that are needed by companies.