Explore Computer Science

Computer and information technology impacts many areas of our daily lives from downloading a song to driving a car. Because many of our daily tasks involve the use of technology, computer scientists can be found in nearly all professional sectors, including big technology firms, government agencies, startups, nonprofits, and local businesses, both large and small. Computer science majors possess a broad variety of skills that make them valuable to all businesses and there is an increasing need for industry to have knowledgeable computer professionals.

At the heart of the computer scientist is a passion to benefit society by solving problems through computer and information technology. They conceive, design, and test logical structures for solving problems by computer and find ways to do so by designing applications and writing software to make computers do new things or accomplish tasks more efficiently. This may include, creating applications for mobile devices, writing web-based applications to power e-commerce and social networking sites, developing large enterprise systems for financial institutions, creating control software for robots, programming the next blockbuster video game, or identifying genes for the next biotech breakthrough.

All of these advancements may involve writing detailed instructions that list the order of steps a computer must follow to accomplish a necessary function, developing methods for computerizing business and scientific tasks, maximizing efficiency of computer systems already in use, or enhancing or building immersive systems so people are better able to socialize and interact with technology

Computer scientists often work on a more abstract level than other computer professionals. Positions are not limited to traditional technology fields either. More and more computer science is becoming necessary in every job category, while the computer technology industry is emerging as a new creative field.

*Salary and Career Outcomes gathered from the 2020-2021 CSE Graduation Survey. Post-graduation outcomes reflect the percentage of students who were employed full-time in their field or were enrolled in a graduate program at 6 months post-graduation.

CSci Career Prospects. Average Starting Salary: $83,581; Post-Graduation Outcomes: Employed 75.2%, Graduate School 21.2%, Other 3.6%

Expand all

What can I do with a major in Computer Science?

INDUSTRIES

  • Aerospace
  • Automotive manufacturing
  • Communication
  • Computer-aided design
  • Consulting
  • Digital communications
  • Electrical hardware
  • Environmental agencies
  • Factory automation
  • Federal safety agencies
  • Finance
  • Hardware design
  • Healthcare
  • High speed computing
  • Industrial/food products
  • Information management
  • Insurance
  • Manufacturing
  • Medical technology
  • Product development
  • Software development
  • Systems consulting
  • Technology   
  • Telecommunications

EMPLOYERS

  • Amazon
  • Apple, Inc.
  • Best Buy
  • Cognizant Technology Solutions
  • Cray
  • Epic Systems
  • Facebook
  • Fast Enterprises
  • General Dynamics Mission Systems
  • Google
  • IBM
  • Infinite Campus
  • Medtronic
  • Microsoft
  • National Instruments
  • Open Systems International
  • Target Corporation
  • Thomson Reuters
  • TripAdvisor
  • Unisys
  • UnitedHealth Group/Optum
  • Wells Fargo

TECHNICAL SKILLS

  • Agile
  • C#
  • C++
  • CSS
  • Eclipse
  • Excel
  • GUI
  • GWT
  • HTML
  • Java
  • JBehave
  • Linux
  • Mac OS
  • Mathematica
  • MATLAB
  • Microsoft SQL
  • MotionLab
  • NetBeans
  • Scheme
  • Scrum
  • Server
  • SQL
  • Subversion
  • Test Driven Development
  • UML
  • Unix
  • Visual Basic
  • Windows

POSSIBLE POSITIONS

  • Application developer: Develop, create, and modify general computer applications software or specialized utility programs. Design software or customize software for client use with the aim of optimizing operational efficiency.
  • Computer programmer: Write and test code that allows computer applications and software programs to function and turn program designs created by software developers into instructions a computer can follow.
  • Computer support specialist: Provides technical assistance to computer system users in person, via phone or from remote location. They provide assistance concerning the use of computer hardware and software.
  • Computer systems analyst: Study an organization’s current computer systems and procedures and design information systems solutions to help the organization operate more efficiently and effectively. They bring business and information technology (IT) together by understanding the needs and limitations of both.
  • Database administrator (DBAs): Use specialized software to store and organize data, such as financial information and customer shipping records. Ensure that data are available to users and are secure from unauthorized access.
  • Information security analyst: Plan and carry out security measures to protect an organization’s computer networks and systems. Their responsibilities are continually expanding as the number of cyberattacks increases.
  • Software developer: Develop computer program and applications that allow people to do specific tasks on a computer or another device. Others develop the underlying systems that run the devices or that control networks.
  • Web developer/engineer: Design, create, and modify Web sites. Analyze user needs to implement Web site content, graphics, performance, and capacity. May integrate Web sites with other computer applications.

**Some of these positions may require an advanced degree.

GET INVOLVED

  • Active Energy Club
  • Association for Computing Machinery
  • Association for Computing Machinery for Women
  • CSE K-12 Outreach
  • CSE Ambassadors
  • CSE International Ambassadors
  • Engineers Without Borders
  • Girls Who Code Volunteers
  • National Society of Black Engineers
  • Plumb Bob Honorary Leadership Society
  • Science and Engineering Student Board
  • Society of Asian Scientists and Engineers
  • Society of Hispanic Professional Engineers
  • Society of Women Engineers
  • Solar Vehicle Project
  • Tau Beta Pi
  • TeslaWorks
  • Theta Tau

Q&A with Ryan Zoeller, National Instruments, Software Engineer

What do you do?

My responsibilities include:

  • Maintaining and improving support for hardware-in-the-loop test software, including developing real-time software targeting Linux RT
  • Application software development for Windows using C# and WPF
  • Improving automated testing for existing software targeting Linux RT and other real-time operating systems

What’s a typical work day? 

I work independently on software development and testing projects in areas being newly explored by the company. I collaborate with other engineers for code-reviews and brainstorming improvements to existing solutions. Plus, I periodically sync up with project managers on development status and feedback from marketing and systems engineers on customer needs.

What qualities are important for this position?

  • Ability to work both independently and collaboratively, especially in areas where little existing knowledge exists among team-members.
  • Critical thinking and willingness to find root-cause of problems.
  • Willingness to interact with people across multiple divisions of the company and outside your area of expertise.

What about technical skills?

  • Multilingual knowledge of programming languages, especially including a willingness to learn new languages and the paradigms considered idiomatic to them.
  • Ability to critically evaluate your own work and the code delivered by others.
  • High-level understanding of different operating-systems and digital hardware.

What training were you offered for your position?

New employees are all given a week-long training on National Instruments’ (NI) software and hardware. Beyond that, NI pushes continuous learning and training including an annual R&D-wide multi-day conference where engineers can present to their peers on topics of their choice. We are encouraged to participate in learning through book-clubs where teams read and discuss topical books such as CLR through C# and Clean Code.

What part of your job is most satisfying?

Working in areas being newly explored by the company where I can make tangible change and directly impact customers.

Most challenging? 

The area I am working in is relatively new and generally not well established. I am sometimes the first person in the team to work on a problem, and I am responsible for becoming the subject matter expert so that I can share that knowledge with others.

What are your possible career paths now?

Software engineers typically move upwards along a track, which keeps them programming, meaning that employees do not have to take on management responsibilities if they would prefer not to. Opportunities are available however for developers to take on roles as scrum masters, project managers, and product support engineers who interface more directly with customers.

Advice for current students?

Don't stop your education when class ends. There are opportunities all around you to not only further your education and develop your technical skills, but also to network and meet contacts who will help you post-academia.

Any other advice you’d like to share?

Internships are an excellent opportunity to try something you might not normally do. I moved to Austin, Texas (it’s really hot and doesn’t snow, if you're into that) following my sophomore year for an internship with NI, and ultimately ended up at the company full-time. If you don’t end up enjoying an internship, you have an easy exit strategy. So, take advantage of that and be adventurous.

Q&A with Brent Miller, Integration Engineering Manager, Ivanti

What do you do?

What do you do?

Software development manager; product integrator, Scrum Product Owner

What’s a typical work day? 

The mornings are usually catching up on individual work and Webex meetings with our European coworkers. The afternoons resume with meetings and more individual work. 

What qualities are important for this position?

Being able to communicate complex technical problems is probably the most important part of my job. Understanding requirements from Product Management and making those ideas in to functioning software is my goal. To achieve that, learning depth about many different concepts is required. Self-directed learning plus communicating are equally valuable.

What about technical skills? 

Knowledge of software construction, architectures, computability theory, and end-user experience. To do my job well, I have to see the entire software ecosystem from all sides.

What training were you offered for your position? 

Conferences, in-office training from Agile/Scrum coaches, online self-directed learning. I was also fortunate enough to attend a mini 5-day MBA Essentials course at Carlson School of Management a few years ago.

What part of your job is most satisfying?

The travel and face-to-face collaboration with our other offices and teams. 

Most challenging? 

Managing all of the different requirements, wants, desires, and demands from all parts of the business. There is never enough time or people to do everything. My role is about balance every need and executing tasks in priority order.

What are your possible career paths now?

CTO, and everything in between, if I'm up for it. CEO could be possible, but I might favor staying on the technical side of a business.

Advice for current students?

Computer science is a fantastic major. Think of it as a "professional problem solving" degree. You learn how to break down problems and solve simpler parts. Learning to program isn't the goal of this major, so don't focus on that too much. Good coding skills come once you have a job. 

Any other advice you'd like to share?

Being able to communicate technical things is more important than being able to program or do technical things.

Q&A with Josh Fehrmann, Director, Clinical Trial Management System and Clinical and Translational Science Institute, University of Minnesota

What do you do?

I’m a supervisor (manage staff), project manager (oversee multiple projects to support clinical research), and business analyst (collaborating with different users, including IT staff, product vendors, and other stake holders in the research and medical field)

What’s a typical work day? 

Methodically advance projects, align technical priorities with business strategy, work with about 10 fulltime staff in addition to leading multiple cross-functional workgroups through various projects. I also oversee security of private data, manage requests, plan new projects, and provide support for our world-class researchers in any way I can.

What qualities are important for this position?

Adaptability, willingness to learn something new routinely, patience, collaborative mind set, ability to create novel solutions, and respect for research.

What about technical skills? 

Understanding development methodologies, testing, QA best practices, Business Analysis techniques, SQL, and IT security.

What training were you offered for your position? 

Certifications for our Clinical Trial Management System, project management, business analysis, management practices, and organization development.

What part of your job is most satisfying?

Accomplishing tasks that help researchers and their staff.

Most challenging?

Meeting resource-intense business needs with minimal staff.

What are your possible career paths now?

Research IT director

Advice for current students?

Consider how you could potentially use what you learn to improve the world we live in.

Any other advice you'd like to share?

Always keep an eye and ear open to what is coming around the corner.

Q&A with Ramith Jayatilleka, Software Development Engineer, Amazon Inc.

What do you do?

Designing and programming distributed software systems

What’s a typical work day? 

Writing code, reviewing code, mentoring, designing better solutions, having fun

What qualities are important for this position?

Deep understanding of how computers tick, can take criticism well, can give criticism well, passion for solving problems

What about technical skills? 

Distributed systems, programming, writing, AWS

What training were you offered for your position? 

CS major, internal tech talks, internal classes, textbooks

What part of your job is most satisfying?

Teaching others new methods of approaching problems

Most challenging?

Circumventing bad management 

What are your possible career paths now?

Technical lead, independent engineering advisor, architect, software manager, technical project manager

Advice for current students?

Explore programming on your own or with friends. If you find joy in building things, you'll thrive.

Any other advice you'd like to share?

Tesla Works is a great student organization at the University of Minnesota that works on multiple projects that need programmers.

Q&A with Mason O’Neil, Architect, C.H. Robinson

What do you do?

Design the software architecture and direction of our Navisphere Carrier product line (websites and mobile apps). Work with our product owners and delivery leads to coordinate which developers work on which tasks and in what order. Influencing the future of the product's features and infrastructure.

What’s a typical work day? 

A variety of meetings discussing the future of the product, design future software solutions, support the other engineers with any questions, and write code whenever I can.

What qualities are important for this position?

You need to be able to work with people. You need to be able to inspire leadership and influence over a group of engineers. In my specific role, I also need to be able to stay organized while multi-tasking. Often times, you will be challenged to move from one meeting discussing a future project to a meeting discussing a current project. Then when you get back to your desk, there will be a line of developers with questions about their current tasks. Staying focused and being able to multitask is huge.

What about technical skills? 

In my position, I need to be technically proficient in a variety of different programming languages and software design patterns. Ideally, you would be the expert in every or most of the technologies your product uses.

What training were you offered for your position? 

Periodic in-person courses and unlimited online courses

What part of your job is most satisfying?

Making sense out of all the chaos of a large team with a large/diverse product. Finding the balance of every developers strengths, areas they wish to improve on and weaknesses against the balance of delivering a great product in a sufficient timeline. Nothing is more satisfying than putting the right puzzle pieces together and in the most efficient way possible. 

Most challenging?

The diversity of programming languages you need to be proficient with and the lack of day hours you have to write code in those languages.

What are your possible career paths now?

Enterprise Architect, which is a manager of architects, who sets technical direction for a department instead of a given product line. From there IT director, which manages Enterprise architects, as well as other IT manager, and then possibly CTO/CIO

Advice for current students?

Do it! If you are interested in creating software, problem solving, working together as a team and/or building incredible technologies the average person doesn't understand, then computer science is a great platform for that. It also pays extremely well! 

Any other advice you'd like to share?

Hangout with your classmates outside of class! Even if you are partnered with those people for just a month-long project, getting some food and being able to decompress and laugh outside of the computer lab will go miles towards the relationships you will build with these people over your time at the University of Minnesota.

Q&A with Michael Black, Software Engineer, Target

What do you do?

Design, develop, and support modern applications that support Target's e-commerce platform and in-store operations. 

What’s a typical work day? 

Most days, I spend developing features for the projects I'm currently working on, with some meetings scattered intermittently. When I'm working on more complex or largely scoped features, I tend to have more meetings with engineers and product owners to completely understand the feature and discuss the details.

What qualities are important for this position?

Being open-minded and accepting that you will always have much to learn is huge. This will allow you to effectively listen to others, build professional relationships, and continuously develop your own skillset.

What about technical skills? 

The ability to write good code is very important. 

What training were you offered for your position? 

I went through a 15-month rotational program called the Technology Leadership Program.

What part of your job is most satisfying?

When my software impacts the lives of guests shopping at Target. 

Most challenging? 

Learning how to have constructive arguments with someone who has a very different understanding and opinion from you.

What are your possible career paths now?

As I advance in my career, I'll have the opportunity to gain more responsibility over a larger scope of projects. Depending on how my soft skills develop, I could also pursue a career in engineering management.

Advice for current students?

Pursue whatever your interests or passions are, and learn to love learning.