Job postings can be intimidating at first. Don’t feel like you need to know every single thing, or have exactly the years of experience that are mentioned for a specific skill.
Try to find reddit threads or articles where people are talking about this exact thing: feeling inadequate technically for job listings for developer positions. You’ll see people repeating over and over again that those listings are blown out of proportion, or that they’re usually not written by technical people anyways.
Some listings do seem like a description for the perfect candiate and may come off as more of a wish lift. We don’t live in a perfect world, and the perfect candidate is probably someone who will produce top notch work, all the time, for little money. Once you’re hired, you may find that the tools and skillls for a position are a small subset of what is actually in the description.
I’ve worked with people who have had decades more exprience than I have. What I bring to the table from being part of the team is someone who can get things done, or at least invest time into learning how to do so. My professional experience spans about five years and probably four different jobs.
I never met the requirements on a job description for any of the jobs I’ve had, and instead opted to let my resume and cover letter do the work to speak for me. When I had very little experience, my portfolio did that.
In one interview process, the technical manager was on the fence about bringing me on, given my limited experience as a developer. On the plus side, finding Go programmers was rare, and at that point I was already working on it for 2-3 years for fun. I predicted this beforehand and created a webpage of the portfolio for everything I did in Go: all of my projects, all of the blog posts that were featured in newsletters, etc. I flexed pretty hard. The next conversation included his exact words: “I’m so glad you included that link.” That page still exists, and I include it in my cover letters and even on my resume.
As someone looking to land their first job, I’d say that learning core fundamentals like git, caring about testing, and being consistent and knowledgable about the technologies you’ve been learning are just fine. Don’t focus on knowing everything or making everything perfect.
One exercise I tell people to do is to try and look at opportunities they’d actually want. Compare the job descriptions and find a pattern on the technologies and key words that are being used. Take some time to narrow down a few of the ones you see most often, then do some research. What they do, how they’re used, how popular they are in usage, how viable getting a job is with that tech, etc. After agreeing with those things, try to make a commitment to learn.
Instead of opting to create projects that just take up space and act as ‘portfolio filler’ to show that you’re ‘passionate’ and consistent, use each one to learn something new or do something that dives deeper into the project you did before.
Rely on the internet, your peers, or communities to find out how to continuously improve. Try not to get caught up in doing things alone, you might find that your direction and learning can be sharpened with input. Ideally, you would be learning and doing the same things you would when working professionally.
Job listings are blown out of proportion. I’ve heard, read, and experienced this fact much more than I have about them being extremely accurate. Add depth to your skills, be reasonably consistent, and apply to the opportunities you want.
At the very worst, you’ll just get a no, or be ignored! Better yet, you have a change to gain interview experience (which is very, very important), insight into where you stand professionally by having your skills gauged by people in the industry. At the very best, you’ll end up with an offer letter!