this i do not understand. if a contract role takes u 400miles out, so does a perm role of the same job.
SOmeone said that contract is not good career wise? i disagree. it is fantastic for your career! why?
because you get to learn and gain more experience then a perm job doing the same old stuff for years not progressing.
Also, if u love programming, u really do not want to move up the career chain becoming a PM or something as many developers do not like writing documentations and reading emails every day.
Contract roles aren't always close to home and if you want to contract, then you go where the work is or you hold out for the right role, but you need the war chest to sit it out until you find the right thing.
Permie roles are easier to find closer to home, if there was a decent contract near home I would take it. No permie role would pay you anywhere near the salary to make it worth travelling 400 miles but contracting does.
You may be lucky to find a contract that you learn new skills, but firms that hire contractors want people for a very specific set of tasks and they want people that hit the road running. They don't want to pay you the sort of hourly rate and have to teach you new skills. They want you for your particular skill set and as such there isn't a ladder you can climb. If you aren't interested in climbing any career ladder in a firm then great for you but some people do and so should understand that the money in contracting isn't the only story.