Answers.Body: <p>IT jobs tend to require much less in the way of programming skills. A few of these include: </p>
  
  <ul>
  <li>System Administrator: keeping a company's servers, desktops, ... operational and secure</li>
  <li>Network Administrator: keeping a company's network operational and secure </li>
  <li>Website Administrator: keeping a company's website operational and secure</li>
  <li>Database Administrator: maintaining and administering a company's databases, including writing queries to extract information from the DB.</li>
  </ul>
  
  <p>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.</p>
  
  <p>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.</p>
  
  <p>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.</p>
  
  <p>I'm guessing there are others, but those are some that come to mind.</p>
  
Answers.ContentLicense: CC BY-SA 3.0
Answers.CreationDate: 2017-06-29T15:24:35.767Z
Answers.Text: 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.
Answers.UserDisplayName: Piyush Parikh
Answers.ContentLicense: CC BY-SA 3.0
Answers.CreationDate: 2017-06-29T15:09:45.487Z
Answers.LastActivityDate: 2017-06-29T15:09:45.487Z
Answers.UserDisplayName: Joel Adams
Answers.Body: <p>Other specialties that are in demand and need a good CS background but not just programming (but having some programming skills helps)</p>
  
  <ul>
  <li>Performance Engineer</li>
  <li>Devops/Automation Engineer</li>
  <li>QA (Test engineer, maybe tied to automation, build, devops)</li>
  <li>Security Engineer</li>
  <li>data/database specialist (non-sql, sql, cloud object store,distributed file systems),</li>
  <li>Data scientist (get info from large data sets)</li>
  <li>Project mgt for software projects</li>
  </ul>
  
Answers.ContentLicense: CC BY-SA 3.0
Answers.CreationDate: 2017-06-29T21:59:32.123Z
Answers.Text: Nice ideas here.  Welcome to [cseducators.se].  I hope we hear more from you in the future!
Answers.UserDisplayName: Ben I.
Answers.ContentLicense: CC BY-SA 3.0
Answers.CreationDate: 2017-06-29T21:54:42.897Z
Answers.LastActivityDate: 2017-06-29T21:54:42.897Z
Answers.UserDisplayName: dh_01
Answers.Body: <p>I just noticed that most of the answers here, while good, don't answer the originators question: How can I ....</p>
  
  <p>My suggestions, all of which are hard work: </p>
  
  <ul>
  <li><p>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. </p></li>
  <li><p>Bring in industry folk you know. Arrange for students to chat with them.</p></li>
  <li><p>Work to make contacts with those industry folk, of which you have an abundance where you are. </p></li>
  <li><p>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. </p></li>
  <li><p>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. </p></li>
  <li><p>More...</p></li>
  </ul>
  
  <p>I'll repeat part of my earlier comment. A person who can ask the <em>right</em> question is as valuable as a person who can answer it. A philosopher can manage programmers. </p>
  
  <p>This isn't a complete answer, of course. But the basis of the answer is "communication" and "personal contact." </p>
  
  <p>And most likely, they <strong>are</strong> prepared, so it is mostly a problem of finding a good and rewarding match. </p>
  
Answers.ContentLicense: CC BY-SA 3.0
Answers.CreationDate: 2017-06-30T13:53:31.483Z
Answers.LastActivityDate: 2017-06-30T14:03:48.867Z
Answers.LastEditDate: 2017-06-30T14:03:48.867Z
Answers.UserDisplayName: Buffy
Answers.Body: <p>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.</p>
  
Answers.ContentLicense: CC BY-SA 3.0
Answers.CreationDate: 2017-06-29T21:10:13.807Z
Answers.LastActivityDate: 2017-06-29T21:10:13.807Z
Answers.UserDisplayName: hotpaw2
Answers.Body: <p><strong>Sci/Tech journalism</strong><br>
  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.</p>
  
  <p><strong>Tech writing</strong><br>
  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.</p>
  
  <p><strong>Requirements engineering</strong><br>
  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).</p>
  
  <p>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.</p>
  
  <p><strong>Evangelism</strong><br>
  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.</p>
  
Answers.ContentLicense: CC BY-SA 3.0
Answers.CreationDate: 2017-06-29T15:05:40.067Z
Answers.Text: This is a great, well thought out answer. +1!
Answers.UserDisplayName: auden
Answers.ContentLicense: CC BY-SA 3.0
Answers.CreationDate: 2017-06-29T16:40:59.347Z
Answers.Text: 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.
Answers.UserDisplayName: Kys
Answers.ContentLicense: CC BY-SA 3.0
Answers.CreationDate: 2017-06-29T17:20:59.780Z
Answers.Text: Great ideas! How can I prepare the students for entry level jobs?
Answers.UserDisplayName: Ellen Spertus
Answers.ContentLicense: CC BY-SA 3.0
Answers.CreationDate: 2017-06-29T17:44:27.447Z
Answers.Text: @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?
Answers.UserDisplayName: Piyush Parikh
Answers.ContentLicense: CC BY-SA 3.0
Answers.CreationDate: 2017-06-29T18:26:54.933Z
Answers.Text: 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.
Answers.UserDisplayName: jmathew
Answers.ContentLicense: CC BY-SA 3.0
Answers.CreationDate: 2017-06-29T18:35:46.900Z
Answers.Text: @jmathew I actually kept that off the list intentionally. If the student doesn't enjoy coding or their coding skills are weak, I don't think they'd enjoy testing code or do a good job looking through code to find out why tests failed.
Answers.UserDisplayName: Piyush Parikh
Answers.ContentLicense: CC BY-SA 3.0
Answers.CreationDate: 2017-06-29T14:46:45.070Z
Answers.LastActivityDate: 2017-06-29T19:00:05.243Z
Answers.LastEditDate: 2017-06-29T19:00:05.243Z
Answers.UserDisplayName: Piyush Parikh
Body: <p>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.</p>
  
  <p>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.</p>
  
Comments.ContentLicense: CC BY-SA 3.0
Comments.CreationDate: 2017-06-29T14:50:26.157Z
Comments.Text: 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!
Comments.UserDisplayName: Piyush Parikh
Comments.ContentLicense: CC BY-SA 3.0
Comments.CreationDate: 2017-06-29T15:33:29.607Z
Comments.Text: 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.
Comments.UserDisplayName: alephzero
Comments.ContentLicense: CC BY-SA 3.0
Comments.CreationDate: 2017-06-29T15:44:48.633Z
Comments.Text: @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.
Comments.UserDisplayName: Ellen Spertus
Comments.ContentLicense: CC BY-SA 3.0
Comments.CreationDate: 2017-06-29T17:06:17.677Z
Comments.Text: 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.
Comments.UserDisplayName: Buffy
Tags: <careers>
Title: How can I prepare CS majors for non-programming jobs?
ThreadText: # How can I prepare CS majors for non-programming jobs?
  
  (Asked by: username_0 on 2017-06-29)
  
  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.
  
  **Tags:** careers
  
  > **Comments:**
  > **username_1**: 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!  
  > **username_2**: 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.  
  > **username_0**: @username_2 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.  
  > **username_3**: 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 @( username_1 username_1) are quite good. But a good liberal arts college focuses on the big picture, which add value to any organization.  
  
  ---
  
  ## 5 answers
  
  ### Answer by username_1 on 2017-06-29. Score: 11
  
  **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.
  
  **Evangelism**  
  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.
  
  > **Comments:**
  > **username_8**: This is a great, well thought out answer. +1!  
  > **username_9**: 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.  
  > **username_0**: Great ideas! How can I prepare the students for entry level jobs?  
  > **username_1**: @username_0 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?  
  > **username_10**: 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.  
  > **username_1**: @username_10 I actually kept that off the list intentionally. If the student doesn't enjoy coding or their coding skills are weak, I don't think they'd enjoy testing code or do a good job looking through code to find out why tests failed.  
  
  ---
  
  ### Answer by username_4 on 2017-06-29. Score: 8
  
  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.
  
  > **Comments:**
  > **username_1**: 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.  
  
  ---
  
  ### Answer by username_5 on 2017-06-29. Score: 3
  
  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
  
  > **Comments:**
  > **username_6**: Nice ideas here.  Welcome to [cseducators.se].  I hope we hear more from you in the future!  
  
  ---
  
  ### Answer by username_3 on 2017-06-30. Score: 2
  
  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.
  
  
  ---
  
  ### Answer by username_7 on 2017-06-29. Score: 1
  
  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.
  
  
  ---
  
  