What Can I Do With A Computer Science Degree?

From CompSciWiki
Jump to: navigation, search

COMP 1010 Home > Comp Sci and U


Introduction

A Computer Science degree will open many paths for a future career; Computer Science graduates are often given many options. There are many possible fields: software development,research, teaching, writing, or entrepreneurship. The IT industry is booming and there will be no shortage of jobs in the near future. A Computer Science degree will simply put you at the top of employers' lists, should you choose to not be an employer yourself.

...By Students

"We recommend that before graduating you experience programming outside of coursework. This could be from side projects or the co-op program. Try a variety of programming styles to find out what you like and want to do after graduation."

Software Developer for a Tech Company

Applications Style of Programming


Applications developers generally make software that provides services to the end user (e.g. word processing software). This is the most common type of programming in the IT world. The most common areas are listed below, but keep in mind the categories are not fixed; there can be mixing in them. A good example of a mixture is a programmer analyst, which is a combination of software developer and software analyst.

General Application Software Developer

Usually referred to as Software Developer or Software Engineer. This encompasses anyone who works on applications and is not primarily concerned with Web Development or analyzing the application.

Software developers spend most of their time designing and programming non-web applications (that may eventually be converted to web apps), the rest of the time they analyze requirements and write documentation for the application. The steps a software developer follows are (the three last steps can be iterative):

  • Gathering Requirements: involves making an outline of how the application should work and the number of features it will have, based on potential users requirements. For some companies software developers will have to interact with potential users directly to make requirements.
  • Designing the application: involves developing a plan to fulfill all application requirements in a set of programming languages, this is where design patterns come into play.
  • Programming the application: involves writing the code for the application then testing and debugging it.
  • Writing Documentation: involves describing how the application works outside of the code.

Software Developer Average salary: $48,153-$74,325
Senior Developer Average salary: $68,714-$94,189

Outline of the popular development methodology extreme programming

Web Developer

A Web Developer develops software that governs how a page functions and looks. There are three main tiers to Web Development:

  • Client Side: Code that is run inside a clients browser which mainly involves the appearance and navigation of a website. Some languages used for this are HTML,CSS,and JavaScript
  • Server Side: Code that is run on a website server which mainly involves the functionality of a website. Some languages used for this are PHP,Java,and .Net Languages (e.g. C#)
  • Database to Server Side: Code that governs how data that is read from some form of database is transferred to server side code. Some languages used for this are C++, and SQL

Depending on the organization a web developer may specialize in one tier or work in any number of tiers. Generally as the size of the company decreases the amount of areas a web developer is responsible for increases, so it is possible in some small companies for web developers to handle database management. In the first tier web developers usually work with designers to make sure the website looks good. In the second tier web developers usually work with other web developers and sometimes with non-web applications programmers to ensure all needed functionality is present. In the third tier web developers usually work with Database Administrators and systems programmers to make sure code is efficient and correct.

Web Developer average salary:$38,277-$61,518
Senior Web Developer average salary:$52,776-$73,578

A popular web based programming language

Software Analyst

Software analysts act as a bridge between potential users and software developers.

Software analysts primarily review software specifications, test applications, and provide documentation for the software. The software specifications are usually derived from a Business Analysts interaction with potential users. Using this knowledge the software analyst then reviews and refines the specifications for software developers. After that Software analysts spend a lot of time testing the application to make sure it works. Also in some companies Software analysts will be involved in the process of developing code. Finally once the application is developed to a sufficient degree the analyst writes documentation about the application. This usually involves writing about how it functions, training required, tests performed, changes they made to the program and so on.

Software Analyst average salary:$42,415-$61,112
Software Analyst average salary:$58,391-$80,485

An example of debugging

Database Administrator

One viable and high-paying career path you can take with a Computer Science degree is to become a Database Administrator (DBA). DBAs are responsible for the implementation and design of an organization’s databases. They must consider installation, storage, and security when designing and implementing database systems.

DBAs are responsible for the installation of database software. They also have the task of configuring and maintaining the software. Systems Administrators will usually work closely with DBAs, as the organization’s hardware dictates which software is the most efficient.<br/.

Planning how much storage is necessary for a database system is left to the DBA. The DBA must closely monitor the available disk space and make changes to the database system as necessary. The DBA is also responsible for backing up the database server.

Databases are attractive to hackers, as they store organizations' data. It is up to the DBA to address and prevent security threats that may arise. The DBA is responsible for managing user accounts, this includes creating accounts, managing permissions, and auditing.

If you have strong organization and logic skills, then a career as a DBA may be right for you. DBAs design, implement, and manage database systems for organizations and are paid well for doing so.

DBA average salary: $48,145-74,097
Senior DBA average salary: $69,585-$88,078

A for dummies guide to php and MySQL: two common technologies for DBAs

Systems Style of Programming


System Administrator

With a Computer Science degree, you have the choice of becoming a Systems Administrator (SA). The SA's job is to keep an organization's computer systems running efficiently. SAs are responsible for installing and supporting computer systems for organizations. There is a demand for SAs, as computers have become prevalent in the workplace. SAs perform a variety of tasks everyday, and any coding they do is generally limited to scripting languages.

It is the SA's job to install computer hardware including servers, PCs, and network equipment. This means the SA must be acquainted with a variety of computer technologies. The SA must also look after software installation on company computers. While installation is very important, the SA must also maintain and upgrade the company's hardware and software.

In addition to the technical skills above, the SA needs good communication skills. Whenever other employees have a problem they call for the SA. The SA is responsible for training staff on how to use technological equipment properly. The SA is also responsible for supporting staff whenever they have a technological problem.

Becoming an SA is requires good communication and problem solving skills. It also require a lot of technological knowledge. If this sounds interesting, then you should consider this career path.

SA average salary: $42,872-$60,166
Senior SA average salary: $57,457-$74,079

A computer scientist whose package made it into a Debian distro

Research

Getting a paid research position with a Bachelor's in Computer Science degree can be quite hard because the number of jobs available is limited and a Masters degree or higher is usually required. That said, a Bachelor's Computer Science degree opens up the possibility of getting a Master's degree where you can research and learn a lot more about a specific area of Computer Science.

Getting a Master's degree in Computer Science gives you the chance to work on the cutting edge ideas of Computer Science and earn a higher salary than non-Master's researchers. The hard part is actually completing the degree. The Master's program of any faculty generally is a lot tougher than the undergraduate one, this is especially true for Computer Science which already has one of the tougher undergraduate programs. This difficulty usually comes in the form of more a lot more work than the undergraduate program.

Should you find a research-oriented Computer Science position (with or without a Master's degree) you will spend a lot of time on theoretical abstractions and less on actual programming. Keep in mind, though, unless you work at a university as a researcher or similar position you will eventually have to produce tangible results.

Computer Science Researcher average salary:$52,381-$87,275

Computer Scientist Edsger W Dijkstra

Teaching

You can also, if you choose, minor in Computer Science and major in Education or get a second degree in Education. Doing so will allow you to become a Technology Teacher for elementary, middle school, or high school. Many people say that teaching is very rewarding; it does, however, also require a lot of patience and passion.

Teaching at the elementary level can may require a lot of patience. Young and impressionable students are beginning to be immersed in technology and it will be your job introduce technology to them. You certainly must be clear as well as understanding, but most importantly fun.

Teaching at the middle school and high school level can be a little more fun. Students will already have a basic understanding of computers and it will be your job to advance their computer knowledge and competency. Classes that you may teach include advanced typing, film editing, computer graphics, and computer science.

Teaching young students about technology can be fun and rewarding. A Computer Science degree(minor/major), in addition to an Education degree you can teach at the elementary, middle school, and high school levels. In a sense you may be responsible for nurturing the next generation of budding Computer Scientists. You also have the option of becoming a university instructor or professor by advancing you education and getting a Master's or/and a Ph. D degree.

Elementary school teacher average salary: $39,233-$60,729
Middle school teacher average salary: $40,507-$68,664
High school teacher average salary: $39,565-$66,573

A high school computer lab

Writing / Blogging about the Industry

Computer scientists who are gifted with writing ability can also consider writing as a career, and although a degree is not mandatory it certainly helps. There are two routes you can take with writing: textbook writing and technical journalism, both require excellent communication ability.

Textbook writing can be very hard, so you should only consider doing it if you are passionate about the subject. Finding a publisher will take a lot of work, but you can get your foot in the door by doing some freelance writing first. Writing for education publishers is harder than for any other publisher, you must show excellent grammar skills and be very clear in your writing. Also, you will need be good at doing research.

One alternative to textbook writing is journalism. There are many outlets for you as a Computer Science graduate: newspaper and magazine articles, and tech blogging. You can write for Wired Magazine, Gizmodo, or Engadget, just to name a few organizations. Again, as with textbook writing, journalism requires research skills. You must check your facts and verify any claims you make. It is important that you are good with deadlines as they are eminent in journalism. Also, tech blogging jobs may require that you are familiar with technologies like HTML and social networking sites like Facebook and Twitter.

If you are good at writing and have the problem solving skills as a computer scientist then a career as a Technical Writer may be right for you. Both journalism and textbook writing require that you have strong communication ability and research skills, but if you are up for it then go for it.

Technical Writer average salary: $42,738-$64,146


A user accessing Gizmodo on her smartphone

Start-up Company Partner

One of the most intense, risky and rewarding things you can do with a Computer Science degree is be a start-up partner. The founder of a IT company usually works much longer and harder than other types of IT jobs. The reward of this hard work is total freedom of choice in your life

A founder has to endure poverty, exhaustion and make very tough decisions. You will be poor for most of the initial stages of the start-up, because almost all funding and profit must go to the company. Exhaustion comes into play when you just start because you will probably not be used to the intense work schedule. The work schedule is intense because there is a small group of people (usually two-six) who have to accomplish a large number of tasks like programming and accounting. After the initial weeks, major decisions will have to be made on all types of matters, like software or marketing style. Every major decision at this point must reach consensus meaning everyone needs to make a decision. Keep in mind if the company does not succeed you will lose all your progress and have to start again.

Should you survive this intense process (and do some other things right), you will reach a point where you will no longer be poor. You will have a more reasonable, but still intense workload. The tough decisions still remain, but once the company is successful i.e. making a profit you have an unparalleled sense of freedom to take your life where you want. Though there is one possible downside; as the start-up becomes more successful, you will do less and less code and more business tasks.

Startup company partners' income will vary a lot depending on the business. Once the business is successful, the median is about $200 000.

Google's original homepage
Previous Page: Comp Sci and U Next Page: Meet Some Computer Scientists