When hiring students fresh out of university I find that they invariably can’t code in C, and that they have only a passing familiarity with simple concepts like modulo arithmetic or prime numbers. This will, of course, hinder any attempt at developing a secure cryptographic algorithm. Nevertheless, I like hiring people from this group because they’re keen and eager - and, whilst I can’t teach enthusiasm, I can teach whatever their big-business sponsored degrees omitted.

---------------------------------------------------------------------------------------------------------------

If all you need is coders, perhaps.

If you want a much deeper understanding then there are very few individuals capable of teaching everything one should know.

In my experience a good computer science degree needs four years of university algebra, three years of calculus, numerical analysis, statistics (not the one for general science students!), computability, recursive function theory, some more math, ten computer courses from machine architecture to designing languages and writing compilers, and operating systems, not counting math overlap courses like numerical analysis, exposure to ten or so very different computer languages, from assembler to advanced specialized languages like LISP or APL, including at least one C-like language, some courses from outside one's area of specialization, and then more optional enhancements like more advanced statistics, topology, and so on.

On that scale, the CompSci graduate is more like an architect/engineer and a coder is a carpenter/brick-layer. There is no reason to expect someone with a good computer science education to be particularly experienced or adept with one of the commercially popular languages du jour.

On the other hand, they should be fully aware of the basic mathematical underpinnings of computational encryption methods, and their common weaknesses and pitfalls.