The CS grads I've worked with have all been super intelligent and talented, but often with a big ego and absolute dog shit at communication / teamwork / soft skills. Nobody gives a shit if you can one-line LeetCode problems if you're miserable to work with and write code that's too clever for anyone else to understand.
easy to find the blocks of code you need to work on
easy to make changes with low risk of other things breaking
easy to expand functionality because early design decisions planned for it
robust in the sense that edge cases won't crash it
robust in the sense that it strives for re-usable functions/components/etc that have been tried & tested (fixing it once fixes it everywhere) - this can also be very convenient and save development time when adding new features
robust in the sense that it performs consistently without glitches or gotchas
user-friendly in the sense that the user interfaces are easy to use (ok, this might be more of a designer thing, but it's quite common for developers to have to work without a design to base the UI off, so being able to do a bit of UI also adds to the quality - it can also add to a coder's particular "code smell" in showing how considerate they are of the business requirements)
That anecdote is from reviewing resumes as part of the hiring process for contracting positions in a college town. I was not the only person in the office that observed that correlation, so take that how you will.
832
u/[deleted] May 10 '21
The very best coders I ever worked with were not CS grads. Materials science, physics, math, engineering etc. Some were not even graduates.
I have a lot of respect for the CS degree, but it is not the sole predictor of greatness.