
Ask HN: Being a generalist vs. being a specialist - aneelkkhatri
Getting excited about new thing and learning as much as you can until some other newer thing come your way exciting you to learn about the new stuff...; So many interesting stuffs, so little time! 
Life is short; why deprive yourself of so many exciting things? Or life is short; you can&#x27;t do so many things so better speciallize!
What do you have to say?
======
atsaloli
I find the T-shaped approach workable:
[https://en.wikipedia.org/wiki/T-shaped_skills](https://en.wikipedia.org/wiki/T-shaped_skills)

The generalization enables learning new skills/technologies faster and helps
with problem-solving; the specialization helps with being able to bill a
higher rate.

~~~
hanniabu
Agreed, I've experienced this first hand.

------
Gustomaximus
I dont believe there is a 'right answer' and someone is best pursuing what
suits them self personally.

For generalists, assuming intelligence and a reasonable affinity for learning
there is a heap of benefit. A generalist can become a specialist relatively
quickly, especially when doing something day-to-day on a job. And often a
generalist has benefit in understanding the big picture which aids in getting
the job done.

Specialists have that edge in knowledge and often stay up to date better and
general skills can erode quickly in areas of moving technology. This is useful
when you need something worked on at the highest level right now and don't
have learning runway.

Personally I've avoided specialising as I like the work diversity, plus enjoy
the employment opportunity of having a wider skill set. Also in my field of
marketing I find specialists rarely amaze me with their topic knowledge,
sometimes the opposite. For some of the specialists I wonder if they get
limited to specific areas as they dont like learning new things vs actually
enjoying taking their knowledge to as far reaches as possible.

~~~
aneelkkhatri
>"A generalist can become a specialist relatively quickly, especially when
doing something day-to-day on a job." Same feeling! Many things I learn seem
to have similar patterns be it programming, graphics designing, music or
photography; and every new thing learnt broadens my perspective on how things
work.

------
kangaroo5383
Ha! That's exactly me. However I'd suggestion being jill of all trades and
master of 1.

In my experience I find it more helpful to be really good at one thing but can
do a lot of different things (full stack, design, product) to get the job
done, you're more appreciated that way. In my case, iOS is my One.

~~~
GFischer
That's the "T-shaped" approach atsaloli mentions :)

[http://darrennegraeff.com/the-importance-of-t-shaped-
individ...](http://darrennegraeff.com/the-importance-of-t-shaped-individuals/)

~~~
koide
And now there is this new trend about the pi-shaped person, master of two.
Which is reasonable if you can manage.

------
blablablame
It depends.

Hear me out. When people say they are a generalist, they actually mean they
know a bit of JS and whatever the framework of the moment, a bit of rails (or
Django or Play) and they can come up with a bash script. If this is you,
better specialise otherwise you will be fucked.

Now, if you can do a full grown mobile app, a backend service for realtime
data, do 3d for the latest console or write a CAD file viewer that is fast,
write kernel drivers, hack up nginx to do your biding and write an ETL for oil
company, pick an haskell AI/learning project and improve it. Keep at it. You
will have so many doors open you don't know what to do with your time.

~~~
hanniabu
Can you please explain why you'd be screwed if you're in the first class of
generalist?

Also, maybe I'm more junior than I think, but your second class of generalist
actually seems more like being really good in a few verticals. Not an expert,
but demerit not a generalist.

~~~
blablablame
Sure, because 'you' aren't really a generalist. You are just a 'junior'
developer that dabbles a bit in things.

Don't get me wrong, someone like that has a place in some companies, but it is
the difference between being payed 20 bucks an hours vs 200.

All the stuff I've mentioned before, I've done. I've worked in more industries
than some have jobs. Right now, I can pick and choose what I do and get payed
way too much for it. I didn't specialise (but I admit there is a place for
that) but I have enough breadth that I can go from games, to AI, to 'deep
learning', to crud, to mobile apps without an issue, and with all that
baggage, I can ask for the big money as well. Let me just put a quick list of
language where I've worked professionally charging those values:

\- C

\- C++

\- Ruby

\- Objective C/Swift

\- Haskell

\- F#

\- Java/Kotlin

\- Python

\- C# (and Visual Basic, both .net and not)

\- Delphi

\- Borland Builder C++ (I don't even remember the right name)

This isn't a brag, seriously, just to point out that what a lot of people
consider to be generalist aren't even scratching the surface of it.

~~~
hanniabu
Fair enough, that is pretty impressive. That's how I want to be. I hate being
restricted to the language I know. It's nice to be able to pick up whatever
framework/language that would be best for the job at hand. For me, idk what it
is, but I also hit metal blocks when learning because I don't know how
everything connects in the bigger picture just yet. Learning other languages,
even if it's only knowing the basics and syntax, tends to help me it greatly
with understand and making everything click. Usually when that happens I see a
huge busy of understanding as well until my next road block which will usually
last a while again. I can definitely see myself being in your position in the
future (only started programming a year ago).

Curious, do you have a background in something else besides/before
programming?

~~~
blablablame
Not really.

When I was 4-5, my father took me to the arcades. Playing games there I had
the lightbulb moment where I said 'That is what I want to do'. At 11 I was
reading the Turbo Pascal manual trying to figure out how things work (mind
you, this was before Internet access was a thing and before I was playing with
the ZX spectrum playground). From there to C/C++ (DJGPP anyone?) to VB when at
16 I started doing payed work. At 19 I wrote a book on C++ and games and from
then on, games, insurance, banking, industrial processes, etc etc.

I did 1 year at university before I realised I preferred to be working. This
didn't mean I didn't learn (I have a library that I'm sure some small schools
envy).

But you know what my turning point in my career was?? Boxing! Boxing was what
gave me the discipline and hardwork to go through whatever it was thrown at
me. Not sure if that is relevant to 'background in something else' but
hardwork, dedication is 80% of the path, the 20% left, well... that is just
luck (this coming from someone that isn't really 'smart' by usual standard)

ps: I'm slightly tipsy so I apologise in advance for the lack of coherence.

~~~
hanniabu
Gahhh, can't wish enough that I got into this earlier. Graduated with a degree
in mechanical engineering, worked for a year at a startup, took a year off to
take the plunge into programming. Getting my feet wet with webdev right now.
Plan is to get into C++ as it seems that's where the industry is heading with
VR, AR, robotics, and web assembly.

I was actually wondering if you did something prior to programming thinking
that it may have influenced your wife range of fields. I think coming from
mech eng is probably the reason why I feel the need to understand how the
whole system works.

------
cdnsteve
Learn, explore and work on things that gets you excited every day. If you're
no longer excited or learning how to be better then you have some catching up
to do.

You don't need to write kernels, oil company etls, program mobile apps, or
make a self driving car to be valued. You just need to solve real world
problems, using smart tech that other businesses value too.

The biggest issue I've noticed is people aren't well connected to learn and
read up on tech. Having knowledge of your industry and tools is required, some
don't make a conscious effort to keep up.

------
pjungwir
I agree with T-shaped, but I will add: don't just expand the "breadth" part by
learning new languages. Sure, learn a language or two a year, and experience a
variety of paradigms. But more importantly, broaden yourself with skills that
complement what you already have. So if you're doing Rails, get to know
Postgres really well. Get to know one JS framework really well. Get to know
Chef so you can deploy and manage your apps. Learn C and write a Postgres
extension in it. Learn statistics and contribute to a Ruby-based stats gem.
Pretty soon you are a "full-stack" developer. And broaden your non-tech skills
too: Learn how to write well. Learn some public speaking. Learn how to read
financial statements. Learn about marketing. Learn about managing people. Etc.

------
1812Overture
Specialization gets you hired. Generalization gets you promoted.

------
jetblackio
If generalization is something you enjoy, that skill is hugely important in
the DevOps / Sysadmin world.

~~~
k__
In the start-up world especially.

I'm a front-end dev, but often I find my self writing back-end stuff, because
the back-end dev just doesn't have the time.

------
nekopa
I'm trying to do both by learning python really, really well. I only have to
specialize in one language, but shit, the ecosystem allows me to work in all
kinds of areas: ML, Web, big data, desktop and mobile apps...

------
majc2
You could be a technologist generalist, but specialise in an industry (or vice
versa).

Bare in mind, if you've got expertise in an area that people value, people
will pay you handsomely for it.

------
transfire
As a generalist extreme, I offer this fair warning. Without specializing in
something you may risk low cash flow.

------
bcherry
Even if you aspire to learn many different skills, technologies, disciplines,
etc, you should spend time becoming an expert in at least one thing. You'll
learn and develop many meta-skills through mastery of that one thing that will
be hugely beneficial across everything else.

------
piratebroadcast
Im very interested in being financially secure. What do you folks suggest
would be something good to specialize in? I do rails now, bit of front end.
Heavily interested in iOS.

~~~
kspaans
Might be a good idea to start specializing in controlling your costs. :P

Half-joking, but remember that there are two sides to financial security: your
earning and your expenses. If you are making $200k but living paycheque-to-
paycheque, you aren't much better off than living frugally on $75k. And the
magic of compound interest means you are better off staving while you are
young.

