Take the 2-minute tour ×
Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free, no registration required.

I have an upcoming speaking engagement at a local University and will be address students in a 102 computer science course. Being more of an introductory course, there will be comp sci majors, along with some business/comp sci hybrid majors, as well as Math and Physics majors. It is one of those 'see someone from the real world with your degree' type things. The professor's requested topic is what career opportunities does a student have when they have some programming courses under their belt.

Now, my degree was a B.S. in Comp Sci and my entire experience (5 years out of school) has been in what you would generically label the 'business world' (first job was for a consulting firm, my current job is for a company in distribution).

I was hoping to get outside opinions so that I'm not just pulling from my own experience for these college students.

What opportunities exist for students that have some degree and ability to program/develop software outside of the business world? (ie. research and grant type work, military/government, etc.)

How can the skills learned in programming courses help you beyond developing software? (Being able to better communicate with an I.T. staff is something I thought of)

Any other benefits you can think of would be appreciated! Thanks!

share|improve this question

closed as off topic by gnat, Martijn Pieters, Kilian Foth, BЈовић, Glenn Nelson Jan 25 '13 at 13:11

Questions on Programmers Stack Exchange are expected to relate to software development within the scope defined by the community. Consider editing the question or leaving comments for improvement if you believe the question can be reworded to fit within the scope. Read more about reopening questions here.If this question can be reworded to fit the rules in the help center, please edit the question.

add comment

6 Answers

up vote 1 down vote accepted

What you would be qualified for as a CS graduate depends primarily on the specific areas of focus of the CS degree path at your school.

I'll give examples from my experience. At the university where I got my degree, the Computer Science major was offered by the Uni's Engineering school. The degree involved high amounts of electrical engineering, circuit design and low-level programming, in addition to courses on higher-level concepts like operating systems, O-O programming etc. It trained people to be "computer scientists"; the person who received such a degree would be a fine catch for a company like TI, Honeywell or Lockheed that specialized in the development of new computer hardware, or otherwise sought to do new things with computers as electronic machines embedded physically in larger projects.

By contrast, the Management of Information Systems (MIS) major was offered by the Business school. It taught similar math, OS and programming courses, but was much more highly focused on tools and technologies that would be used by an "end-level programmer". Instead of C++ and assembly language, MIS students were taught Java and the .NET languages. Instead of digital design and electrical engineering, students learn database design and OOA&D. Instead of calculus and matrix algebra, students learn accounting, stats and finance. Project management is common to both, but taught differently, and emphasized more in the MIS track. In short, MIS prepares graduates for jobs in tech firms that use computers "off-the-shelf" as a basis for their end-user products, and deals heavily with the concepts more than the specifics.

Which one's more useful? Well, I got an MIS degree, and my brother got the CS degree from the same school. We got the same type of job in the field, doing end-user .NET web and winforms programming, which is IMO closer to the MIS side. We're both doing well despite the current economy.

As far as opportunities, what you do with a degree in programming is completely up to you. I can say two things with absolute certainty; first, there is not a single field of business in which computers do not play a part. Second, 95% of the benefit of computers to most companies is in areas of productivity/clerical (MS Office-type apps), resource management (accounting/POS software), and mobile communication and marketing (web applications). If you want to be challenged (and make the BIG bux), you need a job in that 5% where computers are central to a company's business model in some other way, usually involving a much higher understanding of computers at a much lower level. Those areas are generally:

  • Games/graphics (yeah, it's producing an end-level product, but it also pushes the limits of computer hardware and computational math)
  • Robotics (computer/machine interfaces usually involve a lot of low-level programming)
  • Communications (these guys implement the new codecs for A/V transmission, as well as the protocols behind the network communications we all take for granted, from the hardware level up)
  • Framework Development (Eric Lippert's job; while you and I write programs in the .NET Framework, he's writing the .NET Framework itself, and probably making more than you and I put together)
  • Hardware Development (this goes down not just to the bits and bytes, but the circuits that transmit and store them.

All of these jobs require the skillset more toward the CS side at a masters' level.

share|improve this answer
add comment

I suggest you contact a local military recruiter to get a good (and current) idea of the computer career field in the military.

IMHO, you'll not get more responsibility, at a younger age, on really important stuff than in the military.

share|improve this answer
    
please explain the negatives. Are they from anyone who's actually been in the computer/programming field in the military? I assert I know whereof I speak. –  radarbob Feb 4 '13 at 3:10
add comment

Few thoughts...

  • Network of friends and communities.
  • Initially be willing to learn more and for that not be choosy about what (subjective) but dont do that for 2-3 years, maybe 6 months?
  • Certifications for fresher will help open doors as this validates specific knowledge. Most companies require that you complete certification asap.
  • Guiding the students on different roles in a typical software project. (They may already know that, but it is helpful to understand from the bottoms up, if you are to execute a company tomorrow).
  • How management looks at you after each project.
  • Different career paths, say BA , engineer, administrator, dba, developers senior vs junior, PM and Architects. For freshers that may not apply, but knowing that and willing to work on that vertical may make for good things down the line.
  • How the engineering teams differentiate between critical people (1 or 2) who control everything to others who churn out based on the framework.
  • The type of experience matters, say for example having worked in a banking application or some mission critical application.
  • Cannot answer the question without going into the other side of skills needed for a fresher.
  • Soft skills matter a load for good career / development.
  • Control your temper, control your temper, control your temper at all situations!!! ( in a basket there are different types of apples, you can apply that to people or code)
  • Consistency in whatever you do, coming late to office, or delivering projects or giving estimates ... but be consistent.
share|improve this answer
add comment

The professor's requested topic is what career opportunities does a student have when they have some programming courses under their belt.

The degree in CS will open some doors. Without a CS degree some doors will be closed (mostly by close minded companies).

The more important part is to be able to demonstrate an ability to program. This can be from individual, class or open source projects. It also can be demonstrated in an interview as well through doing well on logical problem solving exercises and being able to intelligently discuss programming topics. This is what I look for most often in junior level programmers more than a specific degree or "book learnin".

What opportunities exist for students that have some degree and ability to program/develop software outside of the business world?

There are plenty of government opportunities out there right now but they tend to be tightly speced (must have X years of Y doing Z) and the opportunities for programmers without experience is limited in most areas.

Most non-profits are struggling right now due to the economy but these can be good places to get some internship experience prior to graduation.

share|improve this answer
add comment

How can the skills learned in programming courses help you beyond developing software? (Being able to better communicate with an I.T. staff is something I thought of)

You learn how to work with idiots and people that lack skill. Most likely you'll work on larger projects in teams during your time at the University. You learn how to work in a group dynamic, deal with slackers, with type A's and type B's, etc. That was one of the more valuable things I learned.

share|improve this answer
add comment

How can the skills learned in programming courses help you beyond developing software? (Being able to better communicate with an I.T. staff is something I thought of)

A good CS course will give you a set of tools and a handful of problems and ask you to solve them. The key difference between CS and most other disciplines is that you can iterate on your solutions and get concrete answers back from your computer. You can try ten crazy ways to sort a list of strings in a few hours, see the results, and learn from them.

The life lesson is: learn how to run small experiments. Be willing to make mistakes, because you learn more from your mistakes than your successes.

share|improve this answer
add comment

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