+1. Coding is such a wide field - and while there are some areas that one can probably master in a short time (CRUD apps as you mention, which are rather repetitive), there's also a lot of other areas where even people with decades of experience can still learn.
I've worked a lot on networking stacks, protocols and servers, and it found to be extremely specialized. It's unlikely one can an engineer with 5 years of "generic coding experience" which would be immediately productive in the field. I assume the same goes for implementing operating systems, databases, compilers (like LLVM), graphics engines, etc. Sure, a junior engineer that is new to the field could probably also implement something - but it would likely end up less reliable and less extensible and maintainable than if someone who has worked on a similar system before.
At that level it's however also all a bit of a mix between coding/implementation and design. While there's no real "system design" since the piece of software might just be a single component, there are still the usual design questions involved like "how does this component fit into the environment, like the APIs the operating system offers", "how will it be used", "what operational requirements need to be fulfilled", and "how can it be made to be as efficient as possible". Having a good amount of experience on how components will work together will be very helpful.
I've worked a lot on networking stacks, protocols and servers, and it found to be extremely specialized. It's unlikely one can an engineer with 5 years of "generic coding experience" which would be immediately productive in the field. I assume the same goes for implementing operating systems, databases, compilers (like LLVM), graphics engines, etc. Sure, a junior engineer that is new to the field could probably also implement something - but it would likely end up less reliable and less extensible and maintainable than if someone who has worked on a similar system before.
At that level it's however also all a bit of a mix between coding/implementation and design. While there's no real "system design" since the piece of software might just be a single component, there are still the usual design questions involved like "how does this component fit into the environment, like the APIs the operating system offers", "how will it be used", "what operational requirements need to be fulfilled", and "how can it be made to be as efficient as possible". Having a good amount of experience on how components will work together will be very helpful.