How to create an awesome coding portfolio and why its useful

Do you want to learn how to build a kickass coding portfolio? In this post you will get an overview on how to setup a github account and host your first projects their.

Why every developer should have an coding portfolio?

  • A portfolio is a way for developers to showcase their work to others, you dont want to miss out on that opportunity.
  • If you are looking for a job a portfolio is better than any resume you can write. As they say a picture speaks more than 1000 words. Check out this post to see what kind of projects recruiters are looking for in a portfolio: http://junior-dev.com/2019/04/18/what-kind-of-projects-do-employers-want-to-see-on-a-portfolio
  • A good portfolio will help you build connections and freelancing opportunities (if you choose so)

Why create an portfolio on github?

Github is the most popular hosting site for git repositories. Some of the biggest companies in the world use github. Having a portfolio on github will give you the chance to show your portfolio to millions of other developers. Naturally that makes it the best place to host your projects their. It also shows recruiters that you are familiar with version control systems.

Lets get started

If you dont already have an gitub account go to github.com and create one.

After that go to https://github.com/settings/profile to start editing your profile information.

Your Github Profile should give a good first impression of you. For that you need to have a professional profile picture and a short bio about yourself.

Your bio should give a short overview of your interessts and skills. If you have a personal website fill out the URL field.

Your code should live on github

If you dont have your projects on github already you should host your code their. Create a new repository or import a repository. If you are not familiar with git you can learn the basics of git here: https://git-scm.com/book/en/v1/Getting-Started-Git-Basics

Every repository should have a Readme

A good readme should include:

  • A short paragraph about the project itself
  • Necessary prerequisites
  • A guide on how to setup the dev environment
  • How to run tests
  • How to deploy/start the application

You can find a good template here: https://gist.github.com/PurpleBooth/109311bb0361f32d87a2

Want to read more? Join the newsletter for weekly updates

What kind of projects, do employers want to see on a portfolio?

Recently there was a popular question on /r/java where someone asked

I really enjoyed the question and the answers, as there where a lot of insights, so i summarized the most common answers in this blog post.

Extracurricular activities


I want to see evidence of extracurricular activities. Back in the day, before it was popular, Google looked for Python experience in their Java developers. Since it wasn’t popular yet, having experience with Python suggested someone who loved coding enough to teach themselves to do it on their own time.
I can teach you how to do a project. I can’t teach you how to solve problems and learn technologies you haven’t seen before.

/u/best_of_badgers

For a self thought developers building a portfolio is a must imho as its the best way to show that you can do the job, but also for students its important to have a portfolio of apps or OSS that you have worked on.

High level technologies

For me, I’m just looking at the high level technologies you have worked with and stuff you are interested in. If you pique my interest I’ll do an intro phone call to get a better picture of who you are and what you’ve worked on.

/u/thecuseisloose

It´s important to put the technologies you have worked with on your resume. You could impress employers if you have worked with new or interessting technologies. If you have experience in the tech stack the use at the companie this will be a huge plus.

Evidence of being able to learn fast, and be autonomous

I’m mostly looking for evidence of being able to learn fast, and be autonomous, e.g. teach the job for themselves in period that isn’t like several years

/u/audioen

Smaller companies tend to have less ressources for training new deployers, so the ability to learn fast and (mostly) autonomous is highly valued. Of course this differs from company to company.

Something that builds and is “deployable”.


Something that builds and is “deployable”.
I want to be able to do a git clone and then mvn package and docker-compose up. It doesn’t have to be great, but I want to see the application run.

/u/shagieIsMe

Having finished or a least runable apps in your portfolio makes it even more compelling for employers. This will be even better if you have a README explaining how to package and run the application.

Having some projects better than having none.


Having some projects better than having none.
Having projects that I can investigate — on github, or on some website of their own — is better than a line on a resume. “Investigate” means that I can go read the docs, play with the app, look at the code, or anything else.

/u/mikeblas

Anything is always better than something. This is also true for portfolios, put everything on there even if its unfinished.

Projects that are used by “customers”

Having projects that have customers is best. If you make a program to catalog your VHS tapes, that’s great. If you’ve made a program to catalog your VHS tapes and everyone at the anime club loves it and uses it, and you’re listening to your customers and adding features, then that’s awesome. Note that “having customers” doesn’t necessarily mean “making money”.

/u/mikeblas

/u/mikeblas makes a very good point again. Having a project that is used by real people is really valuable and will help you to stand out of a crowd of applicants.

Thanks to all the posters of this /r/java thread for sharing their wisdom with us. I hope you enjoyed this summary.

If you liked this post you may also want to check out: http://junior-dev.com/2019/03/28/how-to-prepare-for-an-programming-job-interview/

Formal Education or self thought developer?

You want to become a developer but cant decide if you should pursue a computer science degree or teach yourself?

Lets talk about the pros and cons of each option.

Formal Education

Advantages

A good formal education will teach you everything there is to know. You will follow a highly efficient curriculum. Compared to self though developers you will have smaller “knowledge gaps”.

A degree will greatly improve your chances on the job market

You have a group of peers to work with and help each other out.

Disadvantages

To study full-time for three to four years can be a big financial burden.

Studying is very time consuming. You have to follow a fixed curriculum and cant work at your own pace.

It takes a lot of time and depending on your situation you maybe are not able to finish your degree.

Become a self thought developer

Advantages

You can study on your own schedule at your own pace.

Depending on your goals you can continue to work while studying on nights and weekends.

You can study the things that interesst you.

Beeing a self-thought developer shows great passion and work-ethic to a potential employer.

You can design your own curriculum.

There are a lot of free resources out there that can teach you the fundamentals.

Disadvantages

Without a degree its harder to get a job. You have to do mork to convince employers that you are a good hire.

Becoming a self thought developer might be a very lonley challenge, try to find mentors or peers which whom you can study together.

When designing your own curriculum the chance of “knowledge gaps” might be bigger as you dont know what you dont know.

Conclusion

Pursuing formal education is a safer choice in most cases then trying to get a job as a self thought developer. But often personal situations or circumstances wont allow the time and financial commitment of a three to four year degree, in this cases going self-thought is the better option.

After all its a highly personal choice that has to be choosen wisely.

How to prepare for an programming job interview

Hello, today we will talk about how to best prepare for an programming job interview. A job interview can be a nerv wracking thing but you can prepare for it.

With the tips below you will be ready to face your first job interview.

Prepare for the whiteboard

Its very likely, that you will have to solve code problems during your interview, either on a whiteboard or in some other forms. If you are not used to it this can be very hard. Luckily there are many plattforms out there, that let you solve programming challenges. Some of them are:

Solving daily problems will help you a lot to prepare for whiteboard interviews.

Build an portfolio

A portfolio can be a collection of github repositories or of workings apps that you buildt. The important part here is that an employer can see that you are highly commited to becomming a programmer.

Your portfolio is the best way to show an employer that you are the perfect fit for them.

Know your strengths and weeknesses

Its crucial that you know your strengths and weeknesses. Be honest during your interview, but dont sell yourself to short.

Its ok to not know everything

If you dont know about a technology, say that you have never worked with it but that you are commited to learning.

Handle rejection

Not every interview will go well, you will have to be persistent and play a numbers game. Every interview will teach you something, use the lessons you learned for the next interview.

Use your network

Dont be afraid to use your network, tell everyone you know that you are looking for a programming job. Most people will be glad to help you out.

Getting your first job as a programmer is hard but software developers are in high demand so the best time to apply for jobs is now. The job market is very much in your favour.

If you have any questions hit me an email at: martin@junior-dev.com