I believe one can code efficiency without a MacBook. Unless you're building for that specific platform. In the absence of funds to purchase either a MacBook or surface, then the logical thing is to opt for cheaper yet customizable laptops that way you get the option of upgrading.