How to build a great portfolio as a beginner developer
It's important to acquire skills and learn various parts of development but in order to get a job its equally important to present your skills in a meaningful way. That is why we need a portfolio - to demonstrate your ability to potential employers.
In this guide, we will learn how to build a good portfolio with actionable items.
The most concrete way of proving skill set is - to show. We should strive to build quality projects that showcase our knowledge. Host them up online so that we can demo it by just sharing an URL (use services like Github-pages, Netlify etc).
Back your projects with code(put them up on Github) that people can see. Code and the deployed projects is our chance to show that we care for the details. So please lint, add documentation, follow style guides and make it presentable.
It's a bonus to work on a variety of projects (Websites, CLIs, Visualisations, Games, Apps, Libraries). The deeper and non-trivial they are, better the chances of getting hired.
Actionable Item - Figure out a few good projects that you would like to do, add depth to them, finish them, host them online and make them presentable.
Putting ourselves out there
As we go about learning and improving our skillsets, share them consistently. One of the ways we can do this is by tweeting every day. It builds up.
It shows consistency, builds confidence and exposes us to the broader community for feedback and improvement. We should share our tweets using hashtags like #100DaysOfCode for more visibility. We do this at AltCampus as well, our students tweet about their progress every day using #AltCampus.
Another way is to write blog posts, we will talk about it in the last section.
Actionable Item - Start with Tweeting every day. Eventually, you can participate in dev communities like StackOverflow, Dev.to, Subreddits, Hashnode.
Open source contributions
It's important to be able to write code and build your projects but its also equally important to be able to read and contribute to an existing codebase. A great way to do this is by following and reading a few open source projects on Github.
The challenge with this though is finding a good project that matches your current skills. You should either ask about it in communities or seek a mentor who can point you in the right direction. Here's a list for beginners. A lot of these projects have specific issues that are labeled as 'good-first-issue' which is primarily for beginner devs to get started with open source contribution.
Actionable Step - Look up the list and try to find a project and a few issues that you can at least read, understand and try to work on.
Personal website with an active blog
Well, now is the time to put them together and build one platform to showcase our work and self. One should build a good personal website. Our website should reflect who we are and shouldn't just be another template website. It serves as one point information source for people looking us up or potential employers. So make sure that the following things are listed properly -
Projects- We should also add descriptions about why and how we built a particular project. What did we learn while building them. Our reflections.
Blog- Having an active blog shows that one cares to document, can organize thoughts in words effectively and hence proves our communication skills. One can write technical posts about particular topics that you recently learned; non-technical posts about your experience learning/doing something. Make them informative and easier to understand.
About section and links to Profiles- In about section, write about yourself, your interests etc. Provide links to Github, Twitter, LinkedIn etc. Also, make sure that these profiles are updated.
Contact- A form or an email that makes it easier for people to get in touch with us.
Feel free to add more stuff and please make it look presentable. We can build such personal websites along with blogs on static site generators like Jekyll, Hugo, Gatsby, Next etc.
Actionable step - Make your personal website and start writing blog posts.