As a beginner/intermediate developer one problem I run into as my projects get bigger and more abstracted away as i use more OOP principles I have a problem with naming things. Like when i have multiple projects or class libraries I don't know what to name them. I see things from xxx.Core to xxx.Main or have even seen xxx.BLL and xxx.DAL. While looking through others i have seen xxx.Services and xxx.Data for their library and namespaces.
Then once that is solved is what do i cal DTO's? In that realm i have seen xxx.DTO, xxx.Entities, xxx.Props.
What are some good guidelines to naming libraries, methods, interfaces, etc... while coding so that more and more people will understand things when they come to pick up the project after me.