Take the 2-minute tour ×
Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free, no registration required.

I've been a freelance web developer for about three years, mostly dealing with non-framework based PHP projects.

I'm thinking of moving on to an employer-based job, but I'm not sure what will be expected of me or how to prepare for the transition.

What technologies, concepts, and patterns should I be focusing on to ensure I don't crash and burn once I leave the life of freelancing? What can I do to prepare myself for developing as part of a team?

share|improve this question
2  
two important differences: 1) at a company you'll be a part of a team, and 2) you'll need to wear pants at all times... –  Yannis Rizos Nov 2 '11 at 1:32
    
that is one problem i have, i have no clue of now to coordinate or work in a team of lther programmers. how do i gainthat experience –  stevenson Nov 2 '11 at 1:36
3  
I never had a problem with pants, but I did get some strange looks when I wore my fuzzy bunny slippers to work. –  Peter Rowell Nov 2 '11 at 1:40
    
Don't worry. Working with a team is mostly fun, you get to learn from / along with real people. There are some social skills involved, but not as many as in other professions :) –  Yannis Rizos Nov 2 '11 at 1:41
    
i guess this is normal and even though i am confident with my knowledge but i feel as if i dont know enough to be employed for another –  stevenson Nov 2 '11 at 2:20
add comment

4 Answers

What technologies, concepts, and patterns should I be focusing on to ensure I don't crash and burn once I leave the life of freelancing?

That depends entirely on the position that you're hired for. From your comments, it sounds like you're worried about not knowing enough about one thing or another, such as Javascript. You don't need to worry about that unless you've decided to apply for jobs that depend on skills that you lack. If you're not a Javascript expert, don't apply for positions that demand significant Javascript expertise. If you're honest and open about what you know and don't know, the problem should sort itself out for you.

What can I do to prepare myself for developing as part of a team?

This is the better part of your question. You've been working alone for a few years, so how do you learn to work with others? Step back and think about all the people you've interacted with in the work that you've done. If you've been doing "web development," you probably haven't been working entirely alone. You might have worked with other freelancers, your clients, and your service providers. These people may not have worked for you, but they were all part of your 'team' in some sense.

There are certainly technical skills that you'll need to acquire in your new job, like how to use the company's bug tracking system, version control system, time reporting system, and so on. Those things are easy to learn, and new employees coming from other companies will go through a similar transition because the systems they used at their previous jobs were likely different.

The more important skills will be your social skills. If you can play nicely with others, make your managers and colleagues look good and feel good, and fulfill your commitments, you'll be fine. There are about a million books on the topic of how to do well at your job; pick out a few that appeal to you, read them, and think about what they have to say. All I Really Need to Know I Learned in Kindergarten could be a good place to start.

share|improve this answer
add comment

For me, the most important difference is the freedom to choose what you want to work on. As a freelancer you have the freedom to turn away or even fire clients. I turn away many more jobs than I accept. At a company, if you get assigned to work on CRUD 8 hours a day, well, you're working on CRUD 8 hours a day.

share|improve this answer
add comment

Well, there are several differences.

  1. You are working for one customer. If that customer is unhappy then you have a problem.
  2. Your skills from the projects you have done are valuable, but you need to figure out how they mesh with the company's way of doing things. The company's way almost always wins unless you can make a compelling argument that your way is better. Be prepared to lose on this one.
  3. When you interact with the company's customers (assuming you do) you are representing the company and not yourself. You must know what the company's positions and policies are before you start spouting off on some subject or making promises.
  4. You are part of a team and that means you need to act like it. Don't just do something, coordinate with other team members. This includes naming conventions, formatting conventions, version control, etc., etc.
  5. Assuming you are in the U.S., you are no longer getting a 1099 at the end of January and you no longer need to pay estimated quarterly taxes. On the other hand, these taxes are being automatically deducted from your pay, so if they take too much you won't get it back until sometime the next year.
  6. It also means that your personal fortunes can rise and fall based on someone else's decisions. If you are working for a company that makes good decisions, then great. If you are working for Oracle (just as a random example) on stuff they bought from Sun, then you probably want to keep your freelance skills up-to-date. Ref. Java, Ref. OpenOffice, Ref. SPARC
share|improve this answer
    
ive worked in the past but i would take any job amd only recently i got into web. what scarres me most is not haveing enough js knowledge. i mean i know the basics non object related and i am currently studying all i can but have never needed to apply it to projects ive used in the past. ive seen websites that have 10s of thousands of js lines used and all hand written. i dont see its real use other than prettyness and validation –  stevenson Nov 2 '11 at 2:08
    
I write relatively little stand-alone JS any more; the various browsers are broken in many weird and wonderful ways. Life is too short, etc. I would start with some simple jQuery examples. Learn to use its selector mechanism, and then how to chain actions. This is incredibly powerful stuff and will be useful in the future. My single, most favorite jQuery plugin is taconite. It can make many AJAXy type sites trivial to implement. Also try writing your own jQuery plugin, it's good knowledge to have . –  Peter Rowell Nov 2 '11 at 3:59
add comment

If you work with an employer, you will most likely be working with somebody else depending on where you work at, which will make things much easier

freelance web dev will most likely be slower (unless you are a complete webmaster)

share|improve this answer
    
as a freelancerthankfully ive had non stop projects for 3 years straight. i was with a partner who would design and i would do the rest. problem is we would split 50/50 which ended being less than min wage for me. so ido have good experience but only i regards to what ive made so far –  stevenson Nov 2 '11 at 1:40
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.