I find different kinds of projects keep me interested. One month web dev, next month apps, the next month microcontrollers, next automation, etc.
I often hear it’s good to find a niche. Wondering if anyone can speak to the benefits of doing so?
Thanks!
If you want to work at a smaller company or found a startup, being a generalist is a great asset. It also puts you closer to the top of the hierarchy if you can make yourself invaluable to the business/yourself by being a “Swiss army knife.” By that, I mean everyone wants you around, because you can probably solve upwards of 90% of the problems that arise.
Of course, you can’t be a full generalist, you will end up having some language or tech stack you’re more adept in. That’s fine. You’ll probably end up being “T” shaped.
But to reiterate: if you want to make good money and you love a niche topic, specialize in it. Then go and work at a company with the scale/needs for that specific niche. Otherwise, if you’re a generalist, you’re better equipped to handle a vast multitude of problems, build initial solutions, and then hand them off to specialists as your company/project grows.
Edit: You might also just be a fox and not a hedgehog — that’s what I would consider myself. An interesting read: https://en.m.wikipedia.org/wiki/The_Hedgehog_and_the_Fox.
I think very much that moving up as a generalist requires developing "people" or "leadership" skills. If you're going to be thrust into ill defined or critical problems that can't be solved by any single specialty, there's also a much better than zero chance that you will also be dealing with the people who are affected by those problems, and with the specialists who will eventually need to be involved in order to implement a lasting solution.
I also believe that one way to be a generalist is to specialize in things that are inherently general, like math and physics. My parents advised me that no matter how much technology changes, an understanding of math and science will serve me for a lifetime. They are both retired generalists.
You could be a web developer, you could be a framework developer, you could be a EMCAscript developer, you could be a javascript developer, you could be a webasm developer..
If you like money, find a niche and "specialise" but to be honest you'll ultimately gravitate towards your interests even in that "specialist" field.
Just work on shit you find interesting, the money will follow.
Sometimes I get bummed at how deep my peers have gone in various subjects. Your brand kind of has to become "I can get production code working in pretty much any domain, but will be less great at hyper-specific areas of work". It's only bitten me once, and I even called out what was going to happen in advance and the employer just didn't listen.
There's always time to change though. I am mostly motivated by making money, so I just learn as much as I can about whatever tech my employer is using, but sometimes I think it'd be nice to reuse some of this knowledge sometime.
> I often hear it’s good to find a niche. Wondering if anyone can speak to the benefits of doing so?
Being more knowledgeable than most people because you've taken the time to learn the stuff that's harder to figure out/more nuanced, is the benefit. Being a mile wide and an inch deep means your expertise is in the wide, but there are problems that need the depth. The job that I did not get was hyper-specific to the JVM, writing high performance Java, which I said prior to the interview I wouldn't be able to do (and I was right).
If you're not interested in going deep on anything, don't. Keep chasing your interests. Just understand that the tradeoff is the lack of depth.
> The argument of specialist vs generalist is futile. They simple fit in distinct parts of the journey and evolution of a software product.
> Generalists are highly valuable for many types of orgs and projects especially nascent projects. But sometimes you need the precise output of a specialist to achieve something.
So, whether being a specialist or generalist is better depends on the context. In the end, it depends on what kinds of jobs you want to work on. If you enjoy working on the full stack, then there are still plenty of people who will want to hire you, especially smaller businesses. Larger organizations hiring a contractor are probably more likely to be seeking a specialist for a very specific job.
I felt that over the years of meeting tons of people whom I felt were quite "specialized" from my point of view, it would turn out that these rockstars were also generalists in that they picked up so many things across lanes that they were able to develop their niche or what I thought of as their specialized skill.
Sometimes having a lot of general skills and making them work together in a novel way could arguably be a form of specialization, thus establishing a spectrum or cycle of development
At risk of oversimplifying: Einstein endeavored on his established specialty in physics, but everyone would agree he was also just really good at physics in general if considered by generalists or interdisciplinary scientists, right?
First, "One month web dev, next month apps, the next month microcontrollers, next automation" that is _incredibly_ generalist. You'd probably be better off specializing at least a little more than that. If you only were doing two of those, you'd still probably count as a generalist :)
Second: I don't think there's one right or wrong answer to this question, but a generalist is in some sense a safer option. If you specialize, take care to specialize in something that will be around in 10+ years. Now would not be a good time to specialize in coffeescript or coldfusion for example, but specializing in Rust seems very safe. Specializing in julia, zig, or dart would be on the slightly riskier side.
I worked as a freelance translator—Japanese to English—from 1986 to 2005. From the beginning, I took whatever work was offered to me and ended up translating texts in a lot of different fields—business, advertising, engineering, public relations, etc. I didn’t know many other translators at first and just figured that’s what everyone did.
Around 1995, though, I started to get to know other translators through online discussion groups and meet-ups, and I discovered that some were very specialized—translating only chemical patents, for example, or only corporate financial statements.
The issue of whether to specialize or not was a hot topic on those discussion groups, with the specialists being especially fervent in favor of their choice. Their position was both that specialized knowledge is necessary to do good work in their fields and that, by being specialized, they could work more efficiently and make more money. The generalists, while recognizing the truth of what the specialists said, would respond that being a generalist allows a freelancer to respond more flexibly to changing market demand and that working only in one narrow field can get boring after a while.
Looking back, I’m glad that I was a generalist. Since leaving freelancing, my career has advanced in interesting and unexpected ways, and opportunities have opened up that probably would have been closed to me had I spent those twenty years as a specialist.
Please note that this is not an endorsement to become outdated but to evolve and specialize in current practices.
I too love all things software but I have learned to conserve it for my own projects, not for my services.
But it sounds to me like being a generalist is working well for you so I change it? You've certainly heard the phrase "a jack of all trades isbetter than none" but the rest of that says "but often better than a master of one".
If anybody ever questions why you don't specialize in one particular facet of your craft, you might remind them that being multi-dimensional in your skill set has often led you to solutions the specialist might not come up with. The amount of cross-pollination between specialties can often lead to better results in the long run.
Even as a specialist, it's good to remember how to be a generalist, keep trying new things.
Your specialty is likely to form gradually, until you realize that you're a specialist one day. It will be based on what you spend doing the most for a few years in a row.
Jumping around is fun (for a little while) but depth is what people really pay for eg how much could you charge if you could squeeze the last bit of latency out of some design that gives a firm an edge against their competitor. I'm sure people will claim that most business doesn't hinge on the margins and maybe that's true but there definitely are businesses that do.
Lately I have found it difficult to get work because the potential clients are looking for very specific skills both in terms of technical and business niches and they don't value my breadth of knowledge and experience.
Hiring managers just can't seem to get their head around the fact that somebody can come up to speed on a specific tech and industry in a matter of days. It's not like I'm ever starting from zero, I'm just picking up how a new thing differs from all that I already know.
The other is domain specialization - whether that be a coding domain like billing, UI, microcontrollers, or a business domain (IE industry) like shipping, business to business productivity apps, entertainment, etc.
It can be very easy to swap jobs within an industry. Likewise with coding domain. If you’re bouncing around all the time with no focus, it can end up that you will be less of a fit in a lot of places you work at. Still a very strong generalist is still quite impressive.
Business domain is another dimension to consider besides tech generalist or specialist. What is the problem you are trying to solve, and how do you know it's the right problem to solve? That can be a lot harder to do than the tech side.
Mind you, that's not a bad idea for generalists, too.
I would suggest you find something you like, find ways to contribute for free in forums and code given away for free so people will look to you as an authority and flip that into finding work.
The correct answer is both obviously but you will need to, at some point, specialize in something.
Ultimately what is best is what will motivate you the most. You’re gonna get a lot of opinions here but you need to trust your gut. Do what makes you happy. If you want to learn it all - don’t deny that.
It's not really about "better" its all about what advantages there are to different things and what advantages do you want to pursue
It really depends on what kind of roles you want next.