I teach at a 4-year liberal arts college near Silicon Valley. Our stronger grads are able to get programming jobs straight out of college. In addition to preparing them well academically, I've worked as a software engineer and, while in industry, interviewed software engineering candidates, so I can coach students on interview skills.

Not every CS major is a strong programmer, at least at that stage of their life. What other good jobs can I suggest to students who aren't great at or don't enjoy programming, and how can I prepare them for these jobs? FWIW, many of our students have strong writing and interpersonal skills.

  • $\begingroup$ I opened this post expecting to dislike it (why would it be a CS professor's job to prepare students for jobs in theatre or marine biology?) but this is a great, underconsidered question! $\endgroup$ Jun 29, 2017 at 14:50
  • 8
    $\begingroup$ You may disagree, but IMO "CS" and "programming" are very different things. CS is (or aspires to be) "science" (or perhaps "mathematics") On the other hand "programming" is very much a skilled craft, and more like (advanced) carpentry than pure science. If some CS majors become strong programmers and can easily find work as such, that is probably more by accident than design. The others might have been better served by a course in computer engineering rather than computer science. $\endgroup$
    – alephzero
    Jun 29, 2017 at 15:33
  • 5
    $\begingroup$ @alephzero Do you mean software engineering? Computer engineering programs involve more hardware than CS or SE programs. (My undergraduate degree was in Computer Science & Engineering.) In any case, small schools tend to just have CS, which includes both programming and theory, with various electives. We prepare students for both industry and grad school. $\endgroup$ Jun 29, 2017 at 15:44
  • $\begingroup$ Don't sell your students short. A person who can think and write will probably be the boss of those with "only" technical skills. A person who can ask the right question is as valuable as the person who can provide an answer. As for specifics, the other answers here, especially @( Piyush Parikh) are quite good. But a good liberal arts college focuses on the big picture, which add value to any organization. $\endgroup$
    – Buffy
    Jun 29, 2017 at 17:06

5 Answers 5


Sci/Tech journalism
There's a common complaint that people in science journalism, who may have journalism or English academic backgrounds, are okay at writing but vastly underinformed about the computers (or physics, or chemistry, or other subject matter) they're writing about. I've seen it firsthand, and while there are of course exceptions, the complaint is justified in many cases. Your students would have a big advantage in this field because of their technical backgrounds, especially since you mention writing and interpersonal skills. Some basic journalism and psychology coursework might be handy, in my opinion.

Tech writing
Also in the writing category, there's the field known simply as technical writing. Technical writers often deal with creating documentation or manuals but may work on any specialized, um, writing that is technical. In my experience, these people often have either English backgrounds, with most of the rest having technical backgrounds, and whichever one you have, you're perceived as not having enough of the other. There's no running around and interviewing strangers as there is with journalism, so brushing up on writing skills on paper is the first thing I'd recommend here.

Requirements engineering
Adjacent to that is requirements engineering. Reqs engineers are on technical teams and work with programmers but don't do any coding themselves. They think bigger-picture about what the needs of systems will be, communicating with customers and developers and other relevant people (I suppose I should say "stakeholders" but that feels so business jargon) to figure out what a project should do, what it reasonably can do, and how it should do those things (and also, what it shouldn't do).

I haven't often seen requirements discussed at the undergrad level, but they're also not full-on graduate programs. Not that I think you're looking to recommend grad school here anyways. If finding and taking the one graduate requirements course isn't an option, I'm not sure what I could recommend to prepare for this one. Having a CS background will be a huge advantage, and I would almost say necessity, for such a position, though.

An answer that may be a bit more specific to your students specifically, based on your description of your school and your other activity on this site: evangelism. You don't need to be sitting in front of a computer writing code to care about the pipeline problem. The main issue with this answer is that there don't seem to be many places where you can get paid to work on this. Organizations that deal with diversity issues tend to be non-profits that lean heavily on volunteers.

  • $\begingroup$ This is a great, well thought out answer. +1! $\endgroup$
    – auden
    Jun 29, 2017 at 15:05
  • $\begingroup$ Requirements engineer would be a great opportunity for those students. Depending on the team, they may have the chance to do some light development work as well, furthering their technical skills and possibly leading into a full programming job later in their career. $\endgroup$
    – Kys
    Jun 29, 2017 at 16:40
  • $\begingroup$ Great ideas! How can I prepare the students for entry level jobs? $\endgroup$ Jun 29, 2017 at 17:20
  • $\begingroup$ @EllenSpertus I'd like to help more, and I tried to touch on skills to work on at the ends of my sections, but I guess I'm not sure quite what you're looking for. Things you can teach directly in your classes? Other classes to recommend? Internships to suggest? Connections to try to make? Something else? $\endgroup$ Jun 29, 2017 at 17:44
  • $\begingroup$ I would also add quality assurance (software testing) to this list. It does require a few additional skills depending on which kind of testing they end up doing. Like hands on vs integration testing. But most of the skills acquired as a CS major should make them more appealing as a tester. $\endgroup$
    – jmathew
    Jun 29, 2017 at 18:26

IT jobs tend to require much less in the way of programming skills. A few of these include:

  • System Administrator: keeping a company's servers, desktops, ... operational and secure
  • Network Administrator: keeping a company's network operational and secure
  • Website Administrator: keeping a company's website operational and secure
  • Database Administrator: maintaining and administering a company's databases, including writing queries to extract information from the DB.

All of these require technical skills in the specific area, so your curriculum would probably need to provide courses to equip students with those skills. For example, if your department offers a database course, it might provide students with the skills to get hired as a DB Admin (or developer) somewhere.

There are also "IT/Helpdesk Technician" jobs, in which the person helps people at the company who are having trouble with their desktop, laptop, or other computing devices. These require people skills, problem-solving skills, and a knowledge of the devices and/or the software on those devices, but little if any programming. If you can get students internships performing this role -- either at your college or at a local company -- that can provide a path to these jobs.

There are also job titles like "Project Manager" that require people skills, plus an understanding of how the technology works and what it is capable of, but not the skills to create that technology. These people generally supervise software developers, and act as go-betweens between the developers and the clients, but don't do any actual programming themselves. We have a Software Engineering course in which students work in 4-6 person teams to complete a group project. One person serves as the Project Manager for that project, so they get a bit of training in this role; it's difficult to give all the students this opportunity in the confines of a single semester course.

I'm guessing there are others, but those are some that come to mind.

  • 5
    $\begingroup$ I give you +1 for the first bit, the "* admin" jobs, although I have some suspicion that the students who aren't loving programming may not enjoy writing queries or firewall rulesets either. I don't know, so much, about the others... helpdesk tech doesn't require a degree (CS or otherwise) and I can see CS being helpful for a PM but their primary training should be in management, not tech. $\endgroup$ Jun 29, 2017 at 15:24

Other specialties that are in demand and need a good CS background but not just programming (but having some programming skills helps)

  • Performance Engineer
  • Devops/Automation Engineer
  • QA (Test engineer, maybe tied to automation, build, devops)
  • Security Engineer
  • data/database specialist (non-sql, sql, cloud object store,distributed file systems),
  • Data scientist (get info from large data sets)
  • Project mgt for software projects
  • $\begingroup$ Nice ideas here. Welcome to Computer Science Educators. I hope we hear more from you in the future! $\endgroup$
    – Ben I.
    Jun 29, 2017 at 21:59

I just noticed that most of the answers here, while good, don't answer the originators question: How can I ....

My suggestions, all of which are hard work:

  • If you don't have a "club" for your majors start one so they can talk about issues guided by yourself and others you invite. Even if the club is mostly technical, have a "career night" occasionally.

  • Bring in industry folk you know. Arrange for students to chat with them.

  • Work to make contacts with those industry folk, of which you have an abundance where you are.

  • Do field trips with one or two students to sites in which you arrange to meet with (a) tech types and (b) management types and (c) executive types, in order to let the students get a handle on what the needs are and how they might fit in to various organizations.

  • Once you make contact try to use electronic communication (or other things) to maintain the conversation. Push it in the direction of mentoring if possible.

  • More...

I'll repeat part of my earlier comment. A person who can ask the right question is as valuable as a person who can answer it. A philosopher can manage programmers.

This isn't a complete answer, of course. But the basis of the answer is "communication" and "personal contact."

And most likely, they are prepared, so it is mostly a problem of finding a good and rewarding match.


A CS graduate with good writing and people skills might want to look into entry level product or project management positions. Adding a few business management courses might help with that.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.