
Ask HN: What is missing from comp sci grads, why can't they code? - SAZWDUBAI
I have been hearing a lot of talk about computer science graduates and people graduating from the countless software development programs we have. The overwhelming opinion appears to be these institutions are dishing out graduates who can&#x27;t code.<p>What do you believe;
i.) Is lacking from the junior devs you have interviewed
ii.) What can be done to rectify this problem
======
davelnewton
It's simple:

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

------
eberkund
Well when I was in school, I noticed that 80% of students would just copy lab
solutions verbatim from their friends or older students. Professors were
largely indifferent to this because so many people were doing it that it would
involve expelling most of the class.

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.

------
oceanghost
When I was an undergrad and systems admin at a major American university, the
Ph.D. students would often come to me for programming advice. We even had one
guy who was a Ph.D. candidate, Java certified up to some awful level but had
never written a Java program. Ever.

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.

------
PaulHoule
If you are on the academic computer science track the game is to write papers,
not write code.

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

------
turingcompeteme
ii) I think the University of Waterloo has it figured out. Your degree takes 5
years, but you graduate with 6 4-month work terms under your belt. Many of
these are at Big 4 and the like companies. ycombinator seems to like Waterloo
grads as well, and sama and others have written about this.

