Ask HN: What is missing from comp sci grads, why can't they code?
What do you believe; i.) Is lacking from the junior devs you have interviewed ii.) What can be done to rectify this problem
What do you believe; i.) Is lacking from the junior devs you have interviewed ii.) What can be done to rectify this problem
* No mentoring from more experienced developers * Refactoring (techniques and reason) isn't a course * No real-world, e.g., practical, exercises (depends on school)
CS classes teach the basics, and theory. These are both important. They tend to fall over on teaching practical applications of both.
Most development takes place far outside the realm of "theory". I haven't implemented my own data structures since a decade out of college (in those days I still did because I did a lot of embedded work, and there wasn't much of an internet). Only rarely do I need to consider time complexity (although I do).
This is just my experience; I did embedded/firmware for a decade, then web development. For the first half of that I used math more than CS. For the past twenty years nothing I've done even existed when I was in college.
The solution? Continue to teach the basics and theory: IMO you must have a strong background. But mix it in with real-world applications, with code reviews, with revisions, etc.
The best example of this we had back in my day was the final senior project, but even that had no code review or critique.
But even for students who took the effort to learn the course curriculum I would say there was big gaps in what is done in a professional environment. In the real world nobody implements everything from scratch in a single file. Schools need to spend at least a little time making students aware of tooling like package managers, source control and using third party code.
Grad students are usually good at conceptual stuff. They couldn't code well, and they needed help setting up a database. But I couldn't do the breakthrough stuff they were doing. (I'm still not sure what a wavelet is:-).
It's as simple as that.
Some CS professors and graduate students write beautiful code (if all C++ code were like MiniSAT I'd be a C++ programmer), but many do not. You can succeed in CS without learning how to do the "last 20% of the work to get to MVP which is 80% of the cost".