Every SharePoint list includes CreatedBy, Created, Modified, and ModifiedBy fields by default -- because they are part of the base Item content type. They perform precisely the behavior you're describing.
If you are looking to access them from any of the client APIs the user entities are named Author and Editor respectively, but the date fields are still called Modified and Created
If you're using the REST API you'll have to do something like $select=Editor/Title&$expand=Editor
The CSOM APIs will bring back those values automatically with a request for list items, you just have to use something like item.get_item("Editor").get_lookupValue() to get the users name (note this is a JS Example, although the C# version would be very similar)