Naming conventions for fields machine name in Drupal There is a naming convention for the fields machine name such as:

entity_name_field_name


for not shared fields

or 

field_name


for shared fields.

When I go to start a project, what should be the naming convention I must use on it?
TL;DR Always use a short succinct but entity agnostic machine name for your fields because requirements will change.

I would never put the entity name in the field name. While today you might think that a field will only ever be used on a node. Requirements change over time. Today's assumptions will bite you tomorrow.

For example you might have a "Hero image" field and decide to use "node_hero_image" (or worse "node_blog_hero_image") because it is only used for nodes.  Later someone decides that they want to use hero images on another entity type - say taxonomy terms to create nice "category landing pages".  You have hard coded the entity type into the field. You have 2 choices, either keep the poorly named field or create a new one - both options are less than idea an increase the technical debt in your project.

If you had've used "hero" as the machine name for your field it would remain flexible. The purpose of the field is clear to anyone who sees it in the UI. You don't need "_image" in the name either as most places in the UI will tell you it is an image field.