3 ms·
As a former electrical engineer now web app/api/full stack developer I either know or can quickly learn all those things.
by cdelsolar 3y ago
As a former electrical engineer now web app/api/full stack developer I either know or can quickly learn all those things.
- voakbasda 3y agoNot 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.
- bradley13 3y agoI think you do not understand just how much stuff it out there. Just in the web world, can you do React and Angular and NodeJS and Spring? Have you really looked at the CSS specification? That's a career in itself. Moving slightly to mobile apps, what about Jetpack Compose for Android and the equivalent for iPhones? Electron? Or classic programming: How is your SQL, including stored procedures? Note that Oracle is different from Microsoft is different from MySQL. Want to learn ABAP? How about writing a back-end system in Java, with a front-end in JavaFX? I'm just getting started... No, you cannot learn all of this sufficiently to be even remotely productive. You may, like me, be aware of a lot of it. I'm sure you could pick any single new platform or technology, and become productive in it in a few weeks or months. But to be a real generalist, able to do it all? That is simply no longer possible.