Hacker News new | ask | show | jobs
by dijit 1372 days ago
To be perfectly fair though even “mastering” backend is quite close to impossible.

You’ve probably heard of the 10,000 hour rule, it’s a hard and fast rule to say that it takes roughly 10,000 hours of doing something to fully master it.

Maybe not true in all cases; but consider the suite of tools you have to be practicing every day to do even a single role: VCS/DVCS, shell, OS fundamentals, build-systems, networking, DNS… now we have distributed computing concepts such as kubernetes and various DSLs, then there’s your programming language(s), their standard libraries, their extended contrib libraries.

Completely non-exhaustive list and we’re already closing in on 5 years working full time for each of those.

The sheer hubris of assuming you can throw together a few frameworks and understand 1 or 2 paradigms and then claim you know “the whole stack” is immature and exhausting; similar to the sysadmins of yore who could read QuickStarts and claim to know how to maintain software fully.

Delivering business value is definitely what we’re trying to do, but when it comes down to it: engineering is understanding; and nobody can claim to understand everything, not with a straight face.

Full Stack is either: the most senior you can be or the most surface level you can be.

If the former: we can’t afford you and I’m not sure how you managed to keep all your skills up to date.

If the latter then specialists will need to clean up after you anyway.

2 comments

Fist, the 10,000 hour rule is false common knowledge [1,2].

Second, splitting a general role ("backend engineering") in arbitrary atomic skills doesn't make sense because there's no end to it. Backend engineering -> OS fundamentals -> Driver programming -> Hardware design -> Boolean logic -> Set theory -> and so on...

Third, all engineering roles have cross-cutting concerns. You do need some network knowledge to be a "backend guy"... but also to be a sysadmin, devops, etc.. It's not like all these roles exist in a vacuum and you're starting from 0 if you switch between them.

Finally, most people that think of themselves as experts in some role, language or framework end up in the "1 year of experience repeated 10 times" trap. True experts are also somewhat generalists too, because you can't built a tall knowledge without growing the base too (pun intended).

[1] https://www.bbc.com/future/article/20121114-gladwells-10000-...

[2] https://nesslabs.com/10000-hour-rule

10,000 hours, whether true or not, is a ballpark and even if it's patently untrue: it will always require some non-trivial amount of time to get good or master a particular subject.

Not all subjects are equal, granted.

having overlap in knowledge between roles is also somewhat granted; being a complete master in backend gives a person a lot of knowledge towards being a sysadmin (maybe even 60-70% of the way to being a master in that direction!);

But, you've failed to convince me that any single human on earth can do "everything"; even if a person could literally master all technologies in use (not counting your strawman of driver programming) then there would still be a discipline mismatch.

I'm not sure I understood the point you tried to make

Nevertheless, I have a solid understanding on all the things you mentioned and if you need help give me a holler because my rates are fair and I'm open to opportunities