TE
TechEcho
Home24h TopNewestBestAskShowJobs
GitHubTwitter
Home

TechEcho

A tech news platform built with Next.js, providing global tech news and discussions.

GitHubTwitter

Home

HomeNewestBestAskShowJobs

Resources

HackerNews APIOriginal HackerNewsNext.js

© 2025 TechEcho. All rights reserved.

Ask HN: Specialize or generalize?

12 pointsby enrmarcover 9 years ago
Who I am? Developer, twenty-something, about 3 years of experience. I&#x27;ve worked with Ruby (plain and Sinatra), Python (scripts), PHP (and CakePHP and Slim), Java (plain Java and Android), JavaScript (and CoffeeScript and AngularJS), HTML (and Jade), CSS (and Sass), relational db modeling and querying, SQLite (Android related), MongoDB (via mongoose), Express (AngularJS related). I know about REST, API design, MVC,design patterns, etc. And more theoretical things like data structures, algorithms, discrete maths and all those things one should know after getting a BCompSc. I like reading books and I&#x27;m trying to read some of the ones listed here: http:&#x2F;&#x2F;stackoverflow.com&#x2F;a&#x2F;1713&#x2F;434171<p>I worked as an Android developer, as a fullstack developer and now as a FE developer. I feel myself confident if someone ask me to implement something (build X from scratch using Y and Z, even if I don&#x27;t know Y or Z) but the thing is I feel like I don&#x27;t know anything concrete about the technologies above. I mean, if someone ask me about &quot;what is a block in Ruby?&quot; or &quot;how controllers should share things in AngularJS&quot;, or &quot;what are array comprehensions in Python&quot; or &quot;GET or POST to update something?&quot;... I think I know the answers (because I have deal with that in practice) but I&#x27;m sure my answers will be very vague; like if I just know the surface of them.<p>I enjoy knowing a little bit of everything but a) I don&#x27;t have enough time and b) I guess I&#x27;ll have to, at least, master one or two technologies in order to &quot;make more money?&quot;. The dilemma is which one? The most I like? The most I already have experience with? The one I think it&#x27;s gonna be there for at least 10 years? Or perhaps I just can continue being a &quot;jack of all trades&quot;?<p>Thanks(and sorry for my English).

3 comments

Arcanaover 9 years ago
I think for building things, especially in a small team, a Jack of all trades is preferable.<p>I think it depends on what you want to do. As you said, you feel confident in implementing something. I think that&#x27;s the key thing, getting the implementation done or getting the project built.<p>There is certainly room for the specialists, take security for example, implementing certain types of security take a specific set of knowledge and experience. If that&#x27;s what you love to do, then that&#x27;s a fine path. If you&#x27;d rather build things or like to experiment, a more general approach is good. You can always team up with other people later on if you need more specialisation in a certain area.<p>I think as well that Jack of all trades doesn&#x27;t apply as much to technology as it does to building for example. A builder may specialise in bricklaying for example. That&#x27;s great, building a modern building on your own is going to take a team anyway. Besides, bricklaying probably isn&#x27;t going anywhere any time soon.<p>Technology on the other hand is constantly changing. You could be a specialist in a programming language that five years down the line is mostly irrelevant with weak support.<p>I think in a way, you&#x27;re both. You seem to specialise mostly in programming, while generalising within programming. I think that&#x27;s a good mix to allow you to develop a strong and useful skill set while remaining lean and adaptable.
akhilgupta82over 9 years ago
My recommendation would be to master one thing and for the rest you can be a jack of all trades. This is because, while you are only 20-something right now, when you do come into your 30s, and want to get higher up the ladder in responsibility, people will look up to you for your &#x27;expert&#x27; advice. You can only put yourself in this position if you decide to specialize on one thing at a minimum. Maybe the question should be given your very diverse and incredible skillset, what should you specialize in?
ruraljurorover 9 years ago
One way of thinking about this is as the T-shaped skillset. You have familiarity and experience with a breadth of tools (in this case I would think web technologies) but go deep in one or two. Sorry, but I can&#x27;t help you choose which one.<p>On that list of books you mentioned, you might want to skip to <i>The Passionate Programmer.</i> It discusses some of the questions you&#x27;re raising here.<p>And FYI your English is excellent. No need to feel self conscious about that.