What's the difference between checkin and checkout?
To explain something to anybody, try to compare it to something they are (hopefully) familiar with already.
So that's why I just answer such question like so:

Think of it as arriving at a place to stay (a hotel, a resort, etc):

the very first thing you do (when you arrive) is to checkin.
the very last thing you do (when you leave) is to checkout.

A similar SCM concept applies when you want to apply changes to software components ...  except that it applies the other way around:

the very first thing you do (when you start) is to checkout (or think of it like borrowing it).
the very last thing you do (when you finish) is to checkin (or think of it like giving it back).


Note: this applies to centralized systems (such as the ones used in mainframe environments ...). In systems such as git the &quot;checkout&quot; concept has a completely different meaning (which IMO is also why in those systems there is hardly any confusion about both concepts).