EXP boosting:
Don't just evolve Pokémon one at a time whenever you can. Save them all and bulk evolve with a Lucky Egg active. If you're at the point where you have a dozen Beedrills or Pidgeots, continue to catch Pidgeys and Weedles and use the excess candy you accumulate to bulk evolve them,
then transfer the secondary stage.
Just between yesterday and this morning, I'm sitting on ~140 Rattata candies with 8 Rattatas waiting in the wings. At this very moment, I can evolve five Rattatas. With a Lucky Egg active, that would be 5,000 EXP right off the bat. That adds up fast across different types of Pokémon.
Gym Runs:
If you're going to rely on "play-to-win" methods to obtain coins (rather than pay-to-win) for purchasing consumables, then you're going to have to build an economy. Each day (usually at the end of the day after work), I would gather a few friends on my team to initiate a "gym run," meaning we drive around town taking out and leveling up gyms. The more people we have, the faster the process and generally the longer the gyms will last.
As soon as the run is complete, which in my case could range from 3-5 gyms, turn in the rewards immediately at the shop. In hotspots, gyms don't tend to last long at all. Even level 6+ gyms can go down in less than an hour if challengers are coordinated with high level teams. This obviously varies depending on the size of your town/city. Since I'm in a densely populated metropolitan area, every gym is highly contested and exchanges hands multiple times every hour. That's why I pick times when fewer people are active and groups of us execute a fast takeover while the window of opportunity is available.
Question about exp boosting: What's a lucky egg? You're saying if I don't evolve a Pokemon as soon as I can but catch a couple more so I have a bunch of them, then activate the lucky egg and then evolve the pokemon? Should I keep let's say rattatas and not transfer them for candy in order to focus on evolving one of them, or have several evolved rattatas? What should I do?
Question about the gym runs: so you gather actual people in 3d who are in the same team as you and you drive to gyms trying to take them over? Or is it like a team you join within the pokémon go app?