Everyone’s path as a programmer is different. Some start with a boot camp, some others figure it out by themselves by browsing through websites, and there are online self-paced courses and presential ones. You also have a big list of different languages/frameworks, and the people you can talk to that passionately defend each one of them.

Whichever is the path you have chosen, I root for you 💪 - believe in that path, try to have fun and move forward. There are no right or wrong ways, and in the end “all roads lead to Rome” somehow.

The one thing that applies to all paths

There is one thing that anyone would benefit from doing, regardless of the path you’ve chosen. It is something someone should tell you in that first week you are starting to play around with Python, or whichever language you are learning: “Start an online portfolio, and record in it your learnings”.

It sounds a little extreme, but in this day and age, if your work isn’t online, it doesn’t exist.

— Austin Kleon (2014). Show Your Work!.

One of the most popular ways of having an online portfolio for programmers is having a GitHub account. It is not the only way of doing it, but because of its popularity, we will use it as the main example in this article.

What is a Portfolio?

A portfolio could be defined as a collection of works to showcase your skills. I use the word works and not projects because sometimes it is not necessary to show a full project to showcase your skills.

Why should I bother?

GitHub is like Facebook for programmers. I am not very active in any social platform, but I acknowledge the benefits that sometimes you can get from them - some help you get a partner, or sell furniture, and some others help you get a job.

One day you will feel “ready to go and get that first coding job”. You already studied what you needed to study, you feel like you know your stuff and you just need to get into a company and apply that knowledge.

The first thing any software recruiter will look for in your resume is a link to your portfolio (or GitHub account). If you don’t have one, or if you don’t have much stuff in it, then they might not call you, or if they call you they will be harder on you when evaluating your skills (coding tests, questions in the interview, etc.). If your portfolio “tells the story of your learnings”, you have better chances to get to the interview, and once there you will not need to talk that much because “your portfolio speaks for itself”.

Let your portfolio speak for itself.

But, what can I put in it?

If you are just starting, I would say “Save there whatever is that you are learning”. A repository could contain your cheat sheets, or notes you’ve taken from a course, or projects you have been building following instructions.

If you already know what kind of job you are going for, then you can get more specific. For a Front-End position, you need to show your skills at the frameworks that interest you (or the ones that are used at the company you want to work at), for a Data Engineering position you might want to showcase your SQL and Python skills, etc.

While you need to upload code to showcase your coding skills, you can also get creative: there are many repositories out there that don’t contain even one line of code and they are very popular (look at this one for example).


Building a portfolio to the point it speaks for itself can help us prove our skills and move forward in our careers. It is both important, to have good content in it and to keep updating it as time moves forward.

I haven’t been particularly good at keeping a record of my learnings, but as I improve my portfolio, I am happy to share my thoughts, and hopefully prevent someone from making the same mistakes I made.

Enjoy the process, and team up with a friend as you build up your portfolio - the best brainstorming happen as a team.