Some time ago you decided to make the decision to become a software developer. You purchased online courses, books, and started the hard journey of learning how to program. You slowly complete your online courses and finish up your GitHub portfolio to make it ready for your job hunt.
You start applying for junior developer jobs, and not just a few, but hundreds of jobs, and getting only a few interviews and can’t make it to the next rounds of interviews. The journey becomes harder and harder as you don’t get jobs, up to the point you start thinking you made the wrong decision of becoming a developer in the first place. Does this story sound similar to yours?
First of all, you didn’t make the wrong decision to become a software developer. Every developer has been on the stage where you are. It is a matter of knowing why it is hard to get a job that prevents you from achieving your main goal. Hopefully, I will help you understand the why.
Finding the first job in any industry is hard, but this is notorious for entry-level and junior developers looking to start their professional career.
One thing you learn in life is nothing is easy. It is not easy to become a soccer player or a musician. In the same way, it is not easy to become a software developer.
Table of Contents
Not Assessing the Competition
You have to think about how many people like you are learning a programming language and want to eventually get a job. There are a few questions you should ask yourself such as:
- How many people go to higher education to get a Computer Science (C.S.) degree to get a software engineer job?
- How many people go to bootcamps to quickly learn all the skills required for a job?
- How many people have attempted to learn on their own how to code?
Every year, there will be a big pool of candidates lacking the experience needed for a job and looking to get their first opportunity, just like you. In the case of getting your first programming job, it is not different.
Lack of Trust
There is a reason why women tend to have only one hairstylist: they don’t trust their hair with anyone else. What does it have to do with not being able to get a job? Let me explain.
When companies decide to look for software developers, they are looking for someone who will show up, who will have the skills needed for the job, who will communicate effectively, who will get the job done, etc. Essentially, they are always looking for the best candidate, which is hard to find for them as well, especially software developers.
One way to think about the hiring process is to “gamble”. Every time a company hires someone new, they are putting a bet on that person in hopes to get a return back, which is to get the job done.
The lack of experience junior developers have makes hiring managers think of a riskier gamble. The probability of finding a good one will be harder. In other words, there is a lack of trust in junior developers.
You might say, there is a reason why junior developers are looking to get that experience in the first place. However, programming is a little bit more complex as you need to prove at least a certain level of knowledge the employer will consider required for the position.
For junior developers, it is often more important than anything else to show proof of knowledge of programming principles and programming language, along with a solid understanding of a specific topic related to development. This could be SQL joins, styling patterns, API middleware, etc. showing employers not only the expertise in a specific area of development, but it shows the interest in software development.
Showing passion for your career is a way to build trust with potential employers. Just remember that just as it is hard for junior developers to get a job, it is also hard for companies to hire junior developers as well.
Looking to Work for Big Tech Companies
Every junior developer dreams of working on Facebook, Google, Amazon, Netflix, Uber, Twitter, and all of the other big tech companies they know. Therefore, most junior developers decide to apply there looking for a chance. Can you think how many resumes a recruiter over at these large companies gets for one opening position? About 250 and even more than that.
Looking for a job with big tech companies is hard, not only for junior developers but any developer. There is a wider pool of candidates for these companies to choose from. Hence, they have the luxury to have multiple rounds of interviews if your resume is considered in the first place.
While it would be ideal to work for any of these companies in your resume, the reality is it would be really hard to make it happen, especially for those starting their career.
Applying for Jobs in the Wrong Platform
Looking for opportunities in a popular job posting sites such as Indeed or Glassdoor is an excellent idea for those looking to get a job outside of programming. Every aspiring developer has made the mistake of applying for jobs using those platforms that only serve the purpose of filling your email with a bunch of SPAM.
There are other platforms that are suitable for software developers looking for newer opportunities, which some of them are tools used every day by any programmer in the world, such as:
- Stack Overflow
Looking for Remote Jobs
There is an increase in remote jobs opportunities available, especially for software developers. In theory, it should be easier to get a work-from-home job. However, it could be much harder.
Remote jobs mean everyone in the world has the chance to apply for the job. However, let’s say a remote job is only available for people living in the US. Can you think how many junior developers from different countries could be looking for the same job because they don’t have to relocate to work for a company?
Lack of a Portfolio or Portfolio Doesn’t Stand Out
Nowadays, junior developers applying for jobs without a portfolio will most likely not get a chance at all to be considered for an interview. However, what is a portfolio in the first place?
A software developer portfolio is a list of projects you have developed or collaborated on in the past. It serves the purpose to show employers or clients what you are capable of without necessarily giving them your resume.
It is the same thing as if a business would want to hire a web design company to develop their website, but wants to see proof of other work they have done with their other clients giving the prospective client an idea of what the web design shop is capable of.
The same way happens with developers looking for jobs. Employers want to see the projects candidates have developed and the quality of them.
GitHub is the most popular for developers to host their projects or have their portfolios. Developers can make their projects or repositories public for anyone to take a look at their code, or keep them private if they prefer so. It is common to see employers asking for the candidate’s GitHub account allowing them to see the quality of their code as well as software architecture patterns if any included.
However, having a GitHub portfolio is not just enough. Most junior developers will have a TODO portfolio project. It is ok to have one as it proves a basic understanding of CRUD operations in software development which are often executed on a daily basis. However, can you think of a way to make that TODO project stand out?
Junior developers should look to make their portfolio stand out such as providing excellent documentation and code comments, providing explanations why they decided to solve a problem in a specific way, or sharing the challenges they faced when working on a project.
Did you Learn the Ideal Programming Language?
Those with more experience will know Visual Basic.NET is not a modern programming language and is not even considered for new projects unless there are legacy projects that started on Visual Basic.NET. While the chances of starting with Visual Basic.NET nowadays are low, there could be still the chance of that happening.
Applying for any Job
You have probably heard of other developers saying to apply for jobs even the ones you don’t meet all the requirements, and at a certain point, I would recommend the same. However, whether you are a junior, mid, or senior developer, you should look for jobs that have a relationship to the skills you have.
Let me explain.
How is that possible? You already have the concepts of how typical backend processes work when you have worked in the backend regardless of the programming language used. When you have never worked in the backend, and you are looking to apply for a backend job, you have to show with one way or another you are going to get the backend job done, not the frontend job.
Having said that, don’t just apply for any job. Instead, try to find what is the relationship between your current skill set and the job requirements. Not all of them will match, but identifying transferable skills is a good way for employers to consider you at least for an initial round of interviews.
Why Companies Don’t Hire Juniors Developers
For many junior developers, it feels discouraging when they apply for a job, and companies don’t even reply to them with a message notifying them they are not considered for the position. It feels counterintuitive companies are having a hard time finding qualified talent while they reject most junior developers looking for a chance to get experience.
You would think it would be cheaper for companies to hire junior developers as they are not as expensive as senior developers. However, junior developers represent a risk for many companies and can become more expensive in the long run than senior developers.
It usually takes about 3 months for any developer to get up to speed in a company to become productive. However, for a junior developer, it could take more than 3 months, usually 6 months or even a year for them to be productive.
Yes, companies should establish training processes for all their incoming developers, especially for juniors to get their skills up to the minimum level required for the company. However, there is a difference between training a senior developer and a junior developer.
Senior developers will be able to understand new knowledge much quicker as they can relate how things work based on the projects they have worked on in the past. For junior developers, there is no telling whether they will be able to pick quickly new concepts on top of being fresh programmers as it is hard to relate certain concepts without having experience working on other projects.
On top of that, employers think about the average time software developers stay at a company, which is an average of 2-3 years. Sometimes, it could be much less than 2 years. Some people change jobs after one year or even after 6 months.
What would you think if you were an employer who hired someone who took you 6 months to train and that person is only able to do produce quality work after 9 months, and then you are notified the junior developer has found another opportunity after a year of work with your company? Certainly, you would be concerned about how profitable that investment was.
How Can Junior Developers Get a Job? Advice from a Senior Software Engineer
Getting a junior developer job could be easier than many people think. It is ideal for a junior developer is to get a mentor to share their experience and provide feedback on what is the best way to get a job. Unfortunately, not everyone can find a mentor.
A good recommendation for those looking for a junior position is to go to local software development meetups, get to know other developers in the area. You will find developers are also owners of software development companies. By simply exposing yourself and learning from others it shows you are interested in the programming industry.
Avoid looking for remote opportunities unless there are no software shops in the area, but instead, look to work for a company locally. Once you get enough experience, you can start looking for remote jobs where you can prove your knowledge along with more experience gained from working at a local company.
If you are in a financial position, don’t look so much at the salary, but look to get experience working on real-world projects and learn as much as you can. Usually, junior developer jobs might not have the highest salary, but they compensate enough to make ends meet comfortably unless you have a lot of financial debt.
By attending local meetups and establishing relationships with other developers, you will find out scenarios where other developers will help you get a job in their companies without even having the need of showing a GitHub portfolio to showcase your abilities.
Finally but not least, try focusing on learning one programming language and be good at it, and not just basic programming knowledge. I’m talking not talking about being an expert in a programming language, but having a good understanding of how most things work. Applying the 80/20 rule or Pareto principle, where 80% of outcomes will come from 20% of your skills and knowledge.
Finally but not least, DO NOT GIVE UP. Trust the process. Nothing is easy in this life. Try to learn from those experiences where you didn’t get a job. Think about what you could have done better or how to avoid making certain mistakes during interviews. In the end, interviewing for jobs is also a skill.
Every year, with more and more demand for software developers, and universities and bootcamps getting fresh developers ready to look for developer positions in the job market, it can be hard to find a junior developer position, especially when it is the first programming job for many people.
There could be several reasons why it is hard for junior developers to find an opportunity in their careers. However, identifying the whys behind the reasons is important as it allows to find hidden opportunities where there is less competition. Hence, increasing the chances to land in a developer job regardless if someone lacks experience as a software developer.
What did you think of this article?
Let me know by replying on Twitter or any of my other social media platforms.