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 am about to graduate from college with a Masters in computer science. I have a couple of offers that I am considering and to me, the biggest difference between the two jobs comes down to one thing - how important is it for a recent grad to be part of a team of software engineers? Will it help me grow more in terms of a career in software engineering? Will it help me become better software engineer since I can get guidance from the experienced engineers?

The first offer is with a small telecom company. I've been interning here for a while and love the people I work with. Also, this is where I live currently and so there is no relocation required. The problem is that I'm pretty much the only software engineer here. Everyone else is either network engineers or system integrators. My goal is to have a career in software development and I am concerned about my opportunity for growth. Mainly, I've been creating internal tools and writing scripts for managing networks. My director says he plans on expanding our software team eventually. Also, not having a software engg team means that stack overflow is pretty much my mentor, not that that's a bad thing.

The second offer is actually with a top tech company. Pluses with this offer is that I will be part of a team of software engineers and hope that I will have the opportunity to learn a lot from them. I'm not really sure if that's what will happen since I've never worked in a software engg team outside of college. Cons of this job are:

  • have to relocate more than 1600 miles away
  • northwest, so not exactly pleasant weather year round. I'm from Texas
  • I liked the manager and the other interviewers but no guarantee that I will like the team
  • pay including benefits are somewhat lower than at small company

What do you think? Please help me out. Thanks.

share|improve this question
6  
Some might argue that the weather in Texas has its own set of problems. –  ChaosPandion Apr 29 '11 at 15:42
    
Did you miss your SE class? –  Trevor Arjeski Apr 29 '11 at 15:53
    
No, I took my SE class and understand the good things of working in a team. What I'm wondering is if the pros outweigh the cons of having to relocate. I'm just more of a settler type and don't like having to move. –  nithin Apr 29 '11 at 16:00
    
@nithin I'm the same way about stuff like that. If it seems like a good opportunity (good pay, benefits, nice area) then it's probably worth taking the chance. –  Trevor Arjeski Apr 29 '11 at 16:10
    
@ChaosPandion not going to argue with that. we do have the occasional wildfire or tornado to keep things interesting. but rain everyday is is just dull. –  nithin Apr 29 '11 at 16:31

5 Answers 5

up vote 2 down vote accepted

I will describe my experience, may be it's helpful, may be not. I had a similar choice and I elected to join the larger organization - in this case a reputable investment bank.

Their graduate program was second to none (IMHO), and I learn a lot at the early stages of my career working in large (and small) teams, and had opportunities to experience lots of different areas of the organization. Pretty soon, got bored of being just a small cog in a giant system, and wanted out.

Now I work for a smaller organization with only a few software developers, but I'm at that point in my career where I am in the driving seat rather than being guided. And for a smaller organization that is perfect, no need for training, no need for additional time to get to grips with technologies, I am here because of my experience.

The point I'm making is that, at such an early stage in your career, you need the time and guidance to develop - which you may not have at the smaller institution. Once you have sufficient experience, the world is your oyster...

At the same time I understand your dilemma, better the devil you know... ;) However take the plunge, try something new... you may enjoy it...

share|improve this answer
    
this was my thoughts, but wanted to hear it from folks who went through it. thanks –  nithin Apr 29 '11 at 16:33

You will exceed your own expectations working with a team. There are many advantages (2 off the top of my head):

  • Diversity: you don't know everything; chances are someone on your team knows things you don't
  • Ideas: this is key; you won't be the only one with ideas. You need to be able to brainstorm with people to solve problems

Most of all, working on a team helps you learn how to work with others - in both a supporting role and a leadership role.

share|improve this answer

This boils down to the question of what kind of work environment do you want. Some people may prefer having the massive autonomy that you have now and would rather stay and continue being a bit of a one person programming army. Others would rather have those other engineers to help build them up and broaden their skill set. This is really just a preference and to my mind you have to consider how badly do you want to be in that team? You know what you'd have to do and what unknowns you'd be facing, so in a way this isn't really that hard to answer unless you enjoy analysis paralysis.

Being the only developer and its consequences could well be similar to where you are now that may help if you want alternative perspectives on this situation that may not match exactly but should be close.

share|improve this answer

If I can add on to IAbstract a little:

I feel like working with a team helps organization skills because it forces you to document and comment code ALOT.

About liking people on the team:

I've been on plenty of teams where I disliked the people, or someone didn't pull his own weight, but it needs to be addressed. In the real world, there's always going to be someone on the team that you don't appreciate. It's tough to accept but it needs to be realized.

share|improve this answer

I think that the less experienced you are, the more important it is to work with a team. You don't want to get into bad habits that are harder to fix later on down the road. And you don't know what the senior people know - no matter how good you think you are. It is good to get exposure to both the best and the worst of what other people do. You can learn form both. And one thing you need to have in your tool kit is the ability to work with anyone whether you like them or not. People skills are critical to a successful career.

Teams often get to work on more complex, more interesting projects too.

When you are young and single, it is far easier to relocate than later on when you have a family. You could also consider if you want to take either job. There must be some software jobs working with teams closer to home. And you aren't committed to either path for life.

share|improve this answer
    
Great response! You don't know what you don't know, and it's hard to beat working next to senior devs at this point in your career. Best boost you'll get is working closely with someone way more experienced and better at coding than you are. Also, don't underestimate the power of a recognizable name on your resume. It opens doors. If you are concerned about the team, ask for informal phone conversations with some of them before you accept. –  Ethel Evans Apr 29 '11 at 18:09

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.