
The purpose of a CS degree in the 2020s? - G-delta
My experience is that non-CS engineers and scientists can write their own code, the talent that was supposed to keep the degree alive for decades. Consequently the subset of jobs unique to CS is rapidly converging to a handful of positions in computer systems, where electrical engineers are just as desirable. Will we still tell people that we need more CS majors in 2030, or will it be the next undergraduate business degree?
======
gulato
If the entirety of Computer Science == write code to you .. then nothing, I
guess.

~~~
G-delta
My original point was that the jobs _unique_ to the CS major are converging
rapidly to several in computer systems; do these other topics (e.g. theory of
computation and esoteric algorithm D&A) lend themselves to employment outside
of academia better than the domain-specific knowledge a chemical engineer has,
for instance?

I agree with you that CS is more than coding, but the educational
establishment does not. The CS curriculum in most American universities
comprises architecture, networks, operating systems, software engineering,
some algorithm D&A, and Java/Python/C++, at maximum. The fundamental issue is
that a proper study of the other components of CS you bring up demands
mathematical maturity. Consequently a 3 year course of study in algebra,
analysis, and topology is likely much better preparation for advanced study in
CS than a 4 year course of study in software engineering, which is what most
American CS degrees are. It is one thing to debate how useful CS is as a
_field_ beyond programming, but a completely different problem to determine
how useful the training offered in a CS _degree_ is.

~~~
gulato
Lots of discussion about degrees as signaling and such around. I didn't
realize this was where we ere going.

If you walk out of a university only knowing how to code, you've wasted an
opportunity. (and a lot of somebody's money)

------
CLPadvocate
One of the largest problems in the industry is that they are looking (job ads)
for CS, hiring programmers, but actually often need software engineers. And
the second problem is that they often don't understand the first sentence.

CS was never meant to be a programming degree. There are universities that
don't have programming in their CS curriculum at all (well, except for pseudo-
code or the like). It's a scientific degree. It's an education that teaches
you how to solve problems in the Computing in a reliable, mathematical,
scientific way. They solve abstract problems.

Software engineers, on the other hand, solve concrete problems, but also
without much code. They design a solution with respect to the requirements,
technical constraints, price, available resources etc. They shape the
development process.

Programmers write code. Ideally they do know the infrastructure they're
working with (compilers, libraries, frameworks, hardware, ...) and write the
most optimal code in the frame, defined by an engineer, and using solutions
developed by a scientist.

At least this is how it should be. And there are some companies that really
working like this - usually the ones that have to have really good software
working for decades. Other (nowadays the majority) hire physicists or the like
for everything. I had the chance to work for some of these companies too - one
of them hired basically everyone with some mathematical background to do
coding - and they coded. They created one of the largest code bases on the
planet (larger than e.g. Microsoft's at that time). They never learned how to
get requirements from the customers, so their software was an absolute
desaster in terms of usability. It is also extremely slow - jokes about its
start-up times were pretty widespread a couple of years ago. And it was
absolutely unmaintainable, to a degree that the company was on the verge of
bankruptcy because they were basically not able to react to customer requests.
They survived. But they are not hiring physicists to do software development
anymore.

------
omg_ponies
> non-CS engineers and scientists can write their own code

Having seen plenty of code written by non-CS engineers and scientists, my
experience is that formally trained programmers have excellent job security.

Have you ever tried maintaining that kind of code base?

~~~
G-delta
>Have you ever tried maintaining that kind of code base?

I've never tried to maintain a code base written by non-CS people. In what
context have you seen code by non-CS scientists?

>Having seen plenty of code written by non-CS engineers and scientists

There is a trade off between domain knowledge and programming style. Is it
better to teach a BSCS 2 years of chemistry to work on your molecular modeling
library, or hire somebody with chemistry experience who writes less
maintainable code? Coding has become easier over the last 20 years, but the
domain-specific knowledge has become harder. This trend favors the chemist
over the BSCS.

~~~
omg_ponies
> non-CS engineers and scientists can write their own code

> I've never tried to maintain a code base written by non-CS people

...

~~~
G-delta
You do not need to actively work on a code base to know who does. The
educational backgrounds of developers who work on software in non-CS fields
are very easy to find online. There is no contradiction in these quotes. If
your point is that non-CS people write bad code (and that at some point I have
argued the opposite, which I have not), you still haven't explained why the
market won't value the domain-specific knowledge of a non-CS person over a
BSCS's programming knack.

