PWSHub News

How to get programming experience when you can't find a job?

Hello Torb,

So I’ve seen this question pop out several times, and I understand the frustration of not being considered even for junior positions. The sense of being at a crossroads that you’re experiencing right now is absolutely normal, so take a deep breath, you’re good, this is normal. Your journey from graduation to landing that first job in tech can indeed feel daunting, especially when it seems like every job posting demands years of experience you don’t yet have. So let me share with you some of my thoughts that will hopefully help you find a job and gather some experience.

First and foremost, it’s crucial to shift your mindset. For the next six months, consider giving yourself a job. This job is about building software and immersing yourself in learning as much as you can — by building. The goal is to encounter as many bugs as you can and fix them. Each problem that you solve gives you +1 experience. You’re going to be leveling up your coding one bug at a time. Choose whichever language you feel the most comfortable with, whatever framework. At this point it’s not really that relevant. It’s about setting a structured schedule, dedicating full-time hours as if you were employed, with the goal of developing not just your coding skills but also your understanding of software development as a whole.

When choosing what project to build, resist the temptation to settle for simple tasks like creating a calculator app or a to-do list. This won’t do, we need something massive, something complex, aim for real-world applicability. Imagine you’re tasked with developing a full-stack blog platform, or a money-tracking app. This project alone encompasses a wide array of skills and technologies you’ll need to master, from front-end to back-end development, database management, and user authentication. The key here is to push yourself into territories that are unfamiliar and challenging, forcing you to learn and adapt. Remember, this is your full-time job, so you have a boss (yourself) who expects you to have a running real-world product.

While building, use GitHub not just for code storage but as a learning tool. Dive deep into each library that you’re importing, understand how it’s built and why, make sure you understand the mechanics and the reasoning behind each line of code. Again, think of it as gaining +1 experience to every function that you fully grasp. Your goal is to be able to discuss these projects with potential employers, demonstrating not just your technical skills but your problem-solving process and your ability to learn independently. For example there are popular libraries in Javascript world that get imported quite often e.g. Axios for request, or Express.js.

Documenting your journey is equally important. I’m not saying write a whole poem each day, just 1-2 lines of what you learned, accomplished. Keep a log of what you learn, the obstacles you encounter, and how you overcome them. This record will not only serve as a personal reminder of how far you’ve come but also as a valuable resource to share with potential employers or collaborators. Imagine you seeing this big ass list of things that you’ve learned at your “current job”. This will be your achievements that you can talk in the future. You will be able to explain why you chose that library, why you built things in a specific way.

🏄 Keep your algorithms and data structures knowledge fresh. Watch some youtube videos about practical use of the concepts that you learned as part of your CS degree. 

After you’ve done building the current app, select the next one. Make it more complex, take a look at some SaaS that indie developers do, and try to copy them. Your portfolio is your gateway to the industry. Set up a personal website, even a simple one, where you showcase your projects and share your experiences — this will set you apart from other candidates.

In the meantime, when you’re not building your main project — start doing open-source. On a personal note, I developed quite a few open-source libraries myself, and contributed to some. So this is definitely a thing and contribution to open-source projects can be incredibly beneficial. It connected me with like-minded people, I hope it will serve you as well. Working with others on an open-source project can simulate a real-world development team environment, providing insights into collaborative coding, version control, and project management. You can then say to the interviewer that you have experience working as part of a team. Moreover, contributing to open-source projects is a way to keep your skills sharp — there will be code reviews and and people will tell you what you’re doing wrong etc.

Remember, this is not just about building a portfolio to impress potential employers. It’s about transforming yourself into a confident developer who can tackle real-world problems, work within a team, and continuously adapt and learn. You’re doing this for you, not for some employer.

The road ahead is not easy, and there will be moments of doubt and frustration. But start small, and gather those +1 experience on your character and eventually you will find a job.

Cheers,
Vadim

Hot! The last couple of years I've been writing about CTO / Tech lead job. I've compiled all my knowledge into a printable PDF. I called it "196 Pages of No Bullshit Guide for CTOs". So if you're interested, take a look.

New! If you're a software engineer looking for a job, I started a Roast my Resume service, where I record a personalized video of me "roasting" your CV, which basically means taking a hard look at your resume as a CTO and commenting on all the good and the bad parts.

Source: vadimkravcenko.com

Related stories
2 weeks ago - C# version 1 was released in January 2002. It is a modern, general purpose programming language designed and developed from the ground up by the renowned Danish software engineer, Anders Heijleberg and his team at Microsoft. I’ve heard...
2 weeks ago - In this handbook, you'll learn how to build your personal brand as a developer to help you make your mark in the tech industry. With a focus on practicality and professionalism, this guide is designed for developers at all levels, from...
5 days ago - Ah, the joy of coding! There you are, cruising through your project, when suddenly – bam! – you hit a bug. It's like hitting a wall in a maze. But fear not, fellow coder, for I bring you the trusty map to navigate the treacherous...
2 weeks ago - We are surrounded by gorgeous web applications. Sometimes I catch myself admiring visual effects on some website and wondering how they were made. Well today I'll show you how you can create awesome CSS animations in React 18. As always,...
Other stories
1 hour ago - Using voice memos to brainstorm ideas is quick, and easier than ever thanks to AI-powered apps. Here's how to get started.
1 hour ago - Mistral Medium only came out two months ago, and now it's followed by Mistral Large. Like Medium, this new model is currently only available via their API. It scores well …
1 hour ago - Have you started learning React, only to face bugs that made you contemplate a career in goat herding? Don't worry – we've all been there. In this guide, you'll join me on a quest through the quirky wonders of React. I'll help you...
1 hour ago - The Geolocation API is a standard API implemented in browsers to retrieve the location of the people who are interacting with a web application. This API enable users to send their location to a web application to enable relevant...
1 hour ago - Explore the intricacies of reading and writing files in various formats, handling directories, mastering error-handling techniques, and harnessing the efficiency of streams for powerful, performance-boosting file operations.
2 hours ago - WordPress is a popular content management system (CMS) known for its flexibility and user-friendly interface. But its built-in editor is not ideal for collaborative editing. Many publishers who work with writers need collaborative writing...