If you do not know what git is or if you didn't master it very well, or if you would like to become in the future a programmer (a professional one, or someone who just like to code during a weekend), then this article is for you!
If you know git, but you do not fully understand a command
git rebase -i HEAD~4 or
git add -p, then you should also read this :)
This weekend is about programming!
I remember how difficult it was for me, to start programming. It was 14 years ago, I didn't have an internet connection or some more experienced friend, which could help me when I had a question. Back then I only had few books. Now is much, much easier!
If you would like to start learning how to write code, CodeSchool is in my opinion very good option for the beginning, especially if you like video and interactive lessons, as I do. I do not recommend CodeSchool very often because usually you need to buy a subscription for most of their courses, but not today!
Plenty paths to choose
Being an IT specialist is like being a doctor. Every time during a family gathering, you are constantly asked by everyone, Could you take a look at this rash?" /"Could you fix this broken computer?". I am mentioning about this because as people know, there are many types of doctors (cardiologist, dermatologist, internist, etc)... and there are also many types of IT specialists or even many types of programmers.
But you should be an expert in some areas
So, which path you should choose is a topic for another long article, but the truth is, only you will know the answer. But there are things, which every programmer should know, exactly like every doctor should be able to do CPR. Funny thing is, that this analogy is pretty good, as git can prevent a project from the sudden death of the project.
What is git?
[gɪt]) is a tool, which helps keep a history of your whole project in an elegant way. If you will use git in a proper way, you will always be able to undo some changes in case of any crisis or bug.
On CodeSchool there are 3 courses about git, and 1 course about github (biggest service which uses git). Read more, to learn which course is the best for you!
#1 - Try Git
The first thing, this course is....terrible! The whole reason why I am writing this article is to say to people, that first course is the worst from the whole series. To finish the course, you just need to know how to read, and re-type every suggestion, which are given to you in every challenge. You will not learn much from that. Yes, a course is interactive, but there is no video. There is also no information why you need to do particular things, why particular git command is needed. The only good thing about this course is... that it is always free. But to be honest, you can skip it without any regrets.
#2 - Git Real
This course is really good. All things which were described in TryGit are also described here, but in much better why! Each git command is not only well described, but you are told a story/example of a situation, when exactly you might need each command. Everything is very well visualized, everything is clear.
Interactive console is not perfect, because when I tried to type
git status (a command, which gives more information about current state of repository), then console responded, that
git status is not a solution for this challenge :D
After this course, you should know git on a basic level, which should be enough to work with git on daily basis, even as a professional programmer. This is paid course, unless there is a free weekend, like right now :)
#3 - Git Real2
Recently I had an opportunity, to see how my wife went through this course, and I was sitting next to her, as a help. I have to admit, that as someone who considers himself as git-expert, I was really surprised about things which they put into this part.
Topics in this part are rather advance, but at the same time extremely useful from time to time. In this part you can learn about:
- interactive rebease
- retrieving accidentally reset commits
- conflicts resolving
- modifying a history
- git submodules
As you can see, those things are not trivial. Even if you do not need those things every day, it is extremely good idea, to learn about those things, because when you understand how this work.. this is not so difficult after all :) Even if you will forget the details, you at least will know, that that there is a solution for your problem, you just need to recall it :)
This is paid course, unless there is a free weekend, like right now :)
#4 - Mastering Github
I was skeptical about this course, but now I need to recommend it as mandatory. First of all, very nice thing is, that this time you will not use a simulated console, but actual GitHub website. You will create a repository, do commits, create Pull Requests and CodeSchool bot will check everything and do interactions with your repo. It will pretend that there are multiple co-workers in your project :)
This course describes few times things which already have been covered in Git Real and Git Real2, but this time those things are described in slightly different way. The very important fact is, that this course, in my opinion, can be very helpful even for people, which already know git well. For example, this course describes a PullRequest-based workflow. This is completely different approach from those with one single central repository.
There are 7 parts in this course, and every part between 1 and 4 is very interesting. Later there is more about GitHub alone. I think this might not be so entertaining for everyone. You will learn how to create Github Wiki, Github Pages, how to integrate GitHub with 3rd party services, how to use their API with tools like
curl, how to manage your repository. Also at the end, you will learn how to use
hub, console client of GitHub, which serves as a wrapper for git.
Git is very important and nowadays this is a standard among developers of every operating system and every programming language. Very often git is listed in articles which describe X things which every programmer should know.
Some people are saying, that git is hard to learn. I think with those courses it is much easier to learn it, and also... I need to empathize, that every second spent on learning git, probably will repay many times in the future :)