I’m teaching software engineering, so why does version control come first?

So in my last post about version control and git, I introduced a few concepts like commit, branch, and checkout. If you haven’t read it yet, you can read it here. One question that came up from a few people that read the post was, “Hey, I thought we were talking about being a software engineer here, where is the coding?”
Well that is true, git is a tool that is typically used with coding, but it can really track any type of texted based file. That’s the reason I started out with just the phrase “Hello Brooklyn” and changed it to “Hello Brooklyn, I’m glad to be back.” I figured it would be a good way to introduce the concepts of tracking changes without having to get tied down worrying about coding; but let me know what you think in the comments, I want to be sure these posts are as helpful as possible.
As we move through this series, obviously we are going to replace that sentence with actual code, but we just are not quite there yet. I’ve also had people ask me why I am teaching version control first, doesn’t it make sense to start with the coding?
The thing is, until you understand this basic concept to manage code, I cannot collaborate with you about code. Git makes it easy to track change but it also makes it easy, or at least easier, for us as software engineers to work together.
Have you heard of websites such as GitHub, GitLab or Bitbucket? These websites can host repositories for you git projects. A repository is really just a folder that is tracked with git. That repository can sit on your local machine, or on one of these online hosting sites.
Most of the worlds open source software lives in one of those main three sites. If you visit their site, you can search for code repositories that are freely available to the world, hence the word open source. But we can also create our own repositories to host our own code there. You can see my public github profile here, this is where I’ll be posting projects that you can use to go through my tutorials.
We will also use git for you to upload code changes that I can review and look at; it is a great way to collaborate and this is the reason I am teaching git first. Because it gives us the tools necessary to collaborate. Without it, you can’t see new code that I create for these tutorials, and I can’t review your code.
In the next post, I’m going to start to talk about how you we can to upload and download changes from a remote git repository. When I say remote, I mean that it is on another machine, or in the “cloud”, that is not the local computer I made my changes on.
This is how we can collaborate in with a team of software engineers in our office, or on the other side of the world. Let me know what you thought of this post in the comments and give it a few claps if you think it was helpful.