I have a CS degree, and while I agree with the general idea that you don't need a CS degree to be a successful programmer I'd say the biggest barrier to entry is in the start of your career - both getting a job and keeping that job.
I've worked with loads of self-taught developers, mostly from tech/coding bootcamps, and I've seen a lot of people burn themselves out due to a number of factors:
1. Bootcamps are hard, but suddenly these developers find themselves in a harder environment where 12 weeks of coding experience might not be enough to get them out of a problem.
2. Bootcamps cost a lot of time/money, without the option for a student loan, so many people put themselves into debt to switch careers, and that added pressure is a lot for people - especially when they've been sold a lucrative career and find that a company has hired them because they are cheap.
The CS knowledge aspect is largely irrelevant, because many developers can get by quite happily without ever using a linked list or priority queue, or knowing anything about quicksort, merge sort, etc. For most projects where you need to merge k sorted arrays, concatenating them and running the standard language sort function is good enough.
IMO, the problem has never been one of skill, because many industries have developed skills on-the-job or with time spent in industry. Where a CS degree comes in handy is in giving a student a structured approach to learning over a respectable amount of time, and offering a step above the entry-level barrier of entry.
I've worked with loads of self-taught developers, mostly from tech/coding bootcamps, and I've seen a lot of people burn themselves out due to a number of factors:
1. Bootcamps are hard, but suddenly these developers find themselves in a harder environment where 12 weeks of coding experience might not be enough to get them out of a problem.
2. Bootcamps cost a lot of time/money, without the option for a student loan, so many people put themselves into debt to switch careers, and that added pressure is a lot for people - especially when they've been sold a lucrative career and find that a company has hired them because they are cheap.
The CS knowledge aspect is largely irrelevant, because many developers can get by quite happily without ever using a linked list or priority queue, or knowing anything about quicksort, merge sort, etc. For most projects where you need to merge k sorted arrays, concatenating them and running the standard language sort function is good enough.
IMO, the problem has never been one of skill, because many industries have developed skills on-the-job or with time spent in industry. Where a CS degree comes in handy is in giving a student a structured approach to learning over a respectable amount of time, and offering a step above the entry-level barrier of entry.