If you’re someone who decided to change careers to work as a web developer, then you might be having a hard time trying to land your first job. You aren’t alone.

We all have heard that there are tons of tech jobs in the market but there aren’t qualified professionals to fulfill them. So you go and spend days doing online courses and getting certifications so you can join the wave. Doing this is great to get started but they can only help you at a certain point.

Alright, what else can I do? How do I get experience if no one is willing to give me an opportunity to even get started? Sorry to bring bad realistic news, but no one will give you an opportunity. You have to create yours.

Just practicing your coding skills isn’t enough

When I was learning how to code a few years ago, I would ‘practice’ my coding skills by following online tutorials and creating tiny apps. This was a great way to get started but eventually, I reached a limit. I needed to get real experience, otherwise, I wouldn’t get out of the tuto hell world.

I knew I didn’t have any experience to apply for jobs, so I had to try something else. I went to local meetups, I gave talks, I attended 2-days workshops until one day I applied to be a coach in one of them. Besides that, I also shared my journey and coding studies on my blog.

Because I was putting myself out there and I had great communication skills, I landed my first internship. There are no guarantees this works 100% of the time but it creates more opportunities than just do another course.

Landing this internship wasn’t easy and I almost gave up because I couldn’t finish the coding challenge! I was so focused on what I lacked that I couldn’t see what I had to contribute.

It’s easy to focus too much on technical skills and forget about the other skills that make you a better professional. Yes, you will be coding on a computer but your work will be designed, reviewed evaluated, and used by humans.

Can you see the difference between “keep practicing” and actively creating your opportunities?

You don’t need to know everything. No one does. You learn by actively putting yourself out there, and not by doing another workshop, especially when you already have done several of them.

Schools and colleges are living proofs that ‘learning’ in a controlled environment doesn’t guarantee you’ll know how to solve problems when you’re out there in the real world.

You don’t need to get a dev job to get experience

After you understand and apply the basic concepts of programming, the fastest you grasp opportunities to immerse yourself in real-world projects and working with others, the faster you’ll advance your coding skills.

Whenever you spot one of these, do it without hesitating (unless, of course, it’s an unpaid internship by a company making lots of money).

It doesn’t matter if it’s an internship, open-source contributions, or solving a problem for a friend/family member as a freelancer professional. Important to mention that even landing an internship is also competitive but it might lead to a full-time job offer.

By applying what you’ve learned in a direct approach like this you’ll know what you don’t know. It’s way better than learning every best way to implement this Rails or that React feature. Do it, learn, keep doing this.

If you decide to keep practicing on your own (aka, continue doing what you’re doing) you already know the results. It’s like always working out the same muscle with the same weights at the gym: it’s cozy, it feels like progress and everything will stay the same. It also means you can’t complain about the outputs if the inputs are always the same.

Oh, and next time you’re convinced you should wait until you have learned x, y or z to apply for jobs, try this: put a white male U.S. senator cape, leap through the doubt and show up. Thanks, Leslie Knope.

What do you have to lose? You’ve already done something brave: you changed your career, and learned how to code! Keep challenging yourself. The best is yet to come!