4 ms·
Not at sufficient depth to go head-to-head with an expert. If you are a Jack of All Trades, you will be Master of None.
by voakbasda 3y ago
Not at sufficient depth to go head-to-head with an expert. If you are a Jack of All Trades, you will be Master of None.
- andrewmcwatters 3y agoI disagree with the Jack of all trades, master of none cliché. You can effectively be a master of multiple fields because the true applicable depth of so many of them are completely shallow. There are entire niches in software development that you can dismiss wholesale. Virtually everything in the web that isn't the web standards themselves or from the most popular libraries isn't worth learning because it's just regurgitation. If you know CSS as an applicable professional level, any CSS framework you see is irrelevant. You can pick it up. Etc.
- alexwhb 3y agoI generally agree with this. And so much of modern dev… especially in the app/web dev space is just pattern recognition and hooking up different systems to each other. That’s not to discount its difficulty… but you can be good at several disciplines. I actually think being a generalist (to some degree) can actually be helpful, because it allows you to think in multiple modalities, where as someone who specializes in something is less likely to be able to break out of their thought patterns.
- Izkata 3y ago> I actually think being a generalist (to some degree) can actually be helpful, because it allows you to think in multiple modalities, where as someone who specializes in something is less likely to be able to break out of their thought patterns. GP mentioned the two-part "jack of all trades", but there's a relatively modern third part to it that expresses this sentiment: "A jack of all trades is a master of none, but oftentimes better than a master of one"
- alexwhb 3y ago> but oftentimes better than a master of one I like that. I think that's an accurate statement.
- cdelsolar 3y agoYep I also disagree. I would say I have a mastery of a lot of backend programming, architecture/infra deployment, microcontroller programming, assembly, React + Redux, and at least 3 or 4 other languages I’ve worked in through my career. I’ve had jobs doing data engineering - building and deploying machine learning models at scale, advanced computer vision stuff (before ML became the rage for it), building, designing, and deploying tiny sensors on wind tunnel models, etc etc. I have a couple of open source multiplayer projects with a few thousand MAU each. Now, the one thing I will never master or care to is CSS - the devil himself must have come up with this abomination.
- rjbwork 3y agoFalse dichotomy. I like "T-shaped" engineers. Someone with a breadth of experience that is an expert in a small subset.
- shortwu 3y ago[flagged]
- gregjor 3y agoMaybe true, but I run into very few experts to go head-to-head with. I started programming in 1974, professionally since 1979, and I'm still working, mostly web sites and lots of system admin. I don't know most things at expert level, but I can learn and adapt quickly and start producing right away, because I have decades of experience with analogous or ancestor technologies (like C and C++, SQL, Unix) at least at a very proficient level, and I have lots of business domain expertise. I have worked with true experts. No need to go head-to-head, there's no competition, just a great opportunity to learn. Mostly I have worked with people who have mediocre skills, and narrow skills, who can't adapt to change or come up to speed on new things. Most programmers live in the "expert beginner" zone Erik Dietrich described so well, not actual experts, and I wouldn't worry about going head-to-head with them if that was part of the job. But programming isn't competitive gymnastics, we don't have to perform better than the guy next to us, we only have to satisfy management or customers that usually have no idea what programmers do.
- Izkata 3y ago> because I have decades of experience with analogous or ancestor technologies (like C and C++, SQL, Unix) I think a lot of people underestimate just how much knowledge transfers between systems within the same domain. I have nowhere near your length of experience, but even in just my time I've been able to pick up plenty of languages and frameworks and get going right away because I already learned the underlying concepts when working with other similar systems. No one should be starting from scratch every single time they start something new, and the larger your variety of experience the faster it's going to get each time you start with a new language/framework/system in that domain.
- ThrowawayR2 3y agoThe opposite of the jack of all trades is the one trick pony and the one trick pony always falls onto hard times when their single trick is no longer in fashion.
- galaxyLogic 3y agoThe thing is to produce an app these days you need to have mastery of 3 languages + some frameworks. You need HTML, JavaScript, CSS, and then the frameworks. If you work on a team you can specialize in one of those but when you are learning you really need to use them all yourself. When everything was a command-line application you didn't need to know more than C or Perl or Basic etc. But then you couldn't really do cool user-interfaces, with mouse and events fifty shades of color-gradients.