I would like to know what is meant by "Computer science jobs".
To me, Computer Science would be like research type jobs. I know nothing about this field, but I expect it has always been and always will be very hard to get into this field.
Then you have these programming jobs:
IT would be working on Internal Applications for a Business. These days would usually mean supporting or in-house custom developing for things like SAP or Oracle. This is what I did, in the 70s/80s/90s it was all in-house systems. Starting early 2000s, systems like SAP. I have since retired but I know where I last worked, that company was moving these jobs outside the US. From friends still there, those moves have increased quite a bit. Maybe work could be still available in small companies.
Then there are working at startups, which is rare but gets all the press, I know nothing about this area.
Then there is working a a company that develops software for sale (like SAP), I tend to think this is starting to go the way of IT work mentioned above.
I would like to know what is meant by "Computer science jobs"
The context is that the author is a computer science professor discussing the prospects of people graduating from his program, so I would interpret this very broadly as "the sorts of jobs that a person with a newly-minted computer science degree tends to pursue."
Typically this is jobs where one's job revolves primarily around writing code.
To me, Computer Science would be like research type jobs.
These are all arbitrary labels in an ever-changing field so I'm not going to say anybody is right or wrong, but I'm quite certain this is not what others typically mean when they say "computer science jobs."
IT would be working on Internal Applications for a Business
If a person's job primarily revolves around writing and shipping code this is most commonly just called "software engineering" or "software development" whether or not it's internal software or some kind of external product offered for sale externally.
If it's internal application development, the department might typically be called "IT" but the job role would still typically just be "software developer" or "software engineer."
This is what I did, in the 70s/80s/90s it was all
in-house systems. Starting early 2000s, systems like
SAP. I have since retired
I've been at it since the late 90s. Just a baby compared to you. :D
Right so there's currently a mismatch between higher education and industry. Ideally Computer Science is a branch of Applied Mathematics primarily concerned with the theory of computation. But due to demand from students who want to get industry jobs instead of doing research, many schools have "polluted" their CS majors with more practical programming courses. This confuses the issue and doesn't do anyone any good.
A better approach would be to have separate majors targeted towards students who want industry careers. I would suggest two separate tracks: Software Engineering which would take a disciplined, analytical approach and Software Development which would treat software construction for like a fine art, akin to sculpture or music performance.
To me, Computer Science is about the theory of computation, and the analysis of algorithms, and to some degree about the design of computer programming languages.
Software Engineering is about the efficient[1] production[2] of larger-scale programs that adequately meet the need[3].
Software Development as a separate topic... maybe, for some things like games and UI. I don't really see it as a separate field, though.
[1] "Efficient" is actually a lie, but the sentence was already long enough as it is. I really should have said "somewhat less inefficient". You can never make it efficient. (The fundamental problem is that brain-to-brain transfer of technical information is slow, inefficient, and lossy.) But if you don't control the inefficiency, it's going to destroy your project.
[2] Production and maintenance. Larger-scale software also tends to be longer lasting; if you don't build something maintainable, you fail.
[3] This does not mean bug-free! But it means that the amount and severity of the bugs do not destroy the usefulness of the software.
To me, Computer Science would be like research type jobs. I know nothing about this field, but I expect it has always been and always will be very hard to get into this field.
Then you have these programming jobs:
IT would be working on Internal Applications for a Business. These days would usually mean supporting or in-house custom developing for things like SAP or Oracle. This is what I did, in the 70s/80s/90s it was all in-house systems. Starting early 2000s, systems like SAP. I have since retired but I know where I last worked, that company was moving these jobs outside the US. From friends still there, those moves have increased quite a bit. Maybe work could be still available in small companies.
Then there are working at startups, which is rare but gets all the press, I know nothing about this area.
Then there is working a a company that develops software for sale (like SAP), I tend to think this is starting to go the way of IT work mentioned above.