The first three characters are a case-sensitive key that describe the object. A few (literally like 2 or 3) objects don't have them, but everything else does have a key prefix. You could use a table that's been generated by Daniel Ballinger to find a pretty comprehensive list.
Or you could use my Key Prefix Scanner, which uses the Apex code you've talked about to generate a complete list of known objects by querying the system directly. I'm also working on a Lightning version, too, but for now, this page generates a list of all known object types (including undocumented ones).
Once you've done some experimentation, you'll know the common types: 001, 003, 005, 006, 00Q, 00T, 00U, etc. Deal with it frequently enough, it becomes second nature to just know at a glance.
Also, side from code, if you simply go to https://<your-instance>.salesforce.com/<key-prefix>/, you'll usually end up at the List View for a record type. For example, in my org, I can go to https://na3.salesforce.com/006, and I'll end up looking at an Opportunity List View. Of course, this doesn't work for special types, but almost all normal objects have List Views.
Also, I find it more convenient to not have to deal with debug levels (likely your original problem), so I just do this in Developer Console > Execute Anonymous:
Id recordId = '0123...';
System.assert(false, recordId.getSObjectType());
In the Developer Console, you'll get a popup saying "Assertion failed: RecordType" (or whatever the type is).