As a beginning developer it might be a bit frightening to put your code on an opensource platform like Github or Gitlab. You might have a feeling that it is not worth to share your home projects with other people, or might not have seen a reason if you are the only one working on a project.
In this blog post, I will provide what in my eyes are the major advantages of using an opensource platform for your personal projects.
When I stared developing some hobby projects at home, I stored them on my local computer. If I ever wanted to “release” something I wrote, I had to FTP it into a webserver. This release-flow continued on some internships I did years ago. Until I started working at a company where they used Git to store and manage their code. A few years later, most respectable companies use version control one way or another.
If you have never worked with Git, or another version control system, you need to get a grasp of the concept. If you can start getting experience with Git during your home projects, it can be an big advantage if you want to start at a company where they use it primarily.
Second of all, you can use it to quickly try some ideas on your project, without having to worry on losing your previous progress. You can simply create a branch and try your idea. If it works, merge it into your master branch, or remove the branch if the idea is unsuccessful.
With you code shared on an opensource platform, it can be extremely easy to share your code. If you want some feedback, or have other questions for another developer, you can simply share the link to your project, or even to a file itself. No need to copy files, or worry that people have an outdated version of your files.
It is becoming more and more common to use a Github or Gitlab profile on your resume when doing an interview for a developer job. It is an easy way to show what you are capable of, and what projects you have done in the past.
Besides that it is also possible to see other projects, follow them, and learn from them. Is there a project that is similar to yours? Try to see how they resolve a problem.
How do you know changes to your code did not break your project? You can try to make automated builds for your projects. A popular choice is Codeship or Travis. But there are more tools that do similar jobs.
With builds you can automate several steps to make sure your code still works as intended. Some popular steps in there are running unit tests, running a linter to make sure your code is according to coding standards, and even automatically check if some of your dependencies have vulnerabilities.
If you are interested in getting more in depth with builds, I plan to write a blog about starting with builds which will explain all about it.
A small warning to this post is to watch out what you commit. A mistake is easily made, and there have been people who have committed production passwords/keys to publicly shared repositories.People with malicious intend can use them to their advantage. An example is this blogpost: https://medium.com/@nagguru/exposing-your-aws-access-keys-on-github-can-be-extremely-costly-a-personal-experience-960be7aad039
I hope to have given you several reasons to try out an opensource platform. Do you have some additional reasons to try an opensource platform, or other comments? Let me know.