BUT: Speaking only of programming, which is what I choose to do, that extra work can be extremely fulfilling. No, you can't just be working on what you want all the time, but honestly most projects that are driven entirely by people's spare time end up incomplete. The list of exceptions is long, but the list of projects that are incomplete, in features or documentation or in handling of corner cases, is far, far longer.
I love open source, but there are some domains that all the open source options suck. I think a big part of that is the amount of real, un-fun work required to really finish a project. And yet, when creating a project for a job, you (sometimes, at least) need to really finish it: Add the features your users need, handle those corner cases, write up that documentation.
And having really completed a project and seeing the feedback from hundreds of users that find it to be awesome? THAT is amazingly fulfilling. Even if it's not fun every step of the way.
I assume journalism can have similar benefits, but I can't speak to that.
True, and most of them also pay a lot less.
I don't work for "a company". I work for one of several companies, depending on the week/month, and sometimes two or more at the same time.
Personally I prefer shorter contracts, but I have constant offers of longer contracts, so I could go that route if I wanted. But I also want time to work on my own projects.
Though, in the abstract, sure, it's not always possible. This is advice along the lines of "Be Really Awesome and Have an Excellent Business Network." Not everyone can really follow it.
But there are a LOT of freelance jobs floating around right now, so it's a good time to give it a try if you can.
What I loved: you get to work on pure software. None of the BS with internal company politics, requirements gathering, user analysis etc. You are focused on a specific set of tasks. You are paid much more than as a perm (but not for vacation, sick days etc)
The last part is important to me at this moment in time. It effectively meant I could work for 6-7 months and make as much money as a perm salary. (This is a short term view to take though). This difference should cover down time, when you are looking for new contracts or you just want to take a little time off to upskill. Depending on the availability of jobs, you can be very selective on the contracts you choose. I've known people leave within a few weeks and move onto something else since it was "not as advertised". Because you shift job fairly frequently (3-6 months usually) you get to meet a lot of different people, learn different techniques and different skills.
The bad part: No vacation pay, no sick pay, you work a day you get paid for a day. You are usually hired for a particular skill, so there is no training. If you don't like a job, there's no point in complaining since they will hire someone else - in a decent company, they will try to accommodate your growth, longer term at least. You can be let go on a very short notice and there is no job security (obviously). It can also make it tougher to get loans and mortgages since the criteria is much stricter.
It's not for everyone, and depends very much on what you do, but I have plenty of friends who freelance and would not go back to permanent positions.
But programming many jobs seem like the types of thing you can do even without the job.