IMHO free weights are the best since you can build up to lifting heavier than your own body weight. Eg if you do a bodyweight squat you are using your own bodyweight, however hold some dumbbells or put a barbell over your shoulder and you can lift more weight which will eventually build more muscle than if you only did bodyweight squats.
From what it sounds like you are doing everything correctly!
Free weights and bands are good for building muscle and yoga and pilates are good for core strength and flexibility.
As for the push up - see "Mistressing the Push-up" http://www.stumptuous.com/cms/displayarticle.php?aid=75
You're doing well - keep doing what you're doing and keep challenging yourself. Remember to change your routine up when your body gets bored, increase the weights when you think you can handle them and don't ever be afraid to try anything new.