I can really only speak for myself but the majority of the small projects I work through to master specific concepts are done by me and only me from start until finish. Because of that I wasn't even aware of the concept of version control until somewhat recently. Once I understood the importance of it I sincerely wish I had covered it earlier on.
The spare time that I devote to coding is with the intention that I will one day (hopefully sooner than later) accept a job as a full-time software engineer. The thing is, the coding I'll be doing as part of a development or test engineer team will vary GREATLY from the practice work that I'm doing now. The key part to that is working as a TEAM. Until now all of the projects that I've completed have only involved one person - ME. When you work as an engineer for a company you typically are not the only person assigned to work on a product. So why does that matter?
If you've learned even a little bit about code you've seen that even small errors can cause HUGE issues in code. Now think about the fact that several different engineers are all simultaneously writing code on the same product. How will your code interact with Joe Schmoe's code? How will you share your code among team members? Are there ways to predict how your code will interact with the rest of the solution before you implement it?
The answer is YES. The answer is VERSION CONTROL.
Modern version control almost always means Git. I was aware of Github and it's uses as a budding developer long before I began to understand how Git itself is actually used. I am not an expert in Git, in fact I've hardly used it professionaly at all, but I would be happy to list some great resources to learn git.
- Lynda.com - Git Essential Training with Kevin Skoglund - This six hour course masterfully explains the history and concepts of Git and provides an excellent example of how it is used
- Codecademy.com - Learn Git - This course is only two hours and focuses more on git workflow
- Github.io - Git Tutorial - Github itself provides a tutorial! Learn at the source!
- Learn Git Branching - My future manager in automation testing recommended this interactive course to become a Git ninja. Seems more interactive than the others.
After delving into some of these resources take a gander at the image below. If it makes some sense to you then you are going in the right direction!
In closing I want to encourage you to begin impletmenting git commands in your projects. I don't care how small the project is or if you are the only person to ever even see it, having these concepts in place will do wonders for you when you finally find yourself working with a team.
No comments:
Post a Comment