These lists are so depressing. Is there any other career where people are expected to know 100 things just to be an employee at the bottom of the food chain? I won't be surprised if it is harder to be a Full Stack Developer than to be a CEO of a multi-national corporation. Looks like we are pushing everything to Developers. Developers of the future are going to need a fulltime pyschologist to cope with this ever increasing list of skills required from them.
Doctors, lawyers, and real engineers at least have similar or more broad domains they must be experts in, or people die.
CEO is a hard role not because of domain area but because of risk and uncertainty, both of which tend to be low when you're "at the bottom of the food chain."
All doctors, lawyers and real engineers I know only focus on one aspect. They are specialists. I know lawyers who specialises in rape cases, conveyancing, ligitation, but I have never met a lwayer who is expected to solve a rape case today and register a bond tomorrow. Same with doctors. They specialise and only focus on one domain. I was talking about skills when I included CEO, not about risk. When there is lots of money involved, almost everyone will accept to assume that risk and collect rewards.
There's the concept of T-shaped expertise. Start with a broad base but then narrow down to a specialty. So you've kind of got both. Doctors, for instance, still have to know the basics of every bodily system, regardless of what they specialize it, because everything affects everything in the body.
But even a lawyer specialised in criminal law will have gotten a broad education in contract law, property , civil procedure.
In my engineering school, mechanical engineers were taught the basics of electrical engineering.
There is a lot of value in gaining a good amount of breadth before specialising, even if just to ease communication with specialists of adjacent fields.
The best people in every field are people who are focused on one aspect and one aspect only. Linus Torvalds only focus on C programming and kernels. If you judge him based on these lists, he will be regarded incompetent because he can't do UI and is proud of it. He doesn't even try to learn the basics about it because he has his speciality and do it very well.
Lionel Messi doesn't try to be the best header or best defensive midfielder. He focuses on dribbling and scoring goals.
I'm always impressed at my primary care doc's breadth of knowledge. Whatever the topic (knee injury, heart rate, asthma...), he has working knowledge at easy recall, which he augments by consulting electronic reference materials during appointments—all while staying engaged with the patient (me). This is all in the context of a standard physical, and often the subjects (such as the knee injury) haven't been mentioned beforehand.
I do think he's in the top 5% of MDs, so of course we can't expect this of everyone. And specialists obviously specialize. But there is a large segment of the profession that requires a wide breadth of knowledge in a domain that frequently changes.
Is he a GP or a Specialist? From what I know, the list of best Doctors is full of specialists, not generalists. I am yet to hear someone recommending a General Practitioner because they have broader knowledge. It is always Specialists who are focused on one domain and one domain only. Not saying specialists don't have knowledge about other things medical-related. They do but their knowledge is limited. Just like my knowledge about firewalls and networking is limited because I focused on development.
BTW, my career has been focused on development, but I still try to maintain enough knowledge that I could jump in at any point of the stack and be useful.
It's not like a typical developer is going to be programming a web app one day and an embedded system for a car the next day. Even "full-stack" developers are still specializing in one domain.
Anyone can accept risk. Accurately evaluating and effectively mitigating it is the skill, plus predicting a profitable direction and setting it in motion, maintaining accountability, negotiation and fundraising; the list goes on and looks very different from dev skillsets.
Maybe we need to see those skills map. I can't wait for CEOs to disagree that you don't need those skills. Most CEOs became CEOs because they started the company or are connected to the owners of the company. Most CEOs are just political leaders of a business. They didn't need to learn HR, Finance, IT etc in order to run the company.
The key issue especially in the front-end roadmap is how the scale is not taken into account. Expecting all front end developers to use the same stack from small operations to Facebook or Google scale is irrational, yet for a lot of reasons it is standard practice. I understand how it gives a feeling of playing in the same court, but from an engineering point of view it’s useless complexity in a lot of projects.
Edit: For example I make a living doing web development and rarely using a framework or a package manager in my projects. Knowing their value sure helps in a CTO like role, but you can deliver real value and state of the art websites and apps without them.
One thing I have realised is that most tools developed by big tech companies were built to solve their unique problem. Majority of applications will never reach scale of Google or Facebook but people still use whatever is being used or marketed by those companies.
As a long time systems/backend C++/Python programmer it took me 6 months to get very comfortable with this TypeScript/NPM/Vue/Vuex/Bootstrap/Webpack/Linters/Formatters stack and create a pretty complex SPA.
A lot of stuff, true, but nothing particularly challenging.
I would say the hardest part is CSS, but using a framework like Bootstrap and then googling the little problems "how best to X in CSS" usually works.
You learnt all that without any previous background in JavaScript, HTML, HTTP etc? That is impressive if that was the case. Very impressive.
CSS is hard. Even for people who have been doing it for decades. I am one of those people who can do whatever can be done on Bootstrap, but from time to time, I still struggle with CSS. It is getting better these days because browsers are co-operating and don't have their own flavour of CSS just to break other browsers.
Well, you are not supposed to know all of them by heart. just start by what you need and know what other technologies that exist so you can learn them when the need arises. for me, I think I know or have a vague idea about most of the concepts mentioned in Frontend and Backend. But DevOps sections seems intimidating to me. People in other fields might feel the same way about Frontend or Backend Development. The thing is, just like any craft, it requires time and practice.
I feel our craft is just too demanding. There is just too much to learn. If you stop learning for just one year, your knowledge quickly becomes redundant and you become unhireable.
I don't think these are really excessive. You could probably learn much of each stack by essentially using personal projects as excuses to use these technologies and touch at least half or one third of each list each go. For example, "write a poker card playing website that saves your hand when you press a button" will get you a bunch of frontend, backend, and database.
The tools that I have already learnt are working perfectly for me. I feel these days we are just adding tools for the sake of adding new tools. Instead of spending time to perfect what I already know, I have to spend time learning how to use tools I will never need.
You don’t need to know everything on the list to be good at a role.
Just for example, Devops engineer lists Mesos, emacs, sockets, and virtualization. Other than know that these concepts exist and a 5 sentence description of what they do, you don’t need to intimately understand them. I haven’t gone through the other roles but I’m sure they’re the same.