Why source control is important for developers ???
Tags: git, intern, beginners, productivity
Published: 2022-04-01 07:02:23

## Source Control:
In our intern series we discussed that source control is one of the major tools for all developers and that its important for your back up, for being able to keep track of your work, working remotely.
Lets look at what source control is, examples out there and why it benefits you.

## What is source control?
Source / version control is a method of keeping track of the work you do or the changes you add or remove from your code for the project you working on.

Since its rare to make an app in one go writing everything and finishing, you want to add changes over time to finish your project, but also you need a way to manage and the progress you make. 

Version control is sort of like the bigger scale of applying the OPEN CLOSED PRINCIPLE “code is not open to extension and closed to modification”.

## Benefits of using source control:

![https://www.istockphoto.com/photo/volunteer-with-box-of-food-for-poor-ramazan-kolisi-ramadan-paketi-gm1311922883-400874115?utm_source=unsplash&utm_medium=affiliate&utm_campaign=srp_photos_top&utm_content=https%3A%2F%2Funsplash.com%2Fs%2Fphotos%2Fgiving&utm_term=giving%3A%3Asearch-explore-top-affiliate-outside-feed%3Adisabled](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/lyqnfwlsy5hfxjij56lm.jpg)
- most importantly it protects your work from being lost, either deleted or your machine stolen.
- it gives you the habit of working either remotely or with other developers.
- It is also a habit that grows confidence because you can write test code without contaminating stable code.
- Allows you to make progressive updates to your application without breaking the system.
- lastly it will allow you to create less buggy systems.

## How it benefits you as a junior:

![https://www.istockphoto.com/photo/mother-and-daughter-at-the-swimming-pool-on-summer-vacation-gm1306309262-396925772?utm_source=unsplash&utm_medium=affiliate&utm_campaign=srp_photos_top&utm_content=https%3A%2F%2Funsplash.com%2Fs%2Fphotos%2Fbaby-with-father-on-ladder&utm_term=baby%20with%20father%20on%20ladder%3A%3Asearch-explore-top-affiliate-outside-feed%3Adisabled](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/ihxjz8wpejhq92arnnk9.jpg)
- It does show that you take your work seriously, I say this because you have experience using a tool that is closely related to professionalism in software.
- Using S.C will allow you to collaborate with developers with more experience with you, allowing yourself to produce much more standard projects with high success rate.
- you can show off with your work and this means even in interviews or your profile you can show off your work.
- You can see your growth progress and this will always boost your confidence.
- it will lead to you producing less buggy code because you will review your code before commits and also you can track where a bug was introduced and fix it much quicker.

So as you can see getting into the habit of using source control will help you grow your career and make you a better candidate in interviews and also boost your profile.

## Source Control Examples:
- [Tortoise git](https://tortoisegit.org/) - good UI and user friendly.	
- [Github](https://github.com/) - most popular with new windows App.
- [Gitbucket](https://bitbucket.org/) - Seems abit for collaborations.
- [BeanStalk](https://beanstalkapp.com/) - great UI with docs.

There many others if those don’t satisfy you, but the basic function of these technologies is to help version your code and better your coding experience.
# Lets try Github as an example.
- Go to the [Github website](https://github.com/) .
- click on the Sign Up button on the top right corner.
![github website](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/vp21niabl8t7i2frmt96.png)
- It will take us to the following page and we enter the email there.

![github websit](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/n0co83cfrem84nuo39kj.png)
- The console card will keep asking for your input with instructions till you done, and it will look something like this.

![github image](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/pscredbzfkrl0nb2xy6y.png)

- Yours will not be packed like this, because the left panel shows your projects, which you have not added yet, and then the middle grid shows all the people you follow and their work. The right grid is just marketing or your interests.

- The following image shows the git market place, where you can see services or apps you can use in collabo with your github.
![git image](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/1ysij62urse8i0q49idg.png)

- this image now shows my fave, the Explore pannel where you can see other developers work, and follow their commits and see code.

![git image](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/xk31ibsh3t2dk2790x6g.png)
- I think this part is quiet important for us growing juniors, because it actually allows you to play with peoples code and learn how to read code.
- It does allow you to also reach out to other developers and request to work with them, or your project will allow them to reach out to you.

- Another part i love is the explore - topics tab, You will alot from this as a developer, you can get material, cheat sheets, learn deep topics about

![git image](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/obeqgk0bc2rcf3r72oa7.png)

- So this exposure to these tools has been very helpful in my growth and it will be a good deal for you too. 
- These are just github, and I think if you get your time and learn these tools and play with these source control tools you might end up learning a lot of useful skills and having access to usefull tools.

Now being handy with your tools is good but mastering this one is quite important for the people you work for because you are using a safe and trusted process to release code and also keep track of how far you have gone in your work.

So the answer to the question is that source control helps you be more efficient, to protect your work and also gives you the power to work with others or remotely. What more would a developer need lol.