I am also not a trainer, but I have had to solve a similar problem with one of my many foster dogs who was reactive to other dogs, on leash. The basic idea here is Distraction.
Pulling the dog back, is just a physical nightmare depending on your size and the dog’s and can result in injury.
What I was advised to do, and what worked for the dog I was working with was to train her extensively to focus on me and just me when I called her name. So when I need her attention, I get it!
To do this you have to have a pocketful of treats when you walk your dog. Then –
1. At first, take him or her to a distraction free zone. You can even do this at home. Walk the dog (Fido, for ease). Call Fido by name, in a happy tone. If he looks at you, give him a treat. I extended this to making Fido SIT and look at me, but for starters, JUST looking, is perfect! And should be rewarded. Do this consistently, and on EVERY walk.
2. Introduce a distraction. Call a friend with a dog. Meet at a park. Do point 1 when your friend has their dog on leash and walks past you, at a safe distance away. If Fido does not behave desirably, back away, try again. Do not lose your cool or display negative emotions.
3. Praise, pet, hug, squeal, treat and express happiness when Fido does what you needed him to!
All the best!