Having a CS degree perhaps helps a little for general background, but not every CS major has taken a db class and even then, they won't have learned many useful practical skills, like analyzing and fixing a slow production query. And conversely the folks who have been through bootcamps (that we have hired!) are all very self-directed and highly motivated to learn. So I'm not sure that the difference is quite as clear cut as you make it out to be.
I do completely agree with you that this is important, and that it's very hard to get companies to devote resources to it. Taking 6-8 hours a week out of a senior engineer's time to prepare and teach an effective class is a big ask; I had a lot of support from management to do this but I think that might be a rare luxury at other companies.
It's just sad that the tech industry doesn't invest more in high-quality structured teaching, when it could so clearly deliver benefits in terms of growing skills for engineers from both CS and non CS backgrounds. Assuming that they'll somehow learn everything they need without structure or direction might work in a few cases, but in general it's a poor long term strategy for both companies and the industry as a whole.
I used to be very degree-centric in my recruiting. But some time ago I started hiring from boothcamps, particularly for frontend jobs. The fact I saw is that as part of the development needs of the companies I have been at, there is a good amount of work that can be done by developers of these skill levels. Once my team was able to organize the work, we were able to make jr people productive.
This not only made us capable of hiring jr devs. It actually made more Sr devs happy because they did not have to do that work and made mid levels happy because they own the growth of the jr devs .
Depends on what you classify as serious work, I guess?
From years of reading similar comments and my own experience, I was under the impression most “software developer” jobs only lightly touch on anything complex - most of us aren’t designing databases and complex low-level stuff day-to-day, but we do need to know enough to not do something terribly inefficient and stupid in basic plumbing code.
I think what you really need are smart people, and people who are willing to put in the work to get past the first few years of stumbling and not knowing what anything means. Likewise, young developers need good mentors and patient senior developers to lean on and who they can pick this stuff up from.
Not sure what your company is doing, but if what you say is true, maybe you are one of the rarer groups actually doing the hard stuff.
I totally agree with you, but that doesn't solve the issue, there are not that many of those people out there struggling to get jobs, because employers already know about this trick. That's why a bunch of quant and other top-tier finance shops are full of math and physics grads who had almost zero knowledge of finance before getting hired for those jobs.
The value of a degree is less the information it teaches, and more as a filter for people who are unusually smart and/or self-motivated. Those people coming with the requisite CS theory is merely a bonus.
You don’t need much to be productive. There’s plenty of great guardrails like code reviews, pair programming and shadowing that can make someone surprisingly productive.
The value of a degree is social signaling that you are the “type” of person to be able get that degree, socioeconomically and temperamentally. Plenty of people out there for whom the economics of a degree didn’t make any sense, or they had bigger needs that had to be filled immediately so didn’t have the ability to sacrifice for the long term.
I took the intended sentiment to be that of finding talent among non-degree holders that won't necessarily present itself in a typical CS interview scenario. Thus we need a way to identify future CS talent that is merely in need of training and mentoring. And so the problem reduces to, in my opinion, to finding people who are smart and unusually self-motivated. But there is just no good way of doing this.
What do I mean by personal questions? My favorite interview so far left all the academic quizzing aside and asked me to talk in-depth about a particular real-world project I worked on. What patterns did I use? How did it interact with the database? How did I model the problem? This was not something that would be easily googled and it let me convey how I think about software on my own terms. Then it was up to the interviewer if my approach to software would be useful to them.
Counterpoint: the overwhelming majority of software companies out there do not work on problems and develop products that warrant deep computer science expertise.
I mean, if you're doing cutting edge and/or highly technical stuff, great, go nuts, recruit only those with CS degrees. But most software out there is your run-of-the-mill line of business software, mostly CRUD with a bit of specialized functionality. And the bar for working on that is way lower.
Sometimes you go ahead and walk the fine line of the no true scotsman argument - a degree without this basic math isn't CS. And any "reputable" CS degree - and by "reputable" I don't mean top 10 or even top 50, I just mean a fine university with a proper curriculum - will absolutely have this requirement.
It might depend on how the degree is taught I guess, mine had very little actual programming.
Where did you get your info from? Because I just checked the Stanford CS curriculum requirements for Bachelors degree, and it clearly has "Computers, Ethics, and Public Policy" requirement, along with a senior project requirement (that would, I assume, includes writing), as well as 3-5 credit units from the list of approved "Technology in Society" courses.[0]
0. https://exploredegrees.stanford.edu/schoolofengineering/comp...
My engineering program required an upper-division course from the philosophy department on the development of rigorously ethical systems of thought.
I would LOVE to create a large curriculum in house that aims to teach non degree holding individuals these skill sets because it would have tremendous return on investment. Be we are a small company (<100) with limited resources that can not afford to have a six month on boarding process to Do it properly (and I am not a professor).
It is an unrealistic burden to any small or medium org to do what is required by your comment.