I’m currently a lead educator at Coder Academy, and I have been a software engineer for over twenty years. For a lot of those years, I led development teams and for some of them I was an engineering manager — both roles came with responsibility for making sure I had the best people on my teams for the project, and that they worked together well to get things done. I’ve worked with hundreds of other developers in my career, and I’ve mentored at least fifty individuals, all at different points in their career journey. Over the past nine months since I’ve been at Coder, I’ve talked with many companies in Brisbane about what they look for in a junior dev for their team.
I have some insight on what will make you really stand out when you are applying for jobs and at interviews as a new developer.
It’s important to understand what qualities most companies are seeking in applicants for junior development positions. Let’s look at three important qualities, how you can develop those qualities, and how to demonstrate that you have them.
Connections, fundamentals, and enthusiasm
In this field particularly, human connections are important. As developers we work so closely together. We face challenges together. We celebrate victories together. We share our weaknesses and strengths with each other so that we can support each other in ways that will help us solve problems together. Very few programmers work alone — I’ve never met one.
Go to meetups and hackathons. They are free, and typically provide food and drinks. At a meetup, people who are interested in the same technologies get together and share their knowledge and connect. At hackathons, people get together to solve problems, often for the greater good.
Here in Brisbane, the meetup communities for technology are vibrant and welcoming. From what I hear, they are in other cities too. You will always learn something new at a meetup or hackathon, and you have an opportunity to meet people you may like to work with and who would like to work with you. Talk to people. Ask them about where they work and what they do. You’ll meet people with varied roles who work for many different companies, and you can learn a lot from them.
Some people have told me it feels fake to go to meetups and talk to people because it feels like they have an agenda to get employed. I have a simple answer. Don’t do it to get a job, do it because you are genuinely interested in learning about what opportunities are out there and where you fit in. Do it because you are authentically curious about the people in your community who share your interests in technology and what they can teach you. I promise if you do that, you will naturally find yourself connecting with people in a way that brings richness and value to everyone, and opportunities will come organically.
When you find a company that interests you, learn about them. Learn about what they do, their values, how they work, and their technology stack. If you aren’t experienced in their technology stack, learn more about it. Connect with people who work there if you can at meetups and hackathons, or on socials like Twitter and LinkedIn. Find out how the company’s values align with your own values. Distinguish for yourself why you want to work for that company and what makes you feel connected with the company. If you can do that and articulate it in a cover letter and an interview, it will make you stand out from other candidates.
Substantial and proven technical experience is not important to someone hiring a junior developer. It is important when hiring a senior. It is, however, important to have a good understanding of programming and problem solving fundamentals, along with solid, demonstrated skills at a basic level.
You develop fundamentals with practice. You practice by writing well-organised, well-commented, well-structured code, even when that code is very simple. Get comfortable with common data structures (numbers, strings, lists, objects) and basic control flow mechanisms (loops and conditionals), and how and when to use them. Practice solving problems like a programmer by writing flow charts and pseudocode. Practice writing simple algorithms by doing small code challenges like the ones you find on codewars.
If you still don’t feel strong in fundamentals, keep working at it. Avoid the temptation to learn a new framework or language until you really understand the fundamentals.
And once you have a solid understanding of fundamentals, work on a project. It doesn’t have to be big or complicated, but work on something that will allow you to demonstrate all of these fundamentals to create something you can show off. Use a source control system (like GitHub), so you can share your work with mentors, peers, recruiters, and potential employers. Having code you can show is really important when you are just starting out in your career because you don’t have work experience on your resume to show yet. You have to be able to demonstrate that you do know and understand fundamentals and that you are willing and able to learn.
When you go to an interview, bring your laptop. Be ready to share something you are proud of and don’t be afraid to share what you learned. Talk about at least one challenge you faced and overcame working on the project. This is a great opportunity to demonstrate your problem solving ability, determination, and enthusiasm.
Attitude is really important, no matter how long your development career has been. If you have a genuine enthusiasm for technology and learning, other developers will want to work with you. If you are passionate, you won’t be easily stopped by challenges, and you will be excited to learn new things every day. Even though I’ve been doing this for more than 20 years, I really, really love what I do. I love solving problems with programming. I love the beauty of well-written code that is easy to understand and elegantly solves a problem. I learn new things every single day, and when I face a challenge, I get excited about it and determined to figure it out.
Of course I get frustrated sometimes, we all do. I make lots of mistakes and some of them feel really stupid, but my enthusiasm and love for what I do is what always shines through and gets me past any barriers or failures.
Enthusiasm is contagious. A good team lead or manager recognises the value of enthusiasm for productivity and morale and welcomes it with open arms. If you can let your love of programming, technology, and problem solving show in your interactions in socials, at meetups, and at job interviews, it will help you to get the job you really want.
You can have the career you want
I see a lot of people get discouraged when they don’t find work right away as a developer, or when they are let go from a company. Remember that there is a real demand for good developers out there that is growing by the day, and being a good developer is absolutely attainable if you have a genuine love of programming and learning.
Avoid comparing yourself to others because if you try to be like someone else you are robbing the world of you and your unique perspective and abilities. If we are going to solve problems for everyone, and make the world a better, more accessible place for everyone, we need diversity in thought and backgrounds in our software developers and technologists. Be your personal best by giving your time and energy to what gives you the most joy in your work. Share your strengths with the people you meet and work with, and don’t be afraid to share your weaknesses so we can support each other.
Have a look at my post on six things that make a great software developer. I think these six qualities, which are available to everyone, are key for our world’s problem solvers and innovators — like you.