At the same time, I do a lot of SDE1 level hiring and have found that while there are good bootcamp grads, it is just so much more work to sort through / screen the bootcamp grads. Some of them have been some of the worst interviews I've ever conducted (no idea what a class is), my guess is due to the variation in quality of bootcamp.
In the end I'd (selfishly) rather have my fresh grad pipeline coming through college rather than bootcamp just because I'll be able to get someone more quickly and with less effort. Not that there aren't good people out of both pipelines.
> I work with a few software engineers who do not have CS degrees - they have extensive industry experience and are fantastic to work with.
Different things entirely. She preferred A over B, you are talking about C.
bootcamp grads vs fresh CS grads vs industry veterans.
Also, a much better predictor than school, of how well someone will do at a job, is how they get along with their team. If they have a great degree from an amazing school, but they don't get along with their teammates, they will perform very poorly.
Re passion: you need a lot more of that to be "constantly learning and solving problems" for 4 years, rather than for 3 months.
What do you think people do in college? Party non-stop?
Yes, that's exactly what they do.
Most of the self-taught or folks with blue collar or military background have been the best. Hungry and resilient. Strange crowd at times, but great people.
The best people can learn on their own everything college teaches.
College is designed to help ensure there aren't any skill gaps. It isn't perfect, but I'd expect someone from a good university to be able to:
1. Put together a professional looking presentation.
2. Have good to above average written communication skills
3. Sit in a meeting with engineers from a different discipline and have at least some vague idea what is going on, and have less of a ramp up before they can start contributing.
4. Have an understanding of statistics and calculus.
5. Be at least familiar with all of the main hard sciences (chemistry, physics biology)
6. Have a greater than average understanding of, at minimum, the society that their college was based in.
When it comes to technical abilities, 4 years of learning is going to better prepare someone than 6 months to 1 year of learning. Multiple programming paradigms help a lot as well, someone who knows just JavaScript or C# is going to have less mental tools at their disposal than someone who has programmed in purely functional programming languages, used pattern matching, and who understands what code actually compiles down to.
I've hired from boot camps, 4 year programs focused on games, and CS programs.
The best boot camp graduates are of course amazing, but just coming out of school they are lacking a lot of skills, and there is no guarantee that any random boot camp graduate will be able to pick up those skills (again, of course the best ones can). CS programs have no problem failing students out if they hit the C++ courses and can't hang in there.
Graduates from schools like DigiPen can hang in there, but they also have huge gaps in their knowledge that have to be filled. (On the flip side, they also have skills that people with CS degrees don't have!)
A student from a good CS program should be well rounded. Ideally they should be able to join a team doing low level systems programming and ramp up on embedded C just as easily as joining a team writing some sort of insane load balancing / network caching system.
Even more so (and maybe more shockingly) you don't need to be a capable programmer to get a CS degree. I have worked with people who have master's degrees from respectable universities who have not used Git or a command line in their life.
And yes, both are teachable -- but then, everything is. It is hard to quantify exactly how much inexperience in any given discipline hurts the outcome to what degree, but I feel there is a strong bias towards algorithms over practical skills, including having worked on and completed real life projects, that does not correlate well with their importance in common real world situations.
This is kind of a strange bar to set. There are entire companies that don't use git. In fact, most projects hosted on Google Code (now defunct) were using Mercurial.
If you've not used Git or GitHub or any of the cloud providers for Git, it's a signal. To me it signals that someone uses open-source software or has some passing familiarity with it.
As a person that conducts interviews, the things that people leave public on a GitHub profile have been a pretty invaluable signal of attention to detail or code quality. If I see someone with a dotfiles repository, it likely means that they care about their craft a bit, and it factors into a part of the whole evaluation pie.
I think you're too young to know that code management systems existed before git.
Turns out modulo is not a well known operation.
In my Computer Science libraries and applications are written by people and people make political, marketing, historical and technical choices that directly influence the design of the said software.
So whatever you're saying about "precise structures of programming" is clearly heavily dilluted by "the messy, sometime illogical world of humans".
It seems like in your world Spectre would never happen. But it did happen in mine.
The original question is what is more important when hiring: a team player or technical skills. Everyone has both but at a different share.
I'm fully "self educated" like in not even bootcamps, just jumped straight into taking client work from zero programming experience (well, I did hack on some research/side projects while in med school before abandoning that), and having been ob both sides of the hiring process I'd say that hiring CS grads is 100% worth it you can hire the top 10%, probably not worth it after that. People who learn on their own tend to be passionate and motivated, people getting into CS at a good uni have a variety of motivations - they might be smart and capable, and if you're a big corporation you'll always find room for smart and capable people that can play by the rules... but not necessarily what you want. OK, maybe for US ivy-league or whatever that 10% might go to 25%-40%, but a fresh company might still not afford that...
And really, be honest with yourself, having a CS/EE university degree, would you really hire anyone but the top 10% of your classmates?! You know how it is, the 10% are there to study, the rest are there to study 10% of the time (and paaaaarty the rest ;)...) And... would you have any chance to afford to hire those top 10%?
Here we are choosing between a random/average bootcamp attendee, and a random/average CS graduate from a good school.