The single best way to get a dog working well is to hunt him with an older well trained dog. You still need to get the obedience down and you almost can't overdo the whoa training but putting him on birds with a seasoned dog is a super shortcut to a good dog.

Putting two untrained dogs together can back up your progress. The competitiveness will compel them to steal points, which is bad for both dogs.

And on the e-collar subject, don't zap the dog after you have said come. If he's not coming, turn the volume down to just enough to annoy him and before commanding, hold the constant button until he looks annoyed, then say come. As soon as he starts in your direction, let off. Timing is critical. If you say come and then shock, he resents you for shocking him. If he is getting shocked and you tell him how to make it stop, you're the hero and you told him how to make his world better.