Trigger.new is a list of sobjects. If we are talking about a DML operation on account, then trigger.new is simply a list of accounts. Similarly when used in contact trigger, trigger.new becomes a list of contacts.
Trigger.newMap is a map with key as ID of the record and value as the record itself. Just like the above explanation, in case of accounts when we say trigger.newMap we are talking about a map of key value pairs where the key is the account ID and the value is the account record itself.
Suppose you are in a classroom, and the teacher wants to take the viva examination of every student. Then she can either call each and every student from the list of students she has( similar to processing records from trigger.new) or call them up one by one by roll number( similar to processing by trigger.newMap where recordID is taken to be equivalent to student roll number).
In case of salesforce functionality, please note that we need the ID of records for a trigger.newMap not for trigger.new. So trigger.newMap dosent exist before the records get their ID( i.e. before insert)
Hope this helps.