Despite their occasional ridicule within the industry, the software boot camp model works - the top boot camps tend to have a higher success rate at landing people in jobs than computer science departments at top universities 1 2.
Anecdotally, I've hired many devs who came straight out of boot camps, and they all rocked and are in the industry to this day - most of them have become seniors.
From day 1, they came to work knowing Git, how to use their IDE (shortcuts, etc.), the basics of typical Agile-like practices and had practical experience building web applications.
Yes, a Survivorship Bias is at play here - not everyone "made it". However, the other fellow students who found the software wasn't for them only took 3-6 months of their lives learning this instead of 3-10 years getting a degree.
On the flip side, I'm nearly two years into a part-time Computer Science degree, and the engineering content is about 5-10 years behind what the industry is doing 3. I haven't seen version control mentioned in a lecture once. Since I intend to study Computer Science, I am fine with this arrangement and enjoying the material. However, it's a far cry from the knowledge required to productively operate as a junior web developer on a team of 10. Actual practice building products with software would be a much better use of time.
That's not to say that the fundamentals aren't important or useful - they must be learned to progress into senior roles, and they typically can't be taught in depth at a short boot camp. However, I argue that fundamentals are much more efficiently learned alongside a career as a practising software engineer.
For example, learning about worst-case complexity and Big O notation is much easier when you have already blown up prod, thanks to a nested loop in your code.
And that's much closer to how an apprenticeship works: some study, followed by lots of hands-on experience, followed by more study, and so on until you're a professional.
Like a trade, writing software can only be mastered by practising it - a lot, and we should educate developers accordingly.
The Computer Science material is exceptional, however. ↩