by nonasktell on 9/21/22, 3:35 AM with 224 comments
Fullstack web dev, a bit of cyber security, a bit of AI, mobile apps, all kind of automation/bots/mass scraping, growth hacking, small games, low level C...
And I'm starting to wonder if I should specialize.
I've always been interested by AI, but since it's such a large/complex field, I never really took the time to dedicate myself to it completely because I'm always interested by 10 things at the same time.
I have absolutely zero doubts about my employability, but I'm afraid to regret it long term if I don't specialize in an interesting field.
Do you regret being a generalist? Have you been one in the past and then changed? In that case what do you prefer? Do you regret it?
by jameshush on 9/21/22, 5:55 AM
I consider myself a "full stack employee". I've done backend, frontend, hosted live events, some sales, marketing, a dash of HR, pretty much everything.
Do I write that on my LinkedIn? Heck no. A year or so ago I looked at all the experience I had, saw I had a through-line story of how I've worked on video projects over the past 7ish years, and decided "I'm the frontend WebRTC guy." I identified the spots of knowledge I needed to read up on to be confident (just a few gaps here and there) interviewed at a job, and within 10 minutes into the interview my future (now current) boss said "You're the perfect fit!". Because I was. I'm the frontend WebRTC guy with some sales/marketing experience, and they needed a frontend WebRTC guy with some sales/marketing experience.
Before that, I was the Frontend DevOps guy. Before that, I was the Backbone.js guy. And before that, I was the Sharepoint guy (shhhhh don't tell anyone!)
If you're interested in AI, just go poke around and find something in AI. Don't sweat it. We all got plenty of time, and like you said, as long as we can center divs and set up click tracking on a Wordpress site we'll always be able to put food on the table! :)
by keyle on 9/21/22, 4:43 AM
I can program anything, bring me your dead and I will raise it.
Specializing, that's called a job. Work is work and they have a stack you gotta use, better or worse.
No one can take the hacker out of the hacker though.
My resume in terms of languages basically goes back in time, where I'm "expert" of what I use every day, but what I haven't used for a while I just put "good".
How do you sell yourself as a specialist to a company with a stack? Simple, "I don't know X but I'm keen to learn. I'm sure I can scale up to it". If they pass on you, it wasn't meant to be. As a job, your job is to return higher value than your cost. If you do that within a team, you're a net positive. Whether it's by teaching what you know as an expert, of coming up and scaling up to help wherever you can.
Either way, there are very few stacks that are permanent enough that you could be an expert in the matter for decades. Things simply move too fast.
So get behind any shiny new stack that you fancy and become a subject expert, it might pay the bills in 5 years. If not, you probably learnt transferable skills. At the end of the day, no matter the language, stack, team, we're just all trying to get the computer to do X.
by eimrine on 9/21/22, 4:22 AM
by jandrewrogers on 9/21/22, 6:10 AM
Whether or not to be a generalist is a question of ambition and also where you are in your career. Life outcomes for generalists cluster around the median, outcomes for specialists have much higher variance. The idea of "t-shaped skills"[0] is valid and often excellent generic advice for optimizing career outcomes but it is not the right advice for everyone. I made a very intentional decision to ignore my polymath instincts and focus on just a few strategic areas when I was ~30 and it made a very noticeable difference in terms of the opportunities available to me.
It is difficult to know what you want to specialize in without generalizing first. True mastery of a domain typically requires considerable amounts of personal interest and focus, so it needs to be something you enjoy or you are unlikely to be competitive against those who do enjoy it.
An alternative, if a single specialization feels too limiting, is skill stacking i.e. specializing in two or three skills. This has more potential but requires more work. There may be only a few people in the world that can operate at the intersection of those specializations -- it can be very rewarding depending on what those specializations are. Complementary specializations can be synergistic.
Don't discount specialization happening accidentally by virtue of how your career evolves. I have a useful deep specialization that I never intended which is strictly an artifact of a truly random path dependency, not personal interest. Nonetheless, it is immensely valuable to me now because it complements other specializations I have so I maintain it.
Don't worry about it. If something is worth going deep in, you won't need anyone to tell you.
by dbcurtis on 9/21/22, 5:08 AM
by sph on 9/21/22, 9:11 AM
Makes sense to me now. Working on the same technology for more than a few months and I get terribly bored. So I keep learning new stuff and staying entertained and motivated. The more I learn, the more I am valuable to my clients.
Most companies don't need a hammer. They have all sorts of problems and need someone to fix them. One day it's the Ruby backend, the other it's the database server. How quickly can you learn, adapt and create value? And for that rare and very specific problem, you call the world-class specialist for two billable weeks. The remaining 50 weeks of the year, they need you and your expertise.
Don't forget that software engineering keeps becoming wider, more complicated and accelerating. You have to keep apace with it, or you'll find you're a fantastic expert at a JS library that nobody has been using for the past 5 years, which is archaeologic in software terms. It's exhausting, but if you stop staying abreast of technology, catching up becomes increasingly difficult.
by navneetloiwal on 9/21/22, 6:14 AM
The first few years in my career were a will-do-anything attitude. So yes, like the OP, I did a bunch of different things. A few years in, I harbored similar thoughts of feeling inadequate. A jack-of-all-trades-but-master-of-none. Especially, since I was at Google and was surrounded by the best of the best and experts/specialists in anything you could name.
My next stint was at an early stage startup (<10 employees). This is when I started to realize that this "weakness" may actually be a strength. You could point me to a wide array of things and I could run with it. I could take the principles from one stack/language/system and use them in another.
Now, as a founder, my favorite hires are generalists. Engineers who have a wide breadth of experience, a do-whatever-it-takes mindset, and ideally, a sprinkling of product/business sense. They are the first-principles thinkers. They can handle ambiguity and change without batting an eye. They will figure when/where you need a specialist.
Be proud of being a generalist.
by techdragon on 9/21/22, 4:17 AM
Mid thirties and being a generalist means that not only am I employable, my breadth of experience allows me to bring together things from places others would be unaware of.
I occasionally wish i was more of a specialist, but usually chalk it up to the sort of all pervading impostor syndrome that goes on in software development circles.
If someone wants to put me in a position based on my current skills where I end up becoming an expert and they pay for that time, then it will happen. Otherwise I'll just keep learning enough to be useful in dozens of smaller ways. From the browser's JS engine event handling at the bottom of Flux/Redux to how Kubernetes works and how to do useful stuff with it, to 3D printer firmware and how my drill press works.
by 1983054104 on 9/21/22, 5:24 AM
But I'm also not stuck in this generic mindset. I'm good at C++ because I like it more, that's my freedom and my choice. And after one or two years in a company, I kind of become a specialist myself on what I'm working on.
The secret is to always learn new stuff. I have 20 years of experience and I'm still reading books to learn (C++20, Rust, etc.) I've seen way too many coworkers who were stuck for the past ten years in a boring job or a dead technology and could not get out of it, it's very sad. When we meet for lunch, I always have funny stories to tell about "my new company." Yes, my previous coworkers have stable jobs but the salary is not good, they have no raise, and if their company closes for good, they will have a very hard time adapting and finding a new job (because it's most likely they only worked for one company their whole life). They always come back to me for advice on what to learn, what to do, and how to find a new job. Last but not least, their knowledge is tied to their own company and is not transferable.
What seems to be fragile is actually a power: I can quickly learn AND adapt, and I can switch companies without being unemployed if the management becomes crazy or if a company is stalling and/or on the verge of closing due to lack of money.
For me, being a specialist is interesting because you know one subject deeply, but it can become soul crushing, you'll have a hard time switching jobs, and you seldom learn new stuff. The best example I've seen all these years is C++: when you work for a company, you use THE specific C++ of the company and most of the time the "tech leads" refuse to change and, again, you're stuck in that specific version which does not teach you anything.
by o-o- on 9/21/22, 6:47 AM
The reason? You can throw any problem at these people, and they will solve it without asking for a dedicated DNS guy, an extra front-ender or an LDAP guy. They can foresee obstacles and point out pitfalls around any technology. Not because they're experts in that specific tech field, but because they can generalise. If they say it's hard, management knows it's really hard. If they say it's stupid, management knows it's really stupid.
I never regretted anything. There were days when I felt the appeal of the prospect of knowing one single thing/tech really, really well, but for starters I met a bunch of those guys and they're really hard to work with. As soon as something happens outside their comfort zone ("I've never seen this before – what's a proxy?") they need help. Plus it's a risky approach – what if that tech becomes obsolete? There are a lot of old cobol developers out there that are more or less unemployable (at least as cobol developers).
by filmgirlcw on 9/21/22, 4:37 AM
On the flipside, before I moved to my current company, I did struggle with promotions at times because I wasn’t seen as a specialist in any one area. The overall value that I saw in being a generalist and that others used to their advantage wasn’t rewarded the same way as it was for peers who were focused on just one thing.
So I don’t regret it and I do think there is real value in being a generalist. But be prepared to have to work harder to show that value to others.
by wink on 9/21/22, 6:05 AM
This is generally not a problem and many people are actually happy to get someone who has not just seen 15 years of one thing.
The T-shaped thing is a bit of a meme, but I do believe you shouldn't be a complete generalist and not be quite good at some things, so I guess the depth of your one or few specializations is up for debate.
But in summary I don't regret it. I don't want to call it "easily bored" but I can really not imagine myself as still doing the exact same thing as 2001, when I started working, even with the technologies that were around at the time. Sure, even there things change (looking at you, Java and PHP) but still. The only thing I don't recommend is hopping from language to language every 2-3 years, that's simply not enough time to go deep enough.
by mudrockbestgirl on 9/21/22, 5:37 AM
If you love AI, go for it, but from purely a career perspective it's probably not something I'd recommend. The market seems so oversaturated these days since everyone and their mom is interested in AI because of the hype. By the time you're done "specializing" the market will look very different. Again, not a problem if you're truly passionate about it, but don't do it just for career opportunities.
by GianFabien on 9/21/22, 6:10 AM
I'm in my 60's. Have worked as a contractor in effectively every field of IT and taught post-grad SE courses at university. I still program in C, Javascript and Python. Can design, build and configure data centers. Know most variants of Unix and its progeny, etc, etc.
Yet ... I'm finding it very hard to get contract work post COVID. Recruiters are looking for 3-5 years experience with specific products. I demonstrably can learn fast and most of IT is old wine in new bottles with fancy labels. But that doesn't meet expectations.
If you seek intrinsic motivators, then being a generalist satisfies curiosity and yearning for knowledge. If you seek optimum employability and high salaries then being a specialist is the key. BUT a lucrative specialization now, will probably be of little value in 5-10 years time.
by noodle on 9/21/22, 2:25 PM
Being a generalist also, IMO, makes you a more effective manager for crossfunctional teams, and gives you empathetic understanding on how the sausage gets made across the board, instead of just in a single domain.
But as others have stated, you can be both a skills/technology generalist while also framing yourself as a specialist. As I alluded to with my personal history, I consider and frame myself to be a startup specialist due to my broader base of skills.
by LouisSayers on 9/21/22, 8:15 AM
I've thought about some of this recently, and while I don't regret being able to jump through the tech stack, or even do a sales call or set up a marketing funnel, there are definitely a few issues that come to mind.
1) If you jump tech stacks you're going to have to spend time getting to know the layout of the neighbourhood. Avoiding jumping across ecosystems will save you time in the long run.
2) You may never truly reach your full potential of really knowing a language if you're constantly jumping back and fourth between many.
3) Some employers will try to pigeonhole you and not take into account your broad array of knowledge (resulting in a lower offer). This may just mean that they're not the right people for you though.
4) Technology is constantly evolving, so you will become out-of-date with technologies you no longer use or use infrequently.
On the flip side:
* You can gain respect of your team and become a "go-to person" for helping them solve their array of issues. This can help give you leverage within a company (e.g. deciding to work part time)
* Having a broad skillset is perfect for starting a company if you are entrepreneurially minded.
* You'll gain mad problem solving skills.
If I were to offer one bit of advice:
Pick one tech stack and be a generalist within that tech stack - and don't let job listings dictate what you will spend your life working on / learning. Choose your work strategically.
by j45 on 9/21/22, 4:48 AM
It reminds me of a quote where an expert is someone who knows more and more about less and less. That seems true for specialists and generalists.
Generalists can connect dots between unrelated that specialists might not.
Generalists can build and connect many layers.
The chasing of shiny objects slows down once you start seeing how little is actually new.
Serving the solving of problems that make a positive impact for users is important to know what generalists can do that’s very unique. This helps inform what you might want to go deep in vs broad.
For me it was the realization that most software tends to answer one question in many ways: Where is everything at? It became the connector to people and what they were after.
Also during the pandemic, it seemed generalists were able to learn how to learn and contribute some very unique solutions.
The subsequent change in society will require not just specialists who focus on one thing or way.
Generalists roll with the change at both as big picture and in details.
You need both and I don’t think the specialist is better than the generalist, or vice versa.
by PainfullyNormal on 9/21/22, 4:47 AM
What I do regret is not being better at marketing and sales. It has been difficult to find work at times because I don't fit neatly into an employable box.
by MarkMarine on 9/21/22, 4:53 AM
I’m a 0 to 10 engineer, 10 to 50 is rough, 50 to 90 is boring and 90 to 100 is like watching paint dry for me. If you want to be valuable for the startups that need 0 to 50, you need to wear some different hats.
You also need to know yourself. Figure out what you love in this and do that, you’ll never be burned out or bored. When I’m in the right place, I can happily code all night, do 2 Months of work in a day. When I hate my job, I struggle to create anything, it all feels like work.
by kypro on 9/21/22, 11:33 AM
I seem to have acquired a fairly diverse set of technical skills compared to most devs which has it's advantages, but at the same time I know at times it can make it hard to explain to employers what I do and how I can be useful to them. Sometimes this leads to me being underutilised, and in my opinion under appreciated. It can also make interviews difficult because employers like you to talk about relevant experience where my experience is all over the place.
I personally think my skill set is awesome though. I tend to be the perfect candidate for smaller companies where technical specialisation isn't feasible. Need someone to do some some UI/UX design, frontend development, backend development, devops, AI, SEO, QA? I can help. I've worked with almost every major language at some point in my career and while I'm not great at every language, I'm familiar enough that I can get whatever needs doing done.
I do try to keep my frontend development skills current enough that I can call myself a frontend dev when needed. Generally for contracting or when applying for positions in larger companies this is my best route. When I'm in the door sometimes I can branch out a little, but it depends on the company. I do worry I might fall behind at some point due to my lack of focus, but honestly I think people who specialise too much fall into that trap more often. If the technology you specialise in becomes redundant, then so do you. Having a broad set of skills gives you a technical safety net because there is always something else you can fall back on, even if that comes at the cost of fitting less perfectly into any specific role.
So no, I don't regret it and I think it's actually an advantage if you can sell it correctly. Learn as much as you can in my opinion. There are definitely companies out there which really want great generalists who can just get stuff done.
by harha on 9/21/22, 5:27 AM
Personally it's great, I can quickly build models to improve complex decisions, e.g., by defining things as an optimization problem, building small simulations etc. And I can dive into many topics because I've worked on the basic components of many things.
Also I can quickly prototype whole solutions end-to-end. This helps understand what's missing and how to build a roadmap.
Right now I work as a product manager, though it would be great to find something where I could actually use my problem solving skills more and create more value by modelling complex systems.
by ipnon on 9/21/22, 4:32 AM
by tsbischof on 9/21/22, 5:02 AM
Yes, in that that you have to sell yourself carefully. "I solve any problem" is not generally reassuring, because it is always an approximation, and because a specialist might see the pitfalls of a particular approach earlier. Given time you will become a specialist in whatever tool, but that needs to be built into projects or your professional development budget.
by 23B1 on 9/21/22, 4:27 AM
by tylerfoster on 9/21/22, 8:26 AM
The one area generalist tend to fall down is ending up as the fix-it person. Moving from one fire to the next, building up a lot of system specific knowledge that isn't transferable. Don't end up the fix-it person.
Find the highest value capability and build it simply. Then do that again. The simply part is super important if you're always interested in 10 things at once. And always trying to code yourself out of a job.
If you want to do AI, just do a couple side projects with it.
by harrylove on 9/21/22, 6:05 AM
Do I envy those who were able to specialize and find fortune, keep their sanity, and look good doing it? Absolutely there are days that I do. But regret being a generalist? Honestly, I think I would go crazy if I tried to force myself to be anything other than.
by anyfactor on 9/21/22, 5:13 AM
No. Not at all. I just know one programming language pretty well and I just do one kind specific that is weirdly broad. Full Stack web application with a scraping/automation backend. It is like Fullstack Web + Data Engineering (or, DE with a hat)
I call myself general-purpose Python developer. I can fit anywhere but I don't want to do programming full time at the moment.
I am working in a developer relations (DevRel) role for a Data As A Service company for the past couple of months, I have honestly never been happier. Being a generalist programmer helps, and being a generalist sideproject-hacker-type works even better for this role.
> Have you been one in the past and then changed?
Thinking through, I guess, I changed my position from being a generalist to a marketing role.
But I am happy. I want to be in this position indefinitely. Being a freelance generalist programmer for more than 5 years, I think being generalist doesn't hurt, but finding your place in a stable position is difficult. Everyone needs a freelance generalist not a in-house generalist.
> In that case what do you prefer?
Generalist Programming + Marketing. 50/50.
Communicating to people (both technical and non-technical) about a technical product seems to be my life's calling.
> Do you regret it?
Absolutely not. Best thing that is ever happened to me.
by f1shy on 9/21/22, 8:26 AM
by ZephyrBlu on 9/21/22, 5:08 AM
1) I believe that not having a clear competency will make it harder for people to place you. Your experience is a lot more legible if you're the "React guy", "C guy", "AI guy", etc.
2) Trying a bit of everything is very different from being good at everything. Is "a bit of x" useful? From what I've seen, no. It's not a unique differentiator, it's easily replicable and it doesn't provide much value. Being good at a few different things seems like a different ballgame though.
3) If you are a very broad generalist it will close a lot of doors for particular work. If you are highly specialized it will close a lot of doors for particular work as well. AI/ML for instance, seems like the kind of field that will be closed to you unless you specialize in it. On the other hand, building full products is something that seems more inaccessible to specialists.
by crnkofe on 9/21/22, 7:42 AM
In theory all companies like adaptable people. In practice I find most job descriptions prefer specialists nowadays. Coding interviews and job posting requirements are also very targeted to a specific skillset. Looking back it'd be a better choice to pick a specialization for up-to 4 years and retrain myself every now and then to paradigm/framework/language-du-jour rather than being proficient in everything and a master of none. As a specialist I'm more marketable, have a better workday/quality of life and fit better into teams that need a particular skillset.
by deepGem on 9/21/22, 5:09 AM
A data scientist or a deep learning engineer - yes that's somewhat of a specialist role. It again depends on what you want to accomplish. If your goal is to research deeply in one area such as NLP then yes that's a specialist role.
OR,
If your focus is purely on infra, like building and enhancing Pytorch or Tensorflow, yes that's specialist knowledge in fine tuning a loss function etc or building a new loss function altogether.
As far as I am concerned, yes I do sometimes wish that I had stuck to one breadth area such as AI or mobile app development or AR/VR instead of somewhat dabbling across all these areas. No regrets though.
by jmconfuzeus on 9/21/22, 10:11 AM
For the past couple years, I focused on my Python and Django skills but now I can't find any decent work for these technologies since every Python work now moved to AI and Machine Learning.
I wish I had continued building PHP and Wordpress stuff as well as dig into new fields like machine learning. I also started in tech as a penetration tester but forgot about everything I learned while focusing on Django development.
Being a specialist is also boring and makes you stupid. You're like an ostrich with its head buried in the sand. When I started digging into new technologies, I realized how much I didn't know and how far the world has moved on.
Lately, I've been remedying this situation by learning new programming languages, reading more books, and attempting projects to test my new skills.
Never specializing ever again.
by andrewstuart on 9/21/22, 5:14 AM
Software development is so incredibly hard that you must be motivated in order to do it well.
The best way to be motivated is to be working on stuff you enjoy.
by eyelidlessness on 9/21/22, 4:29 AM
by rkangel on 9/22/22, 11:17 AM
Not having a specialism is occasionally annoying. It makes my 'career path' less clear, I don't have anything particular to write down as my USP to clients.
In practice though these have been minor. My value has usually been that I understood all aspects of the system including cross domain. This meant that there were bugs that I could diagnose and fix easily that other people had no idea about (using an oscilloscope to diagnose software bugs is a useful skill).
As I became more senior and started running teams it became even more valuable because I understood what all the different disciplines were talking about and dealing with. It's a great advantage to architecting, planning and prioritising (some of this has been learning as we go along - I now know a fair amount about injection moulding despite being a SW engineer because I keep asking the mechies questions).
As other people have said, often it's about framing your skillset. Previously I have highlighted a relevant aspect of my experience as a specialism when talking to clients. These days I say "I am an expert in leading multi-disciplinary teams for product development".
by dqpb on 9/21/22, 5:22 AM
by web99 on 9/21/22, 5:43 AM
If you value depth, specialize. In an industry (e.g security, healthcare, finance, etc.) or field (AI, distributed systems, scaling, etc.) You'll get intellectual satisfaction, emotional satisfaction if you intrinsically care about the space (e.g healthcare), and financial upside since people value specialization.
If you value breadth and wandering, generalize. You'll still get intellectual satisfaction from knowing a variety of things, emotional satisfaction from working on things you care w/o any industry constraints, and financial upside since generalists are valuable to startups and even though their failure rate is high, being in the right company at the right time could give you the same financial upside you'd get from say being at a large company in a specialized field.
I personally chose to speciailize because I value depth and find diving deep into a field more meaningful. I know many generalists with the same amount of experience who are doing equally well and I would hire them and value them in the same way if I built a company again.
by enviclash on 9/21/22, 6:15 AM
by bdw5204 on 9/21/22, 5:33 AM
Regardless of the difficulties you face being a generalist, I couldn't imagine ever being a specialist. Doing the same thing over and over again is boring and feels like a waste of potential. But the modern world is built around specialists who are supposed to outsource their thinking on everything outside of their specific specialty to somebody else who specializes in that area or summarizes the opinions of the people they consider experts in the area.
by RHSman2 on 9/21/22, 7:12 AM
This very much held him back and he even said ‘treat me like a robot as I can’t put together complexities’
So, generally speaking, we are generalists. Your job my force you down a specialism and I have seen many many miserable (well paid) SAP HR consultants
by enobrev on 9/21/22, 6:04 AM
In some ways I find that I _do_ specialize - just not along a specific field. I tend to specialize to the project. 8-10 years ago, I was building a video rendering project. I got to build the engine prototype (in an early version of node.js!), the UI (early version of react!), the data formats, the databases, the video / audio processing systems, and so on. And when we proved it all worked, we brought on specialists to help improve the UIs and optimize the rendering engine.
At the end of that run, I knew more than I would ever want to know about video file management, video rendering, generating video formats, etc. And once that startup sold, I was able to move on and let all that knowledge sort of fade.
I'm presently "specializing" in a project where we scrape POI data from around the world and combine it in useful ways for locals and travelers. So now I'm working with geo data, reasonably large data sets, merging data from thousands of sources, and I get to dabble in / and learn about ML, while the specialists do the more detailed, more difficult ML work.
That said, I've found it's good to be better than average at some things to keep busy. For me, besides general coding, I'm decent at API-based software architecture, Ops, and planning / maintaining / optimizing Relational Databases.
As for the work - Most projects need both. Someone else on this post mentioned that there can be higher pay for specialists. That's probably true. I've seen it. But generalists can have more stability as industry trends adjust.
by topkai22 on 9/21/22, 5:19 AM
Being a "generalist" means that you are going to pick up a ton of varied skills. Eventually, you'll find out that one of them is something that no one else has and your current team/project is in desperate need of. Congratulations, you are now the "expert!" If it is something you like (or, in my case, was simply angry didn't exist), double down and keep pursuing it. Now you are the "specialist." If you get bored, step sideways into something else.
There are places where you really do need to stop and specialize- for example, there are parts of AI are in fact hard to get into without lots of specialized experience, but much of that seems to come from Academia which at least has a clear path to gaining the experience and credentials. Even then, there are ways to side-step into it- my current team is a data science team, where I am the voice of software and infrastructure engineering reason. There is a fairly clear path picking up more and more data science or AI tasks if I wanted to, eventually doing that full time instead of what I'm doing now.
I've found a lot of success and happiness by focusing on problems that I'm convinced need solving rather than technologies or categories. Sometimes that means I go months without coding (that does make me a little sad), but it is very fulfilling to see my positive change for the better come to light. It also has driven me to pick up all sorts of skills and technologies that 23-year-old me never would have thought I would, let alone enjoy!
by eins1234 on 9/22/22, 9:17 AM
Doing a little bit of everything early on is great, and in fact is required to figure what you're good at and what you enjoy, both important factors in choosing what to specialize in.
But going deep into one specific craft to the point where I could confidently assert that I was one of the best in the world at the craft has been an extremely fulfilling experience. Deep expertise is also something that peers will naturally look up to and respect, and can unlock the highest tiers of compensation a lot faster than breadth alone.
I've been forcing myself to branch out ever since deciding to start my own startup, but the focus on gaining deep expertise in a single craft early in my career is what eventually allowed me to contain imposter syndrome and gain the confidence needed to start this new journey.
by blodkorv on 9/21/22, 8:32 AM
Today i look at them with envy when they are experts in one particular thing, like Microsoft AD or Sql-server or sharepoint.
It pays very very well something i never understood how and why companies would pay that much for specialized knowledge.
by Zvez on 9/21/22, 1:04 PM
But in my case I never had this chance in my first ~5-10 years in the IT. I lived in 3rd world country with like 3 IT company in the town. So I had to be generalist.
Right now while I'm still capable of doing more or less everything, I have my 'standards' of jobs I'm willing to do. For example I don't do frontend, not because I can't, but because I prefer to not do it. So basically right now I have a set of things I enjoy and I try to make sure I work on them. Probably I would be in a much better position if I could specialize in more complex fields (in terms of career opportunities), but at least I have enough experience to have some options I like.
by ttiurani on 9/21/22, 6:12 AM
One upside that hasn't been mentioned, is that not not specializing leaves more room for serendipity. I could not have followed many opportunities that have popped had I not been willing to start again as a novice.
The only, but big, downside has been that I had to quit my post-grad studies and the academia. Just the thought of pursuing a single avenue for a minimum of four years is unbearable.
Related to the above, I've also had to come to terms that I won't be one of the best in the world at anything (easily) measurable. It hasn't been easy to accept, but at the same time I've also begun to appreciate collaboration much more than competition. I believe it's also a healthier approach to life in general.
by jmopp on 9/21/22, 9:54 AM
by robertlagrant on 9/21/22, 8:54 AM
If that sounds good to you, keep generalising. But you'll need to dedicate a few years to a few different areas to start becoming the sort of deep generalist companies are interested in. I variously did web dev, enterprise application integration, AppSec, and microservices-based backend build and design, and after I did them and moved on to the next thing I kept up with the reading on each past topic as best I could.
by sircastor on 9/21/22, 4:11 AM
I sometimes think a narrower, deep specialization might have yielded a bigger paycheck, but overall I think I’m happier being able to explore broader fields and concepts.
As a final note I’ll say that you’ve got plenty of time to generalize and then decide to specialize. Bring in your early twenties is far more time than it feels like right now.
by ryandrake on 9/21/22, 5:27 PM
If I instead doubled down and tried to become the world's foremost expert in a (now mostly) dead technology, my career probably would have turned out differently.
by JonChesterfield on 9/21/22, 10:14 AM
Specialisation lets you spend time looking into computer science research instead of into solving today's business or tech stack problem. I don't know how to handle dependencies in npm or the details of what changes across python releases. I have read a lot of papers and spend a lot of time experimenting.
I remember being concerned around one of the job moves that I was becoming very specialised and may struggle to find work outside of my area. That's definitely a hazard but I figure I'll deal with that by retiring.
by retcore on 9/21/22, 4:57 AM
My generation (definitely older given the replies :~) ) was sold straight onto the specialization dope. I think that smack is what's screwed the planet.
I recognized the (very, top schools) hard sell for bunkum at a very tender age. The flip side is that you don't actually become a expert much before middle age. That's also how it should be, but my second and third decades of my career were very lonely. If I would beg any sympathy for my generation's reprehensible stewardship, this might be it if I could ask without being self serving. As stands, over to you lot. Look back hard at the events in history just now being declassified. For the first time in the information era newly released history is not only relevant but crucial, because the generation born fifty and sixty years ago still living, and able to talk with you, was isolated almost entirely if not hermetically, from the rest of mankind and are, albeit well concealed by superficial wealth, personal or circumstantial to society, shitting ourselves when not freaking out angrily.
Personally I think the freaking out behaviour has been copied by the headless right rather than is actually endemic, but understanding social mimicry in traumatic stress is just another example of how much you have to figure out and filter out, similarly to plotting a course to high professional status just as any independent thinking, and the state of many professions today is that attaining independent thought is a de facto domain expert qualification.
Traumatic mimicry could be easily applied to the reinventing the DBMS from discovery of ACID (early MySQL, 00's; MongoDB, 10's) , the Russian Dolls rewriting of Windows display layers, and potentially almost any project recently enabled by putatively inexpensive compute.
Of course I'm hinting that philosophy and other non technology understanding can make being a generalist both much easier and more pleasurable, but this is a personal journey, find your reasoning where you can but remember that you're a generalist.
by ta-run on 9/21/22, 5:33 AM
If I had a chance to start all over again, I would have definitely looked to be more of a generalist as I feel it gives you more flexibility, perspective/context, and (ofc) improves your skill set.
I definitely regret that now (in my early/mid 30s). But hey, never too late, I've started learning backend and microservices and while I know a lot more now than a few years ago, I'm craving for some experience of taking things to production.
by roguas on 9/21/22, 11:17 AM
Preferably engineers I like working with are T shaped. So they are generalists to a degree they can fill in but they have their own domain where their expertise is gathered. Its way easier for me to say "its just like the ... X" and if people have some rough understanding of X we can move on. If they don't we gonna have a week of explaining/understanding whats X.
by haffi112 on 9/21/22, 1:36 PM
If you specialize in something and it stops being relevant you might have little marketable skills to contribute. This would be like putting all the eggs in the same basket.
If you are a generalist you are protected from such a scenario since you put the eggs in several baskets.
But as a generalist you might be missing specialist opportunities so, of course, it's a bit of a tradeoff.
In this sense, it can be rational to be a generalist. However, every person's experience is unique so it's hard to say that one thing is better than the other without further context.
by justsomehnguy on 9/21/22, 5:11 AM
by jjav on 9/21/22, 6:05 AM
I'm naturally a generalist, I enjoy every and all parts of creating network/computer/OS/userspace systems, their performance, operation and security. But I've also specialized in some areas. As I get older (about double your age) I have held very high level generalist roles, but those start to become few and far between up the corporate ladder. In my more specialized role, very senior opportunities are more common since not so many people seem to specialize.
by laserlight on 9/21/22, 8:56 AM
by kcplate on 9/21/22, 11:00 PM
You don’t want to put yourself in the position as the last telegraph operator when you need another 7 years left to fill your nest egg.
by djaouen on 9/21/22, 4:50 AM
by bsaul on 9/22/22, 7:34 AM
There's a great deal of fun to be able to understand a system from top to bottom. It helps design robust and elegant solutions.
Yet, i do sometimes regret not having gone super deep in a field. However to me that would have meant do a Phd in that field and start a career as a researcher. If you stay at the "assembler" level (aka not inventing anything, just putting stuff together), then you'll have plenty of time to become good in multiple fields during your career.
by nickelcitymario on 9/21/22, 10:50 PM
On the upside, I credit my current role (head of marketing) to the fact that I kinda sorta understand every aspect of what my team works on, including my developer, designer, and content team.
On the downside, I’m pretty sure I’d have an easier time and make more money if I just did one thing better than everyone else.
I comfort myself by believing the thing I specialize in is having a wider breadth of knowledge and experience than most.
by kissgyorgy on 9/21/22, 9:09 AM
When I send my CV for a specific company, I delete unrelevant parts for the role and add my experience related to the field of the company, so basically every company get a unique CV of mine.
by entropy_ on 9/21/22, 6:29 AM
by taherchhabra on 9/21/22, 4:59 AM
by viraptor on 9/21/22, 9:06 AM
Not for a moment and I'm closing in on 40. It's fun and you can absolutely take some time to play with AI and dedicate as much attention as you want to it and no more.
I was curious about this area as well and took a dive for a bit. I've learned things I already applied to infra autoscaling and some support apps for medical clinics. It's been enough for me at that point, but there's also nothing stopping me playing with it further in the future.
by ebrewste on 9/21/22, 4:45 AM
by Rafsark on 9/21/22, 3:24 PM
by mkaszkowiak on 9/21/22, 12:56 PM
No regrets so far. Building stuff is more fun when you're able to handle every step. Despite that, I will most likely specialize in the future. I've found that back-end development is the most rewarding choice for me. That will be a few years down the road, as I'm in college and focusing on breadth seems like a better strategy.
by simonw on 9/21/22, 6:46 AM
The best work I've done in my career has been at the intersection of two or three different areas that I've explored.
I see new skills and technologies as having a network effect with each other. I hoard them. Then every now and then I'll spot an opportunity to combine eg GitHub Actions and Playwright and Tesseract.js to do something really cool that I couldn't have done without prior experience in all three.
by r-s on 9/21/22, 5:03 AM
I also think generalists get pushed into management at a higher frequency. Not something I am personally interested in, but I get asked yearly at least at every role I have been at.
by Xcelerate on 9/21/22, 11:04 AM
My theory is that exploring a wide range of interests and areas allows you to come up with novel ideas that a strict specialist would not think of. I believe there was some research at one point on how Nobel prize winners in science have a significantly greater variety of hobbies than the average person.
by hcks on 9/21/22, 11:34 AM
Also, this might be more controversial but I don't believe in "interesting fields". In the industry, the interesting part comes from the ambition / novelty / stakes / impact of what is being undertaken.
by jinay on 9/21/22, 5:07 AM
I've been looking for others to talk about it with, so I'd be happy to discuss further.
by simplyinfinity on 9/21/22, 9:02 AM
I can raise a cluster of servers, create CI & CD pipelines, write ansible, configure the databases, write stored procs, write all the apis & the front end.
I don't need 5 other people to help me do any of that.
However, when working on a team, I can help whenever I'm needed and relieve bottle necks in the team I lead, and let the specialists do the more advanced things I can't do.
by dehrmann on 9/21/22, 5:23 AM
by chrismarlow9 on 9/21/22, 4:37 AM
by alexfromapex on 9/21/22, 12:40 PM
by MexicanJoe on 9/21/22, 4:44 AM
by mariogintili on 9/21/22, 5:24 AM
Easier to find jobs, and you're less likely to feel underpaid.
If you're standing at the very top of a niche theres nothing for you besides looking down on everyone else. Its a lot of responsibility. You might get a few good gigs here and there but it doesn't really yield too much long time imo
generalist 4everrrrr
by peter_retief on 9/21/22, 5:43 AM
by unixhero on 9/21/22, 4:46 AM
Follow your passion for technology it almost cannot go wrong if you learn by being passionate and work in tech.
by dev_0 on 9/21/22, 4:23 AM
by dusted on 9/21/22, 8:41 AM
I'm a software developer, I make computer programs, not "Use $framework in $language".
by refurb on 9/21/22, 8:57 AM
Step 2. Find job requiring specialization
Step 3. Write resume to make it look like you're a specialist
Step 4. Profit.
by yieldcrv on 9/21/22, 7:42 AM
There will periodically be times when the corporate sector doesn’t know what to do with you, and not hire you
but its better to be able to build anything you want
other people need 6-figures of capital just to hire a developer or two
you are the developer capital and just need 3-figures for everything else spent on Fiverr
by 0xbadcafebee on 9/21/22, 6:13 PM
by daedlanth on 9/21/22, 11:14 AM
by mikewarot on 9/21/22, 5:14 AM
by jeffrallen on 9/21/22, 12:22 PM
by brailsafe on 9/21/22, 4:20 AM
by fuckHNtho on 9/21/22, 8:19 AM
can you weld?
by RHSman2 on 9/21/22, 7:03 AM
by jarenmf on 9/21/22, 6:23 AM
by nonameiguess on 9/21/22, 4:48 PM
I'm in my 40s, and have held jobs as a Disneyland stage performer, nonprofit manager, bar manager, US Army officer commanding tanks, doing machine learning development for a hedge fund, ground processing algorithms for spy satellite collections, CI/CD orchestration services for a platform provider serving hundreds of geointelligence developer groups, and have spent most of the past decade working the infrastructure layer for various Air Force software factories, currently being employed by a vendor of Kubernetes cluster management software.
I've got degrees in biology, philosophy, applied mathematics, finance, public policy, computer science, and information security.
I've competed at various levels in cross-country running, track and field, volleyball, basketball, soccer, have through-hiked roughly a quarter of the Pacific Crest Trail, have open-water swam over 5k, and currently lift weights 6 days a week.
This is just me. I absolutely love to learn, to be exposed to things I've never done before, to show rapid improvement in something. As soon as I get too specialized and familiar, I get bored. I'm sure I just threw up a bunch of red flags to HR and engineering manager types concerned that if they hire me, I'll just leave, but the reality is over half the people they hire are going to leave in the next year anyway. Maybe I'm earning a bit less than someone who specialized in some obscure lucrative sub-field of software development that happened to take off in the past decade, but I'm still earning more than 95% of all Americans, more than I ever reasonably expected given my family background, I'm healthy and attractive, have a beautiful wife in a loving, fulfilling marriage, get to live in a time of peace and prosperity in which I can work from home at whatever hours I please, it's sunny and warm nearly every day. I'm as blessed as a person has ever been.
On top of that, I know a ton, have a passing familiarity with nearly any topic, have met and talked to people from every imaginable walk of life. I've got a broad perspective that keeps me out of the pits of despair and solipsism you see people falling into when their impression of the world outside of their tiny little corner of specialization comes entirely from news headlines. Having tried so many things and not being the absolute best at them, seeing the challenges they present and that the people doing them do, in fact, know what they're doing, I don't have the expert scope creep you see from so many engineers who believe everyone else doing anything else is stupid and all problems would be solved if we just put engineers in charge of everything.
Hell no, I don't regret it.
by sngz on 9/21/22, 4:35 PM
by Aeolun on 9/21/22, 11:14 AM
by counterpartyrsk on 9/21/22, 5:09 AM
by pizzaknife on 9/21/22, 11:51 AM
by kokizzu2 on 9/21/22, 10:44 AM
by barrenko on 9/21/22, 8:54 AM