Topic: opinion needed: jack of all trades or master of some / one

I posted some of this on YCombinator, but would like to get your input on this.

Have any of you developers struggled with determining whether you'd rather be a well-rounded developer, or one that focuses on a few areas but becomes an expert on those areas?

I'd like to pose this question in the context of entrepreneurship and freelancing, since we know specialized developers would fit in a corporate system.

As a programmer with an entrepreneur mind, this is something I question while trying to self improve my skills. I consider myself in the category of "jack of all trades" and am currently picking up new areas of development.

I figured a jack of all trades developer would be more appropriate for startups bootstrapping, a really small team, freelancing, and getting version 1 up of a product without much dependency.

As for the specialized coder, with an entrepreneur mind, I see the specialized skills fitting perfectly with a team of other very specialized developers.

I sometimes get that feeling of "spreading myself too thin" when trying to pick up many new languages / frameworks in a short amount of time.

Currently I've picked up Rails for the past year, but have been wondering if its worth honing my front-end skills, or instead, contract it out, etc.

Last edited by orange5912 (2007-11-06 04:55:49)

Re: opinion needed: jack of all trades or master of some / one

IMHO a good software developer is like a good engineer. He may prefer working with steel instead of wood, but given a pine board and a hammer he can still design an adequate structure. Software development is no different, it is inherently a generic set of skills and understanding about how computerized systems work.

So thats a vote for jack-of-all trades. If you learn the general skills you can reapply them to most situations.