+5  A: 

Definitely a full time job. Nothing will flood you with experience quite like doing your work (programming) in a real programming environment: other programmers, revision control, managers, code reviews, and strict schedules. It will make you both a better programmer and a better employee.

You can definitely be a better programmer through contracts, though; just seldom a better employee! You can be a little more independent about your work, schedules, chosen technologies, et cetera, letting you push yourself and expand where you need to.

Tony k
+2  A: 

Chances are that as a junior level developer you will have difficulty getting a contract gig. I'd recommend looking for something permanent at first. A place with a good development team and standing policies can do wonders for your experience.

Jeremy
+3  A: 

I'd say that a full time job will offer more in the way of mentorship and professional development. So, that's the way I'd go.

dustyburwell
+9  A: 

In general, I wouldn't expect to see much growth in a contract position as I'd expect you to be hired for a particular skill you already have.

On the other hand, in a full time job you are expected to grow and learn as you move up the company ladder. I'd definitely go with that if you have a choice.

You can definitely learn and grow as a contractor, but you'll have to do much of it on your own--enough so that you're qualified to take a variety of contracts.

Michael Haren
Would you agree that you *can* learn *as* employee, but you *have* to learn to *become/stay* a contractor?
David Schmitt
@David: I agree provided that you want to grow. You can take either job and ensure no growth by not pushing yourself.
Michael Haren
+1  A: 

I have to disagree with the advice to take a full time job. If you meet J. Spolsky's 2 hiring requirements: smart, gets things done, then you shouldn't have a problem getting hired into contracts for technologies for which you don't necessarily have the experience. At least that has been my experience.

If you can figure things out on your own using various forums and other resources on the internet, that is just as good as having a hands on mentor. Indeed, in 11 years, 9 of which I've spent contracting, I have met very few senior developers who are even interested in mentoring. It's pretty much dog eat dog out here, and contracting will force you to stand on your own.

So in retrospect, I guess the answer might depend on your level of ambition, and talent. The more ambitious you are, the more I would suggest contracting.

Good luck! In fact, feel free to message me offline, I'd be happy to shoot you my resume, so you can see how it is possible to jump right into contracting as a junior developer.

George Jempty