I worked as a software developer for about 30 years. The last 15 years of that time, I worked as a contract worker. In my experiences, most companies hiring a software developer as a contractor preferred that the contract worker work through a contracting company on a W-2 basis. The contracting company must handle the payroll, paying FiCA, and buying liability insurance, etc. which I think the end employer likes. I worked as a W-2 employee the entire time I was a contractor. As a result what I got paid ended up having much to do with how well I could negotiate my rate with the contracting company. Much of the time, the contracting company would attempt to keep the end billing rate a secret from me. I always hated that part of it because I felt somewhat blind in my negotiations with them. Most contract companies will attempt to keep as much of the billing rate as they can. In general, I felt like I was doing well to get them to only keep only 20-25% of the billing rate. Keep in mind, they have to pay half of the FICA out of that amount. A few times the end employer dictated to the contracting company, what percentage they could keep. Most of the companies I worked for offered group health insurance (I paid the full amount) and several offered access to a 401K (no matching). I felt the advantages of working for a contracting company on a W-2 basis (as opposed to 1099 on my own) were that I didn't have to set up my own corporation, bill the employer, pay FiCA to the government, etc....it was just easier to do it that way. The downside I guess is that I didn't get the full billing rate and probably didn't do as well financially. One way to look at being a W-2 contract worker is that you're a regular employee of a contract company without many of the benefits.
As far as a contract worker being treated as an outsider, there were times I felt that way, but in general, I felt like I was treated like any other employee. The longer I was on a particular contract, the more I felt like a "regular employee". I liked not having to do all the regular employee bullcrap like doing reviews and setting yearly goals, etc. Also, I got to avoid much of the politics of the work place. Another advantage was that as a computer programmer several of the companies I worked for wanted to put me "on call" to support the production systems (i.e. nights and weekends work). As a contractor, you need to get paid for every hour you work, so I asked my end employer how they planned to pay me for my on-call work and they usually removed me from the on-call rotation because they didn't want to pay the overtime. If you let them, they'll try to take advantage of you by having you work on-call for free. Don't fall for that unless you're desperate to hold on to the job. In my case, I gave them an ultimatum....either pay me for the hours I work, or I won't work those hours.
Being a contract worker is definitely less secure. I've had periods of time where I was out of work for extended periods of time. So it's important that you save as much as you can while you're working. In my case, that wasn't a problem because when I first started contracting back in 1994 I was able to make about twice as much as a contract worker as compared to a regular employee and saved all of the pay increase. I think that today the pay gap isn't as big though....at least in the type of computer programming I did. Another thing to ask yourself. Are my particular skills in medium to high demand? If yes, you'll probably do quite well as a contract worker. If not, you might want to consider working as a regular employee for the better security.