When I'm happy in a position, I'll stay till the bitter-end (case in point, the dream-job I had I stayed there for 5 years, until the company went bankrupt) whereas 2 of my jobs have only lasted 6-9 months due to things not being right - things you don't pick up on in the interview or probation period, but you know it's something you can't happily live with.
Everyone has the right to do the best for themselves, and it's not greedy at all to want to have more than £3 a week left over from your bills to actually eat, which I'm assuming means you don't have any money left to socialise or do something just for you (which is important as well)
And you are perfectly right, my social life has suffered, I couldn't go out for the Halloween parties with my friends, and it's quite demoralizing, especially when I see people who are on benefits and receiving more money to live off than me.
1. Nobody expects someone your age to have many years of continuous employment at one company on your CV. You're young. Capitalize on it.
2. Programming jobs have a fairly high turnover rate anyway. There is the tacit assumption that if you want better terms you'll find another job.
3. Nobody will ever think less of you for leaving an unfair employer. If they see many short stays on your CV they may start to wonder if you're the problem, but one or two aren't enough to be an indicator. Also, as your CV gets larger, you can omit 3 month jobs that didn't work out, and simply not talk about them while searching for a job.
Thanks for taking your time to answer me :)