Getting your first job as a developer is tough, here's how to boost your chances.
This is the second article of a three-part series, the first of which can be found here. The first article focuses on more obvious ways to make yourself the best candidate possible. This article looks at some slightly lesser known ways. Utilising the suggestions found here will help you stand out further from the crowd of junior developers applying for the same position, giving you the best chance of getting your career in development up and running.
Contributing to open source software is not only incredibly rewarding but acts as a clear indication of your ability to work as part of a team. For many, the idea of contributing to open source can seem a daunting prospect. However, you should soon find that the open source community is welcoming, encouraging and supportive. We'll have a look shortly at how to go about finding and contributing to a project but first, let's take a look at what this shows a recruiter:
- Genuine Interest
After the technical ability required to develop software, excellent communication is the most important attribute to possess. Why? Because to make great software, you must be able to discuss it with the colleagues building it with you. Being a great communicator is unlikely to get you an interview, your CV and covering letter do that, but it will be the thing that gets you the job. Clear, concise and efficient communication allows products to be built as intended, iterated upon seamlessly and removes the opportunity for ambiguity to get in the way of progress. If you can communicate well with people living in different continents, you should have no problem in an interview.
So how do we find open source projects to contribute? My favourite place, and likely where you found the link to this article, is Twitter. Twitter holds plenty of opportunities to get involved with open source projects. These projects can be found easily by following well-known developers who are often part of conversations relating to them. Read something that interests you? Join the conversation! Discuss your thoughts with others and ask how you can get involved, simple! Taking part can present you with many opportunities you never expected, it's all about being unafraid to ask questions and learn in public.
While this is my preferred method to find new projects, you can always utilise a more traditional approach. By visiting the repository of your favourite libraries, frameworks and tools, you will find a myriad of issues, problems and bugs - all representing a great opportunity! Look out for labels such as 'good first issue', these are there to highlight beginner friendly issues, allowing you to build up your confidence.
Projects usually have different guidelines for contributing and a way to seek assistance if needed. Once you've found an issue you'd like to tackle, you should comment on it to say you're taking it. Discuss with other contributors your ideas for a suitable approach and be prepared to defend it if needed, there are many right answers, what matters is your justification (much like an interview). Fork the repository and make your fix, then submit a pull request with concise information on what you've done to resolve the issue.
Providing your fix is correct, core contributors to the project will review and merge it into the master branch. Congratulations - you just contributed to open source! Sometimes there will be a problem with your fix and core contributors will request changes, this is another benefit of open source, you get to learn. Here is your opportunity to get feedback and advice from experienced developers while helping them at the same time, awesome! Receiving and using this feedback shows a recruiter only good things, being able to take on board feedback and improve as a result is essential to becoming an excellent developer. Discuss the changes required and update your pull request. You've just handled your first request for changes - well done!
Remember those benefits we listed earlier? Let's see how we've ticked those off by contributing to open source. You've communicated with a team across the globe, primarily in text, to solve a problem, tick! You've also done this because you enjoy writing code, not just to get paid but because you're passionate about it, tick! Now a recruiter can see you have skills that are usually impossible to establish without meeting the person, a huge plus. As an added benefit your GitHub profile now says you contribute to a well-used library, a great day all round!
If you're looking for a beginner friendly project to get started with, take a look at Coding Coach - join the slack, grab an issue and get involved! My experience of Coding Coach has been nothing but positive and I would happily recommend it to anyone looking to make their first open source contribution.
Creating a personal blog provides you with a platform to share your thoughts, consolidate learning and demonstrate a range of technical skills. Writing gives you the opportunity to show your understanding of a topic, the process that was undertaken to learn it and your ability to explain it to others in a manner they can understand. As mentioned above, being able to communicate is extremely important for your career and recruiters will be looking for any hint as to how well you do so.
You may be fantastic at getting your point across in person but what happens when you're not able to speak directly with someone? There are numerous occasions, all with great importance, that this will be the case. Examples of this include documentation, email and release notes. The React documentation is well written, making it the first port of call for developers with questions. Being able to find an answer quickly massively improves the developer experience and is one of the reasons React has been so successful, attracting millions of developers. Imagine having a positive impact on the lives of millions of developers, just by taking the time to write well-thought documentation - that could be you and recruiters want to imagine that too.
Communicating technical concepts effectively is difficult. Think back to a time when you were reading something that didn't make sense. It's likely that after you understood the topic from a different source, the same passage then made sense. Things seem extremely difficult until we grasp them. Companies will hope you can grow into a senior position, passing on your knowledge to junior developers and helping them overcome the same hurdle you did. If a recruiter can you see you have the capacity to explain concisely, with an appropriate level of detail, so early in your career, you will immediately look like a fantastic candidate for the long term.
Reading a blog gives you an insight into the writers' personality. Personality can be the difference between getting to an interview and not. Many junior developers will have similar CV's as they have all been on a journey getting to grips with the basics and are yet to explore more advanced and diverse topics. From reading your blog, a recruiter can get an idea of you as a person, rather than just a sheet of paper (who am I kidding here? It's a PDF!). If someone can imagine you as more than a sheet of paper, they're much more likely to want to talk with you. It could be a joke, an amusing moment during your life or a shameful admission you've forgotten how to use a pen and paper - give the reader an insight into you and your life.
I would strongly recommend trying to get into a routine for writing blog posts. When I wrote my blog previously, I would do so every weekend, summarising what I'd learnt that week - this helped the process of consolidation. You've probably heard of building the coding habit, you'll soon see that writing is very similar. Most of your posts should be based on technical topics, however, don't be afraid to include posts not strictly related, showing a recruiter your personality can be just as beneficial.
This section is controversial and therefore needs some context before reading further. It is a common misconception that to succeed as a developer you need a degree in computer science. You certainly do not need a degree in computer science, especially for web development. However, some of the key concepts and theories from the discipline can help you improve, giving you a better perspective on what you are trying to achieve and how to optimise what you've written.
Depending on the position you apply for, a CS degree may or may not be a requirement. If you are without a degree, do not let it prevent you from applying. There is so much more to web development than implementing binary sort from scratch on a whiteboard. However, recruiters do look for these qualifications and certain buzzwords that go with them. Your CV will have a section that lists the languages/frameworks you know, it should also have others such as methodologies and concepts.
There are many computer science concepts that will improve you as a developer, giving you the tools to reason about a problem. If you know any of these concepts, be sure to let anyone reading your CV know that too. The list below highlights some of the more common and useful concepts:
- Algorithmic Complexity (Big-O)
- Object-oriented programming
- Data Structures
- Functional Programming
This is by no means an exhaustive list and is very much subject to opinion. However, getting to grips with these topics will make it easier to understand various aspects of front end development. For example, Big-O notation will challenge you to improve your algorithms, giving you something to strive for when writing them. Recruiters and hiring managers will see this as another strength and reason to hire you. Similar to explaining difficult concepts, the ability to understand the impact your algorithms can have on performance is key in becoming a senior developer.
These topics can be difficult to understand, tacking them will boost your resiliency as a developer. They will force you to think critically and be clear in your decision making. Functional programming is especially important in React and Redux, mastering the ideas behind this will help you understand the data-flow, illustrating the direct benefits some of these concepts can bring. Being able to have a conversation with a recruiter about these topics is not something many junior developers will be able to do and another way for you to stand out from the crowd.
Until Next Time
I hope this article has given you some more ideas on how to stand out from the crowd. The ideas presented here are a little less obvious but can all deliver great value to both your job hunt and improvement as a developer.
Part 1 is available if you missed it and part 3 will be up in the next few weeks. Part 3 will look to cover some more obscure ways to stand out from the crowd that which a little less time.
If you'd like to talk about anything mentioned here then the easiest way to do so on Twitter. I'm always happy to talk about anything dev related so drop me a line - thanks for reading!