views:

234

answers:

6

I'm interested in career paths you can pursue Computer Science degree. Inspired by this post I'm curious as to what type of domains are out there. Examples might be system administrator, web developer, embedded systems, software tester, performance analyst, startup developer, etc. So very broadly, present a type of domain along with some necessary skills/attributes required to succeed.

As a student without much exposure here is a resource I've found useful but I'd like to hear from people in the industry.

A: 

Web Developer

  • All your software lives on servers you control. You can update it at will.
  • Your customers' operating system choice is flexible
Jay Bazuzi
+3  A: 

Embedded Software

  • This covers writing system and application software for embedded devices. While traditionally this would be work done on micro-controllers and other low power, low memory devices, these days "Embedded" is more about small size and versatility than low resources. Some of the modern embedded chips have more power than your desktop.
  • Lower resources than desktop applications
  • High assurance/good error handling a must
  • Debugging can be quite a challenge
SoapBox
I'll also note that at least in the US many of these jobs require a security clearance and are therefore not very useful if you are not a US citizen.
Uri
I think there are plenty of embedded jobs that have nothing to do with national security....
SoapBox
+4  A: 

Internal / Line-of-business application

  • Your paycheck may come directly from the budget of the department that will use your software.
  • You can meet your customers face-to-face before you write a single line of code
  • You're probably writing something very similar to 1000 other applications in the world
  • No one gets excited about the features you write
  • You can probably save your company a ton of money
  • You will almost certainly have a database.
  • All your software lives on servers you control.
Jay Bazuzi
A: 

Shinkwrapped software

  • Relatively slow updates
  • you don't know your users while you're writing the code
  • No income until you're 100% done
  • Income and effort are only loosely connected
  • Difficult to support
  • Success of the product based more on marketting and time to market, then quality and innovation
Jay Bazuzi
A: 

Data Analyst

  • Pays good if you are good at it
  • Statistical Mathematics
  • Data Mining
  • More business oriented
  • requires a CS or math related degree usually
Element
+2  A: 

There are a few more areas where you could have special analysts, developers, testers, etc.:

  • Content Management System
  • Customer Relationship Management
  • Enterprise Resource Planning
  • Human Resource Management System

All have their own unique quirks like the ERP knowing a good deal about finances and CMS knowing various Web standards. As for broader groups you left out:

Database Administrator

  • Configure various DB servers to be used by various systems.
  • Configure the tables, stored procedures and views that RDBMS use.

Network Administrator/Analyst

  • Configures various network hardware such as firewalls and load balancers
  • Monitoring software to determine what capacity of servers are being used

Project Manager

  • Plans projects according to various software development methodology
  • Acts as liaision between business and IS department on questions about what has to be done.

Security Officer

  • Ensures legal compliance on standards like SOX, PCI, and HIPAA
  • Hires security firms to test vulnerability to outside attacks such as cross site scripting or SQL injection.
  • Creates password policy for employees and automated accounts
JB King