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.
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.
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.
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.
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.