Your dog growls at you not because he is bad, he is just aggressive by nature. Some dogs are just good and gentle (pugs, etc.) while the rest is aggressive (Dobermans, etc). They can never be both, however. What to take note is that growling and snapping is one of the more visible actions they took to show aggression. There is usually more subtle cues such as an overly still body or a curled lips. This might make spotting the main cause more difficult since, beside this, dogs would send several warnings before it starts the more visible attacks.
For example, let’s say you approach the dog from the back while he is eating, one occasion that might get her on guard because he is open to unseen attack. He might start by just continue eating and his body seems more stiff, then as you approach him, he starts to twitch slightly, seemingly getting ready to pounce. Then you get closer, he will start growling and goes to a defensive stance.
Well, you can train your dog to be more relaxed and trust you more, the things he does is just inborn instinct. In general, the more trained your dog is, the more likely he is to stay relaxed under most circumstances. A behaviorally healthy dog will deliver mild warnings and slowly goes to aggressive if the warnings are ignored. At that point, you are just testing his patience. Every dog needs their own program that is tailored specially for that dog. Get professional help than doing this on your own! It will also help to keep a journal of the dog’s behavior to assist wit the training.