Hacker Read top | best | new | newcomments | leaders | about | bookmarklet login
Ask HN: Is it better to be good at many things or great at one thing? (b'') similar stories update story
113.0 points by matonias | karma 136 | avg karma 1.45 2016-10-27 07:34:11+00:00 | hide | past | favorite | 114 comments

Talking about the digital world of course. Young man here, should I learn one thing really good (like back-end programming) or go all out and learn as many things(front-end, 3d, photoshop, back-end etc..) as possible and be okay in all of them.


view as:

Wouldn't you know it, it's best to be both: https://en.wikipedia.org/wiki/T-shaped_skills

That's interesting! Never heard of the T shape skills

There's also the concept of divers (specialist skills) vs scanners (interested in everything). Comes down to personality, but both have their strengths obviously.

https://www.psychologies.co.uk/self/what-do-you-do-when-you-...


As an IT guy (I'm a developer, BTW), I think T model is probably the best model.

Technology is progressing rapidly nowadays and we need to know about them in general (the horizontal bar). But we also need to master 1 or 2 (or a few), and these will increase our "value" (this is the vertical bar).

For example: I know how to build web apps using some PHP frameworks, I know how to write Android apps using Java, I can write desktop apps using Java, etc. This is my "generalist side".

My "expertise side" is smart card (at least this is my current plan). So I focus on mastering Java card, ISO 7816, GSM 11.11, GSM 11.14 and so on.

I keep my eyes open on new, emerging technologies, but will not put much effort to master them.


Be good at what you do and know a little from everything = Good CEO Be good at what you do = Great Employee Know a little from everything = World wide Loser.

> "A human being should be able to change a diaper, plan an invasion, butcher a hog, conn a ship, design a building, write a sonnet, balance accounts, build a wall, set a bone, comfort the dying, take orders, give orders, cooperate, act alone, solve equations, analyze a new problem, pitch manure, program a computer, cook a tasty meal, fight efficiently, die gallantly. Specialization is for insects."

    -- Robert Heinlein
I've certainly always found being a generalist more satisfying, even if it isn't always what gets rewarded.

I wouldn't necessarily restrict this to "the digital world."


This is true, because nowadays many people don't know how to do all the things above, because its all about the digital world. Yay! We should get even more broader.

What I get from this is that we should acquire a specialization to be employable by the corporate hive.

> Specialization is for insects.

Yet the advancements in human civilization arose precisely from specialization. Nobody would have had time to build computers if they had to spend all day farming, building houses and writing sonnets.


Perhaps "overspecialisation" then. Plenty of people build early computers while having other interests on the side. And the microcomputer era was substantially driven by people doing it as a hobby.

Ah but that would be bad prose style.

Learning to plan an invasion is actually not worth doing. It takes way too long (invasions are really fucking complex operations) and if you actually need it, you will know about it 3 years before.

You know you're getting old when, every time you see that quote, you realize that you've done one more of those items...

I have noticed that the world doesn’t work like this and talent is very unevenly distributed - those people great at one thing seem to be great at lots of other things.

Extreme specialisation seems to be correlated with unhappiness so it might be better to be good at many things if you want to have a happy life.


Where did you find that specialisation seems to be correlated with unhappiness?

This is just my observation. Like anything involving people the best you can do is correlation (too many outliers), but the driving factor seems to be people get locked into a path early in their life and find it hard to walk away from all they have committed to their specialisation when they later find they don't actually like what they have spent their life becoming good at.

Focus on a few things early then narrow it down to the things you prefer (or make you more employable) as your career progresses. The concept of a T shaped developer seemed popular a couple of years back (in blog posts at least).

Find something that is a good fit for you and in demand (preferably rising), avoid niche and fads. Be good at that one thing and a handful of directly related tech. Keep yourself informed about other stuff to the degree where you can hold an intelligent informed conversation and contribute to decisions. Use your spare time to satisfy intellectual itches. Expect periods of boredom in any job. Look after your spine.

Do what you feel happy doing!

In terms of thinking on a path for your career, think only of whether you are putting all your eggs in one basket. If a job role later becomes difficult to get / stay employed in, and you can't adapt, then that's the most likely problem you'll face.

I have always tried to be interested in a lot of things, so that I can turn my hand to new things once I need a new challenge. It has worked well for me so far ;-)


2 complimentary skills give you the most bang for your buck. Front end + photoshop, or backend + systems design. (You could also find a complimentary skill that isn't technical.)

Depends on your wishes, I myself am a biochemist moved into molecular biology moved into biophysics moved into micro-fluidics moved into data-analysis.

Now I'm a person that talks to many specialists and brings ideas together to create new research paths to go into. I talk a lot, I write a lot and do some programming. According to tests I'm an extroverted person with a short attention span who is motivated by frequent changes. My current position requires this of me.

If you prefer to just focus on getting a single, (complex) job done, introverted, away from other people, you're better of specializing imho. Me, I get new ideas by talking with others and can enjoy meetings. Many of my colleagues can't, they just want to get their current task done ASAP.


Everybody goes to the general doctor, but want treatment from the specialist one. Usually a balanced combination between some general knowledge of many things and specialist in one thing is the best. Beware some people can be specialist in more than one thing but they are not typical, not the best always: https://www.ted.com/talks/emilie_wapnick_why_some_of_us_don_...

If you want to build a reputation for yourself, it is much easier in a small niche. It's easier to be know as "the" guy who does awesome, interactive audio in D3.js (just sputtering stuff here) than to build a reputation as a "the" awesome frontend developer.

Once you have your small niche in a firm grip, you can expand outwards.


Honestly? Try to learn as much about everything as you can. I mean every subject, every subfield. What I've found is each effort I made in one subject improved my efforts in others by a significant order of magnitude. With more knowledge you gain more ways of looking at the problems you're faced with and therefore can find more paths to solutions.

Each new piece of knowledge you learn will give you a better base from which to learn more, and slowly the amount you are able to learn will increase to help you cope with the load.

After a while you gain the ability to reduce a problem you're faced with down to other problems in other disciplines, then things start getting boring because you can already figure out a way to reduce this problem, etc. So at that point it's time to mix it up a little and refocus.

Another thing that should be noted is that you should always make sure that you are out of your depth with at least one thing you are studying. You can only really improve by pushing yourself. However remember that you cannot push yourself constantly, sometimes you need a break. So in doing this, you should be driven by your own interest.

What I have found is that I am not necessarily able to do everything at once, so I end up doing a rotation of things I find interesting at that moment. Eventually I'll either discard some topic or problem or such, because I don't find it interesting or I will find something new that I find more interesting. If things get stagnant, mix it up a little!

I've been doing this for approximately the last five years, and I think the payoffs have been great, and I have learned so much more than I think I would have otherwise. However I have nothing to compare to! So we cannot be sure =)

Do what interests you.


What work do you do?

Everything interests me, superficially[1]. Most of it is useless except for playing trivia games.

If I were a FU-rich autodidact that wouldn't be a problem but I'm a poor schmuck with a family to support.

My brain is so full of interesting stuff and tangential thought that there no room for focused attention on anything mundane enough to count as useful work (though I'm sure with an equipped workshop/lab and a couple of years I can turn one of my book-of-ideas concepts to something useful for mankind).

Don't we \have\ to do what gives us a living?

[1] superficially perhaps isn't the right word, the minutiae of everything is infinitely interesting too, more that things are only interesting temporarily, which leads to flitting about across diverse subjects.


One time some years ago I found myself with too little time to dedicate to all my interests. Every bit of time that I spent on, say, cinema, was biting into available time for say, electronics, or cooking improvement. I grew frustrated.

So I sat with a pencil and a sheet of paper and wrote throughout the paper things that interested me. Then I linked all the related things together with lines, and ended up with my graph of interests. Things that, on contrast with those already in the paper, were too supeficial, I didn't write; and I wrote about 30-40 of them.

It was more illuminating that I initially thought! As I now had a clear mental image of how all interacted, and where the center of my interests laid. So little by little I started seeing the more fringe interests as what they were, and even as a function of their "path from the center". I started dedicating more time to the central thesis, and the fringes helped me gain new perspectives on the main "leit motiv".

And eventually I had an idea that resulted from all of that. Now it is the basis of my main side project. I do play from time to time with the rest, and the center is moving around a little bit, but there is a strong focus on reaching the goals that most interest me.

(Sorry if this ended up a little bit too abstract and vague; I hope it helps!)


I just tried doing this, as it sounds interesting, but I don't think I did it quite right, or a lot of interests just didn't connect so well. I'm curious to see a visual depiction of the type of graph you made.

I also did something like this many years ago, after finishing my bachelors and I was struggling to figure out what my next steps were. I took it one step further and tried to see if there was some sort of emergent theme that I could overlay over all my various efforts that had some sort of broader meaning to it. I find it enormously satisfying to be able to be able to fit all my various sub-projects, and extracurricular into this kind of network - it makes me feel like I'm constantly pushing some broader goal forward.

I'm currently a software engineer intern at a security company. The work, while being semi-mundane compared to the projects I'd choose (At least at the level I'm working at), is at a fair enough pace to be fun, and it's aiding my self-development hugely because of the culture at the company.

Overall it's a 40 hour work week along with 3 extra hours of commute a day, so I take to reading mathematics/cs literature on the train and use the rest of my day to either relax or to learn more things.

I would say that while we do have to do what gives us a living, there are options. Contracting, for example.

I should say as well: I also have the same dilemma, I'm interested with everything. So I decided to choose for subjects (such as mathematics) that will give me a better base to learn more subjects.


> Don't we \have\ to do what gives us a living?

Of course, nothing says you have to have only one job. Luckily, all of my interests are viable professions, so I try to do them all.


Do you have a bunch of part-time jobs? Can you do most remotely or freelance? How does it work for you?

I maintain a part-time programming job and a seasonal farming job. That provides a reasonably stable income without dominating all my time. Then, it's just picking up whatever my desires at that time take me to, which could be on a freelance basis or even turning the interest into a product for sale.

I have become especially fond of the latter approach, when possible. No million dollar moonshots like you often read about around here, but I've had good luck at least making back the cost of my time/materials, which is quite gratifying for something I'd tinker with for free in my spare time anyway.

I think it works really well for me. I love the flexibility and variety while still being practical. But, again, I have been fortunate to be almost exclusively interested in things that people are willing to pay for.


> Do what interests you.

I had a roommate in college who every next morning after waking up talked of different interests/career options. This advice works for people who know what they are doing but, it's quite broad for people who have no clue what they are doing.


To be an entrepreneur you need to know a little about a lot of things.

To be employed, you'll do better as a specialist. If you pick the right specialization.


This 100x. If you go down the route of a generalist (and not just "generalist engineer" but generalist in marketing, engineering, back office, etc.), then you will quickly find yourself unemployable in the traditional sense since you will no longer ft any job description.

Maybe you can still wing it if you have a strong network, but if you plan on being employed rather than running a business, err on the side of being a specialist but keep your eye open for shifts in trends and don't become complacent on your existing skill set.


I'm feeling it. I'm a generalist working as a specialist, saving money until I can take my two related side-projects full-time.

Yup- we'll see what's in store for me if I ever have to go through the bigco PM interview gauntlet again! Not even sure I'll pass the resume screen even if I'm friends with the hiring manager! ;)

Yeah. I'll also need to work on personal branding once I go fulltime because otherwise it will be difficult to get a job next time.

This 100x also. I would just add that both approaches are risky:

You can become a 'Jack of all trades and master of none' without vocation to entrepreneur;

Or you can become a specialist in an outdated or irrelevant skill.


I like this idea. I am leaning more towards the entrepreneur side, because being employed is not my ultimate goal. Good thinking.

My recommendation is personal only, and does not include any "business-wise" suggestions. I would say being good in different things is better. This brings a simple problem tho, you are going to forget what you are not using. But, "learning" is an experience and a good one. So I would say learning and knowing a good chunk of any/everything will help you even in specializing.

Me: 30 years professional programming

Certified AutoCAD technician

Certified TIG Welder

Degree in Supply Chain Management

Certified Bicycle Wheel Builder

Potter

Wood Turner

Proficient in 3D Modelling

Launched an ISP in 1995 that is still going

Project leader for a charity market garden supplying produce to a food bank

Assistant director / Assistant Producer of a feature film released on DVD (you can buy it on Amazon)

Producer of 4 music videos that have appeared on MTV

Made most of my own furniture from scratch - bed, table, freestanding kitchen unit, chairs

Was resident VJ at a successful rave series for 5 years

Appeared in stage plays for paying public

Qualified scuba diver

Arrested twice on TV on environmental protests

Occasional data analyst for a Superbike racing team at the national level

This isn't even my final form & this list is incomplete

Live life, box sets are for the dead to get buried in.


WOW! I'm truly inspired!

PS: Which feature film did you produce?


Just an indie, I don't want to reveal myself tbh.

When I read my own list I can never quite believe it myself, especially as I'm so lazy !

My motto is "don't consume, produce" and it goes from there.

All those hours watching other people do stuff, it could be you. Get involved. Just walk up to people doing the thing and ask how to join in. Most people are keen to share.

Oh, and the last thing: I've never really made much money but I've had plenty of fun being poor.


A great place to do this is at your local maker/hackerspace! Since we started ours (sparkcc.org) I'm constantly amazed at the amount everyone learns from one another.

And as you say, that one night a week at the makerspace meetup could just as easily be spent in front of the TV.


That's awesome man! Great example

Inspiring list!

One thing I notice is quite a few qualification. Obviously, some of them are more-or-less essential if you want to do, e.g., scuba diving -- but for the others, how valuable have you found them?


I got certified for AutoCAD because I was bored doing programming all day, I could already do 3D modelling but couldn't prove it to anyone because it was just a hobby thing.

From that I got jobs doing CAD, first at an electrical place and then acoustic insulation.

I qualified as a welder because I was doing CAD of metal enclosures and wanted to understand welding enough to talk to our proper welders.

Then because I was doing CAD, I designed and built my own furniture - I had used the Ana White website as a place to find practice things to build in Autodesk Inventor during my certification [1]

[1] http://www.ana-white.com/

I ride bicycles so wanted to be able to build my own wheels - so that was handy.

It really is just the choice between "I'll go home and watch tv until I go to bed" and "I'll go to my local technical college one night a week and do a course in something"


In consulting/freelancing it is better to know many things, but market yourself as a specialist instead of a generalist.

Good one!

I recommend reading 'The Wealth of Nations'. As an economics textbook, it is fairly dated, but it makes the point that ten people with a specific specialization can do more than ten people all doing the same work at once. Therefore the value you can provide increases with specialization as you can be part of a team than can provide more.

My salary increased once I marketed myself as having a specific specialization, but the difficulty of finding a job increased too.

It is a basic application of supply vs demand. As, say, a PHP developer, you're competing with millions of other PHP developers around the world. There are plenty of jobs, but there are also plenty of people who are competing with you, driving your price downwards.

If you narrow it down to knowing a lot about a very specific framework or PHP system - for example, you know a lot about Laravel or Drupal, then you're competing with fewer people, and people are willing to pay more for an expert, but there are also fewer potential jobs.

There's also an associated risk. If you specialize in Laravel and Laravel goes out of style, you will have to remarket yourself as a PHP dev again... Some people specialized intensely in Microsoft Silverlight, and they ended up like this - http://www.commitstrip.com/en/2015/07/28/betting-on-the-righ... (it's not a total loss, as some programming paradigms work across languages). With the risk comes increased reward.


> I recommend reading 'The Wealth of Nations'. As an economics textbook, it is fairly dated, but it makes the point that ten people with a specific specialization can do more than ten people all doing the same work at once. Therefore the value you can provide increases with specialization as you can be part of a team than can provide more.

I think it's improper to retrofit a dated analogy into something innately complex like software engineering. It ignores the communication overhead needed in creating software which was almost absent in low mentally-taxing work of 18th century.

Let's say a team wants to build a website. Are you sure you'll have better odds at making it in time with a specialist for HTML, CSS, and Javascript? Brook's Law is at play here — finely grained task spread across dozens of people who have a little idea about everyone else's work is bound to prove disastrous.

The role of specialist is crucial, but only when the her knowledge in a singular aspect can save a lot of time for the whole team.


> Let's say a team wants to build a website. Are you sure you'll have better odds at making it in time with a specialist for HTML, CSS, and Javascript?

Yes, I'd prefer an expert in LESS and SASS and another expert in Angular or whatever javascript framework, rather than two jack of all trades. They're different skills. In fact, most software shops do specialise at least to the level of frontend and backend and usually further depending on their size and the size of the project.

There is still a role for a 'senior foreman' to oversee the process, but that was always the case, even in Smith's time.


Dug well into later pages of the Wealth of Nations is the pretty brutal passage below. Smith's works are a lot more complex than often paraphrased as, as are many modern classics. (Currently writing a book on BPO, so a topic of interest.)

Quote follows:

> “The man whose whole life is spent in performing a few simple operations generally becomes as stupid and ignorant as it is possible for a human creature to become. The torpor of his mind renders him not only incapable of relishing or bearing a part in any rational conversation, but of conceiving any generous, nobdle, or tender tentiment, and consequently of forming any just judgement concerning many even of the orginary duties of private life.”


Scott Adams (yes, the Dilbert guy) wrote an insightful piece on career advice in his blog a few years ago. In it he asserts that to have an extraordinary career you should become very good at two different things.

I believe this article popped up on HN a couple of years back:

http://dilbertblog.typepad.com/the_dilbert_blog/2007/07/care...


An expert without basic generalist know-how is just ignorant. An expert in only a single field is single-minded (think "SAP expert":). A generalist without expertise is just average.

Do both, as people always have. But start out a generalist to get an understanding of what is good to specialize in. Then pick 2, 3, 4 diverse areas to home in on.


Exactly this.

I have a current specialism within a fairly specialised field, but this leaves me plenty of bandwidth to move within the field in the short term.

My background is loosely related but has given me a set of core skills which I can draw on where I see other people being employed as specialists. I try to maintain my core skills in other areas to the extent that I can commoditise them for my own purposes if needed, even though I have no interest in actually pursuing 'excellence' in them.

When I first started down my specialism a number of years ago my expectation was that my previous background would become irrelevant as it felt like quite a big pivot. I was (and remain) surprised at just how wrong I was - having additional background skills that aren't directly related makes me more valuable.


I agree with this! Personally, I have a CS degree and a PhD degree in Natural Language Processing, although my current interests are larger than this. For instance, I work as web developer, do some mobile apps, do data processing and some tutoring, as they traverse a big range of my current interests.

Later on you can start mixing things. For instance, I do freelance tutoring on these subjects, I use my webapp backend Python code on an Android app I have, etc..


Over a 25 year career I've worked on most key Microsoft technologies, but started out my work life as a Sys Admin for DEC VAXs using VMS. I'm also conversant with Linux, and can pretty much pick up anything IT orientated quite easily - I can design and build almost anything if I put my mind to it.

I see myself as an IT generalist, but in the workplace I have to specialize. Currently I focus on making Single Identities work across systems for large Corporates. It's quite niche, and at times monotonous work (the design is pretty much the same wherever you go), however in order to be GOOD at whichever specialism I'm pitching at the time I heavily draw on the cross knowledge I've gained over the years. This extra knowledge has ended up being invaluable in separating myself from the herd in the recruitment marketplace.

So in short. Early on you should generalize and learn as much about stuff that interests you; later on (10+ years) start to specialize based your preferences (or mortgage size, or whatever).


I think having good grasp in different domains and tools can be good for you both career wise and for your own sake (entrepreneurship, creativity etc). But it can also be a disadvantage depending on where you work.

When I first graduated from the university (at 23), I got a job as an IT support guy in a growing company (80+ employees at the time). I was the only IT support and my job was to help people with their issues and maintain the IT infrastructure. I managed to solve all types of issues which I guess people started to recognise. This was fine. However, since I also knew programming, my managers wanted me to help out on development (PHP), to ease the load on the developers. As time went on I became better with our framework and started to get more more complex programming assignments, while still being IT-support. For me this became a real struggle, completing programming tasks on time, maintaining IT infrastructure (servers, network, buying hardware, phone calls) and helping people with their issues. Somehow I managed, which my managers recognised (I assume, and hope), so I got additional assignments regarding "Big Data", basically get information, store it, connect the data with other data sources and so on.

At the end I was doing everything with IT. Data science, development, IT support, system administration and more. The reason it become like this, at least what I think, is because I had a sufficient grasp on most domains and tools so I just continued to get more stuff to do. When I finally quit, I actually realised that I was not feeling that great. I could feel the stress inside me slowly diminish.


My story is very similar to yours. I have come to appreciate that those years formed a very strong foundation for me, and today I can be domain specific with a large blob of context.

Point is if you don't become a good generalist first, then you'll be a mediocre specialist.


I follow the principle of trying to be (and hire) T shaped people. Wide generalist knowledge (knows a little of everythin) but one topic where they go deep. You can be specializing in backend programming but I would expect you to be able to hack a quick front end fix. You can't get away without the minimum of basic HTML, CSS, JavaScript, SQL and Linux, you also must know basics of security (CSRF, XSS, SQLI etc). Then you can go deep on anything you want.

Be it web application development in specific, or software engineering in general, or even in life itself, I'd say its much better to be good at many things than great at one thing. For one, it makes a person self sufficient and independent. Assuming one is a curious autodidact, one can always improve or learn things that they aren't good at yet. Next, it sort of gives you a perspective from various points that makes you appreciate things better. Finally, it is a humbling experience (which is good in life) as it makes you realize how much there is to learn - the more you know things the more you know you know nothing effect. Of course, one must not get perturbed when derided as "jack of all master of none". On the flip side, one must also not go around town calling oneself a polymath or a renaissance man - those days are over, at least with established fields of knowledge - as it would be equally ridiculous.

Wise words. I totally agree on this. The world is more than only one specialized field, their are too many possibilities in life to focus on one thing.

To quote from the Valve Handbook [1]:

> We value “T-shaped” people. That is, people who are both generalists (highly skilled at a broad set of valuable things—the top of the T) and also experts (among the best in their field within a narrow discipline—the vertical leg of the T). This recipe is important for success at Valve. We often have to pass on people who are very strong generalists without expertise, or vice versa. An expert who is too narrow has difficulty collaborating. A generalist who doesn’t go deep enough in a single area ends up on the margins, not really contributing as an individual.

Where you choose to be deep should be an area of interest to you and which the market values.

[1] http://www.valvesoftware.com/company/Valve_Handbook_LowRes.p...


To push the analogy even further: paint drip people.

https://www.facebook.com/notes/kent-beck/paint-drip-people/1...


Yeah, I guess he coined the name.

I used to call it "bicycle-wheel-shaped human" - https://news.ycombinator.com/item?id=12226420.

(Actually, I still call it that way. I like my analogy better - it highlights that at some point, skills tend to connect to each other, and you end up discovering a common base connecting separated disciplines of thought.)


That also is the term that we use to describe the people we're looking for.

People who are highly skilled at most things and top experts in one thing are highly valued. Revolutionary!

Hilarious, we like the broad and deep. Because the broad are not deep and the deep are not broad.

I think be broad by default and acquire depth when you need to...


The most successful people are often specialists, but that's because they took a high-risk bet and won. To maximize your average success (rather than chance of runaway success), it seems more efficient to be a generalist, due to diminishing returns from any single skill. Just take care to be actually good at many things, not average at many things.

neither

This'll sound like a cop out but it really depends. Are you going into academia? If so it takes years of specialization to get good enough to make a meaningful contribution in the form of innovative and good quality research.

Are you planning on going into startups? In which case jack of all trades does very nicely!

The key is to be very good at some things but to also keep your eyes open and learn things outside your comfort zone - you never know where your new found knowledge can take you and often times it can make you better at whatever you chose to specialize in.

So senior architects who write APIs - for fucks sake (showing my background here!) - write the prototype client library - it will improve your API design skills.

Backend devs should write a front end or two or at least do some pair programming with the front end guys.

Bottom line - be very good at some things - but be open to learning new things and getting out of your comfort zone.


"I fear not the man who has practiced 10,000 kicks once, but I fear the man who has practiced one kick 10,000 times." --Bruce Lee

I am not sure if this submission is tongue in cheek or not.


Is the sum of small numbers greater than a large number?

I am the consummate jack-of-all-trades. It is a disorder. And it irks me EVERY day that I'm not amazing at one single thing. I am SO envious of people that possess a single-minded focus and the older I get the more I regret not finding that singular passion. The problem is...I get bored with one thing. Or at least, I'm never crossed that painful membrane of boredom to find bliss in single mastery.

I have a similar problem. It bothers me a bit that I'm not amazing at any single thing, but not nearly as much as it bothers me that there are things I can't do well. I have this strange belief that I should be at least competent at every skill there is. (I blame my dad for this, by the way. He is good at everything. :-) )

Amen to this. I am 29 (I suppose that is still considered young) and I can relate. I feel like I may have a similar disorder. Luckily for me my hand is being forced by my work. I have to know C# and SQL Server for my work, and this forces me to specialize.

My side projects on the other hand consist of F#, Elixir, C#, Python, Java, Unreal Engine playing around with Azure and Firebase. Just a giant list of things I build to 10 - 25% completion. There is this unreasonable and insatiable hunger to understand how EVERYTHING technical works, but only 80 years to learn it all in. So I end up buying books on Kivy (Python), Fsharp, I have 2 books on Elixir, one which I never even started etc etc. Send Help!

P.S. I even have a book on Openstack cause I was like "Wow, that sounds awesome, I must learn all about it." I haven't opened it.

P.P.S This obsession with knowing how to do everything also manifests outside of the digital world. I have a fridge full of kimchi I will never eat, and a laundry full of Mead I will never drink.


I used to buy books to learn things back in the 90's, when docs were hard to find.

Now I find that the best docs are not written books, but online documentation. These days I'd say just play with it. Build an app. Start up the one box openstack devstack. People have gone through a lot of pains to make a simple dev environment work for a lot of different languages/platforms.

Once I get into it, it's less of an abstract idea, and more trying to do something. Having a toy project in mind also helps to build something useful. Over time, your knowledge will simply accrete.


I find I am also addicted to that "ball drop" moment or moment of clarity when you finally realise how something works. Those moments are also a lot more common in the early stages.

Skills are recursive. If you're jack-of-all-trades, it means that while you're neither good at A, nor B, nor C..., you're good at the combination of X = {A, B, C, ...} ;). Find something for which you need to apply many of the skills you have - single-minded people won't be able to follow you there ;).

What do you do as your day job? Do you find that you don't focus on one thing as part of that?

I'd say I'm the opposite. Funnily enough, I'm envious of people who are a jack of all trades because they can choose the right tool for the job. I just do iOS development in my day job and side projects and although I love app development, I find the lack of knowledge on other tools limiting.


I would recommend you start with something you're the most curious about and/or find the most useful in your day job. It's like this, you're hired to bring value to a company so it should make you productive if you know it better. Get to know that well, seek out edge cases and new techniques. If you put your time into it, you will gain that knowledge fast.

The important part is not to stop when you're finished. Pick up the next thing and do the same. After you go through a few phases you will have enough general knowledge to apply in many areas.

In this way you start a specialist and become a generalist. You'll know fully well what your tools and technologies will be capable of and you will be able to give reasonably accurate estimates.

As far as I can tell, unless you have an eye for design, it's generally easier to start on the back end and move to the front end. This way you can be productive and are able to move between companies. Front-end is still changing a lot. But there are a lot of promising releases/tools in the works that are making getting started a lot easier.


Yes.

When you truly master something, the understanding of mastery is a surprisingly portable skill.

It can make you seem like a generalist, when in fact you are just a transcendent specialist.


I've known successful people that have done both.

Both have their value. Personally I prefer broad over deep, but that's me. You need to figure out what works best for you.

Deep has the advantage that when specialists are in demand, you're really in demand. It's good to have someone on the team who knows absolutely everything about the thing you do. The downside is that when technology or your career moves on, you know nothing. You're stuck doing that one thing, and may have a harder time getting into something else.

And broadness has a specialization of its own. Knowing multiple things is particularly valuable if you know how to connect those things. If you can develop front-end with an eye on what's easier for the back-end, if you can design the graphics that you will need, rather than having to wait for someone else to get around to it. Knowing different unconnected things is less valuable, but even there you may find unexpected connections. But for the deep technical stuff, you may find that you'll have to ask a real expert.


Become very good (top 25%) at two or more things.

http://dilbertblog.typepad.com/the_dilbert_blog/2007/07/care...


I second this ... find the gap between 2 different skills is so valuable.

Think of it this way:

1. skill to know the problem that needs to be solved.

2. skill needed to solve the problem

Second skill isn't necessarily programming computers btw - could be leadership, persuasive writing, film making, etc.


There is going to be a comment on this that is really good from someone who has spent a lot of life thinking on this topic. You will also probably be able to aggregate a whole lot of opinions from people who may think about this every now and then. Which do you think will be more informative?

For yourself: be good at many things. It will make you happy.

For your (potential) employer: be great at one thing, that they are willing to pay you a bundle for. Then use that money to buy all services you need to be happy.


I think the key is to get past the "mediocre/o.k." skill level .

The problem with going deep is picking the right discipline. Since you may pick wrong initially, going broad first allows a chance to pivot to a different skill to go deep on.

The first skill is the ability to learn in a fast organized manner.


Well, I'm going to cheat.

Be somewhere between "mediocre and good" at many things, and be really good at one or two things. If you can be great at one or two things, that is nice, but not strictly necessary.

There's a lot to be said for generalists, or "T-shaped" people. Every single project requires a large breadth of skills all up and down the stack... and a lot of moving pieces (client, server, markup, JS, CSS, blah blah blah) that work together.

There is a place for specialists, too. In fact, we need them to make the world go 'round. But... there aren't as many of those places.

Here's a real-world example. I literally just finished troubleshooting this issue. Finding the bug and developing a fix involved (1) our iOS client (2) our React web client (3) our server-side auth, implemented in Rails (4) a messaging library with both client and server components (5) some other bullshit I can't even remember at this point.

I'm not the best at any of those things. I'm barely even good at them. Honestly, I don't even fully understand the auth fix that our brilliant (and I don't mean that sarcastically) programmer implemented. But I understood enough of those moving pieces to isolate the problem and get things into his hands.

It'd be really fucking great if I was the world's leading iOS developer or whatever, but if that's all I knew, this issue wouldn't have been fixed.


> There's a lot to be said for generalists, or "T-shaped" people. Every single project requires a large breadth of skills all up and down the stack... and a lot of moving pieces (client, server, markup, JS, CSS, blah blah blah) that work together.

That's not really the meaning of T shaped, as I understand it. The point of the T shape is that you have a lot of breadth (the top of the T) as well as a deep depth in an area or two (the stem of the T).


Isn't that what I said? :)

> Be somewhere between "mediocre and good" at many things, and be really good at one or two things.


I'm somewhat reminded of some Einstein quotes (probably dubious but whatever):

"You ask me if I keep a notebook to record my great ideas. I've only ever had one."

and

"It's not that I'm so smart, it's just that I stay with problems longer."

At the same time:

"The important thing is not to stop questioning. Curiosity has its own reason for existing."

and

"I have no special talent. I am only passionately curious."

So I say follow your curiosity. If it wants to go deep go deep. If it wants to go broad go broad.


Either/or. Just care enough to be good at anything at all. Additionally, be good at something that doesn't involve work skills. Work isn't everything.

"What's the secret to getting in? I can't tell you. You have to find out for yourself."

Professionally it's far better to be great at one thing (or a clump of related things). The market doesn't if your skills are kind of close to a professionally marketable level in many areas. On the other hand, it generously rewards those who are the best at any task people care to pay for. Find your strongest comparative advantage and milk it for everything you can. If you're good at and bad at writing, then be a musician, allow your writing to remain horrible and work with horrible musicians who can write.

In the personal domain, the situation is the opposite. It's just not possible to outsource being healthy, financially sensible, romantic or a good friend to someone else. If you're really struggling with one of those areas of life, it's worth it to work on fixing up your weaknesses rather than just further developing your strengths.


It really depends on what you want to do (i.e., your personal definition of "better")

Last time I was looking for a job, the recruiter came back to me and said "I can find lots of jobs that need your skills, but none that will pay the salary you want."

So we discussed what my skills were. I was looking for a SW dev job, but I have degrees & experience in EE, SW, lots of time working with integrating SW, EE, and Mechanical motion control, more experience working with biochemistry and understanding how various physical movements can affect the way a reaction proceeds, and the repeatability, etc. of the output.

Finally she says, "hmmm, you're really a Systems engineer with a Software engineer title." Then a new set of job opportunities (that wanted to pay what I wanted to be paid) showed up.

And somehow I ended up taking a position as a software engineer/Manager... go figure.


Start with many things and keep on doing them honestly and humbly.. sooner or later you will become master in few ...

It's even better to be able to become good at things as circumstances demand them.

That depends on what your goals are and what interests you.

There are things only specialists can do and things only generalists can do.

There are people who are equally interested in a lot of things and people who are particularly fascinated by a single topic.

Which are you?


It doesn't matter if you have amazing depth in XYZ or you know about many things, no one cares and in one year all your knowledge will most likely be obsolete.

If you're going to "learn" something, make it universal. Learn to communicate (written and verbal), make friends, have experiences and learn to be empathetic and check your ego at the door.

The truth is, life is short and you will never master anything let alone become great in many things, so why try? What's so bad about being technically "decent" and exude the universal skills listed above? I'd hire that person any day.


You can't be good at many things, mostly because people who spend all their time doing one thing will outdo you; so at best you'll be mediocre at many things. At worst, you'll think you're good at all those things.

Be mediocre at many things and specialize to some extent on few things.


More food for thought:

https://hn.algolia.com/?query=generalist&sort=byPopularity&p...

https://hn.algolia.com/?query=rennaissance%20man&sort=byPopu...

https://hn.algolia.com/?query=specialist%20vs%20generalist&s...

Personally, I like having a variety of skills. I want to be able to dip in anywhere on a project and be productive.

You'll naturally have focuses, or drips of paint, which I see is referenced in another post. Your focus really can only be on one thing at a time, and presumably you're not just learning for its own sake, you will be learning to accomplish some goal, which will drive the learning.

I'd rather work with a well-rounded engineer than one that is a poor communicator, tool user, etc but has very excellent skills in a very specific area.

YMMV. There is lots of value in having deep skill sets. There is also a difference between being a "dabbler"/"knowing enough to be dangerous" and being a competent engineer.


If you choose one thing, choose politics, because no matter what a genius you are, the HR department has the other kind of reason. Social Justice Warriors, you name it..

Most places calling me about jobs want a full stack developer.

Legal | privacy