Jack of all trades, master of none
#programming #developers
#programming #developers
Being a generalist usually helps with two things:
a) It is a testament to your ability to get up to the speed on a different topic - vital in business world. Most businesses want to hire useful people who can find analogies and draw trends, with a curiosity for solutions outside a narrow sphere.
b) There is an implicit requirement to be curious and step out of your "comfort zone" in order to hit the ground running and get started on another domain. This makes you far more nimble, flexible, and open to new ideas and changes. Good for both life and work.
Lazarus Long raised many children - odd that he would single out that one.
Heinlein, on the other hand, did not.
I look at the pithy little bits in this quote as being standins for the larger acts that they’re part of, and wouldn’t read too much into it.
What is the larger act of "butcher a hog"?
Or of planning an invasion?
Personally, I think sewing would be more useful to more people than the ability to conn a ship.
I've found several examples of it used in the 1800s, like:
1) The Salt-Cellars (1889) - https://archive.org/details/saltcellarsbein02spurgoog/page/n...
> A man of many professions has but few profits. / A man of many trades begs his bread on Sunday. / A man of many trades lives on short commons.
> He is so deficient and inefficient that he never gets on. Being Jack-of -all-trades he is master of none, and can do nothing properly. As soon as he is known his customers are gone.
2) The English review, or, An abstract of English and foreign literature, v 9, (1788) - https://archive.org/details/englishreviewor11unkngoog/page/3...
> If every man take the advice of every one of these benevolent essayists, every man, according to the proverb, will become a Jack of all trades but master of none.
3) An impartial and comprehensive view of the present state of Great Britain, containing ... [rest of the very long title omitted] (1797) - https://archive.org/details/impartialcompreh00keituoft/page/...
> Instead of being Jack of all trades, but master of none, every one of John's servants became very expert at his particular employment. He had now the best ploughs, carts and wagons in all the country, and also the best ploughmen and wagoners. His weavers manufactured his wool into the finest cloth; and John derived great advantages from their industry.
None of them had the longer version you listed, and that last example implies it's better to have servants who are each a master of one (and often different ones) than Jacks-of-all-trades.
My problem is that I don’t look like a generalist, I look like an incompetent. And that’s because a vast majority of my knowledge and skills have come from outside my professional career. In fact, if I’m being honest a lot of my career has involved dicking around for months on end waiting for some bureaucratic machine to make a decision only to repeat that process again and again.
So I ended with at least solid foundational knowledge in a lot of subjects/domains, but it doesn’t matter because my resume is not something describing my abilities/knowledge, but really just formal experience: meaning none of my generalist or specialist knowledge is ever highlighted. Most anything I know about anything has been from me hacking and breaking and fixing computers and their software, not anything a resume would tell you.
What are the 'trades'?
Is it specific programming languages? Language types? Front-end vs Back-end? Windows vs Unix? Low-level vs high-level? SaaS vs mobile vs desktop? iPhone vs Android? Languages 40 years old vs 40 days old. Compilers, AI, speed optimization, size optimisation, portability. X86 vs Arm?
Is it 'programming' vs 'businessman', 'salesman', 'statistician', 'public relations', 'politician', 'leader', 'manager', 'evangelist', 'visionary', 'artist', 'musician', 'mathematician', 'designer', 'blogger', 'storyteller', 'autodidact', 'self-motivator'?
I feel there's usually something interesting happening on boundaries. I don't know if this is just because the obvious things get done quickly when they are in the spotlight which leaves the rich pickings on the neglected boundaries or if there's some magic of combination that leads to hybrid vigour.
I also think deep knowledge is more useful when you find new places it can be implemented.
So, I generally lean towards the 'renaissance man' approach (i.e. don't seperate things unnecessarily because 'artists' can't be 'scientists' or vice versa) but we need deep expertise too.
What's probably harmful is shallow specialization, i.e. keeping people in boxes not for their benefit, but to make them replaceable cogs.
Thanks for your comment, it confirms my suspicions on how this actually works in the wild.
Everyone will have any combination of different levels of knowledge for several subjects
What's important is people invest in what they really want to do
I am a back-end developer, can I also do front-end? Sure, but I don't want to. I prefer to invest time in database and data warehouse and dabble in ML. And yet I can still only be a jack of all trades for data and back-end only. But there is no way I'll have time to do everything well and fast
Sometime ago we implemented OAuth, we did not had any experience but after quite a while everything was done. If we had someone with experience it would have been done faster, if we had an expert he would have told us that we actually didn't needed OAuth and all the time invested was a wasted
Although I consider myself a Jack of Many trades, there are too many, and the number keeps growing.
Do you want to be a specialist within a field and get really good at it, e.g. frontend web dev?
Or do you want to be generalist who knows a bit about management, design, fullstack,data science, DevOps,... but isn't an expert in any of them?
We have to continuously shape-shift to learn new programming languages and paradigms, frameworks and networks.
Take blockchain as a random example, you need to understand the Ethereum chain and learn Solidity to write smart contracts, and you'll have to learn Rust and familiarize yourself with the Solana network if you want to write programs for Solana.
The worlds of machine intelligence and blockchain are moving so fast that we have to either choose a niche and assume we'll miss out on mostly everything else, or learn how to quickly catch up on new things.
I think an in-between point works. You want to either sharply focus on one thing or focus on different things, sharply, in sprints.
Trying to catch up with every single new thing isn't productive unless you want to stay on the surface of everything.
There's only time for a few deep dives.
had i stick to windows 20 years ago, i would have been windows expert and miserable.
but i learned osx, linux, bsd instead.
i'm not windows expert and happier.