There are a lot of ways to get hired into your first software development role. Today, I want to share mine with you.
I've been practicing a lot of programming while I was still going to school. I found it fascinating what I could create with Code.
I started to learn C# in 2008, because my Dad offered me some work in his business, using C# and .Net. There was another developer who also worked for him, using C# as well. So, with me also using it would allow to work together.
Over two years, I created a lot of projects. Most of them were "Just for fun", because it scratched an itch like "I'd like to manage my notes and ideas properly" or they served the purpose of practicing new language features, design patterns and so forth.
But a few of them, mostly the ones I wrote for Dad, were used by other people. These were the hardest ones to create and maintain, but in retrospect also the best ones.
In 2010 I had to start working, mostly because a few other options I had lined up after school didn't work out.
Most of the job ads weren't written for somebody like me. I went to a professional college, didn't have full-time work experience, and no experience with tools like version control yet (though I knew about it and what it's good for).
I applied anyways. As expected, most companies rejected me right away. But a few extended the invitation for an interview. Why did they invite me for an interview, even though I didn't match the criteria they had outlined in their ad?
My Dad had recommended to me that with my application, I include a list of projects I had worked on. This list contained most of the projects that were used in Dad's business, plus a few of my own worth talking about. I included the project's name, a brief description and the technologies used.
During these interviews, we would come to talk about my projects eventually. Common questions were "What does it do? What problem does it solve? Explain it to me" or "What did you learn during development? What were the obstacles?". I explained the project's purpose, what technologies I've used and why and also what I've learned from it.
The company that eventually hired me also had a questionnaire filled with questions around C#, .Net, SQL databases and a few other Windows technologies. Most of the questions were multiple choice, as far as I remember.
I also remember that I asked to skip two entire topics because I had no experience with that whatsoever.
A few months later, my boss shared his thoughts on what they've hired me., I got hired because I was upfront about what I knew and didn't at the time, together with the experience I had gathered with these side projects.
Now, what can you take away from this for your own journey? Here are the three learnings:
- Make a list of things you want to learn, like "How do I use the Observer Pattern?", "How do I pass data from one dialogue to the next one?"
- Create small projects for each one of these list items. These projects don't have to be completely polished. Their only purpose is to help you progress your learning. If there are unfinished parts, that is okay and part of the exercise.
- For your job application: Make a list of projects (include GitHub Links if possible), together with a brief explanation and technologies used. Use this as a basis for further conversation during the interview.
If you like to read more of this, make sure to subscribe to https://learn.21-lessons.com/junior-dev-insights