You don't have to be an expert
You don’t have to be an expert, you just have to be confident in your ability to figure things out 😎. Being good at what you do is not a function of how long you’ve been on the job or in the field but a function of your exposure to ‘use cases’ in that field. With software development or any discipline in general, there’s a learning curve to become an expert or professional. It is said that it takes 10,000 hours of active engagement in a field to become an expert. I’d rather not believe I have to code for hours to become a pro developer 😄. Let's debunk that.
Building uses cases will help you become a better developer. A lot of beginners struggle with the technologies they use, most are so bothered about best practises, which libaries/packages to use, what is the latest handouts of frameworks, so much so they learn haphazardly and that in turn stunts their growth as developers. One way to combact this is building for use cases. Take for example, you just learnt the basics of HTML & CSS and to validate your understanding, best bet is to use that knowledge to whip up a login form (use case), in that process you'll uncover patterns that best suit that use case. Use case here is building with intent, building a feature, that's how you get better.
If not anything, one thing needed for sure to become a pro developer is the ability to learn and unlearn. Even after sticking to one language, one framework, there are still set of tools or techniques that resolves an issue in different ways 🤷🏽♂️. Be it a feature you want to implement or an idea still going through the brooding process, your level of exposure to that use case will help navigate you through that problem. I remember first time I needed to connect to an SQL database in NodeJS, because I had been exposed to connecting to a NoSQL database(MongoDB) with both the native driver and ODM(Mongoose), I knew that those might also be available with SQL databases, after research I found out that SQL databases have their own native drivers and interestingly there are ORM’s too (typeorm, sequelize, prisma) that connect to almost all SQL databases. That was mind blowing 🤯. Having discovered that, I asked myself why an ORM/ODM was created since they’re native drivers for each database, that’s when I stumbled on the subject of 'clean architecture' and what it tries to achieve, how parts of your app should best be built decoupled from other aspects, that in turned exposed me to another topic ‘microservices’. It goes on and on. Although not related to the use case I started out to build, I learnt about a software design philosphy that will set me up for good in the field 😉.
Another instance was in mid-2020, I got into an internship program, I had coding experience (binged tutorial videos 😁) but I had built nothing. We were to build a real-world 'use case' app, and that was it. I joined the backend team and in 3 months, we built the API for a company(fictional) that manages global travel for its workforce, that experience alone boosted my confidence and put me on the path to become a pro at what I do.
Even so, be it a unique use case you intend to build, the confidence you've built over time in tackling previous challenges is what plots the way to figuring things out. Build something that validates your learning, build stuffs. The validation of your work is what makes you pro not the hours involved!
Speaking of validation, it refers to how that piece of work adds value either to an individual or a business. Look around you, what businesses do you believe your services can change, it can be a local dry cleaning service nearby, build a tool for that business, could be a friend that has content but doesn't know how to go about showcasing it, help out with your skill sets. You don't have to be an expert at it.
Keep learning, keep building! May the force be with you 🚀.
Get emails from me about web development, techie stuff, and latest articles.