Freedom or mentoring?

Let’s take a hypothetical here and say you’re looking at two jobs. They’re at roughly similar companies which we’ll call Company A and Company B (I know, I know, original, right?). You’d be working on similar projects at either and they both have comparable co-workers. For all intents and purposes they’re equal, save for one glaring difference:

  • Company A gives you more freedom to “explore”. You’re more or less given time to read up on things, try new technologies & methodologies knowing full well some will fail and basically waste time (and given some extra slack in your schedule to compensate), get some extra training here and there, and not have a pink slip waived in front of you if you happen to let a few bugs through to production.
  • Company B has one or more senior developers that honestly love their craft, push continous learning, and can mentor you in advanced – and “proper” – directions and techniques. Test driven development? Check. SOLID principals and their real-world application? Check. Domain driven design? Check. I’m not just talking about guys that have read up on these topics either, but that have years of experience in them and a metric crap load of failures under their belts that they’re willing to share inorder to help insure you don’t fall into them too. They take pride in all aspects of their job and won’t stand for letting things slide.

Which would you choose?

It’s tough. The benefits Company A provides could get you to the same end goal as Company B, albeit at a slower pace. Company B would presumably be stricter on slip-ups and time management, so if you’re using a technology you’re not terribly interested in or you’re taking a route you don’t agree with, there’s not much you can do without working on your dime.

You’re not guaranteed to ever reach that same end goal with Company A as you would with Company B, though. Self learning is a difficult, slippery slope. You have to encounter all those failures yourself and actually overcome them. Granted, failing for yourself teaches you something more than just hearing a warning from a mentor, but those failures take time, and I believe there’s a quote about these situations… something along the lines of “Those who fail to learn from history, are doomed to repeat it”, I believe.

Me, personally? I’m not sure. I can see it both ways, though I’ve only had the pleasure (?) of working with companys similar Company A. It’s a tough decision, and my answer probably depends on what day you ask me. I know I’d like to see what the other side of the fence has to offer though.

What’s your take?

6 Responses

  1. John Miller Says:

    For myself personally, I would have to go with Company B. Seriously, if Company B’s on Cleveland’s east side send them my contact info ;). Finding a shop that prides itself in practices like TDD, DDD, SOLID, etc is hard in any locale, but doubly hard in NE Ohio. And having a mentor who takes those values seriously is an extremely valuable luxury to have. It enables you learn to grow at a much faster rate than if you are surrounded with developers that are at the same skillset as yourself.

  2. Maggie Says:

    I would love to work for a CompanyB in Cincinnati. I would look for mentors that give you honest feedback and good guidance in areas I need help but know when to let go of the training wheels. I would like an atmosphere of a shared code base and code reviews.

    My current job is more like CompanyA and I do not have co-workers experienced in TDD which makes it hard to learn.

  3. Matthew Werstler Says:

    I guess I am lucky, because I’m working at Schumacher Homes (http://www.schumacherhomes.com) and we are in-between the two companies.

    The only problem I would find with Company B would be the last couple months lots of people were being let go. Being the new kid on the block you will be the first cut.

    On the other hand Company B will probably put your career on a better track for the future. Being a lone ranger doesn’t always look great on paper.

  4. Darrell Mozingo Says:

    I agree with everyone, and I’ll clarify that Company A agrees with all these “best practices” and there’s buy-in from your co-workers (so there’s no push back anywhere), there’s just nobody there to teach and guide you on them.

    You’re on your own to figure them out.

  5. Robz Says:

    I am at a Company B having taken that step from a Company A about three years ago. I’ve never looked back. Now I am one of the seniors. But I still have one other person who continually challenges me to get better and I think I need that.

    No brainer. Company B.

  6. Lee Brandt Says:

    I’m gonna have to go off the board and say Company A. I’m sure I will kick myself a little when I have to push through something by myself, but I can look to the .Net community (like @Robz) to push me and help me to grow. The time to fail is invaluable when learning new things, and being given that time can be just as invaluable. Company A for me.

    ~Lee

Leave a Comment

Please note: Comment moderation is enabled and may delay your comment. There is no need to resubmit your comment.