Computer Careers

Introduction

In this resource, we've listed some of the most common types of computer-focused careers, related skills, and great resources -- like online courses -- to help you get started on the right path.

Use the navigation on the right to jump to individual types of jobs or continue reading below for a brief introduction, history, and general pre-requisite skills important to any career path in computers and technology.

History of Computer Careers

Prior to the 1980s, most computer work was done at an extremely high level. Academic professionals authored advanced systems for use on mainframes and commercial data centers.

In the 1990's, the commercial internet started to become available to the public, and the rise of e-mail forever changed the way that communication happened in a typical office.

Now, we are absolutely saturated with computers and embedded devices, and this trend is expected to continue, we may one day see miniature computers inside our bodies.

There is no single career in computation, but having a basic understanding of engineering and programming skills can be adapted to any specialization.

Pre-Requisite Skills

Core Math Skills

For most programming, you don't necessarily need to know a lot of math, just the basic order of  operations. For certain types of analytics or testing, knowing statistics can be helpful. There are a lot of programmers in the world who went to college to study non-technical majors.

Knowing calculus or linear algebra can be hugely beneficial, but is not required for all roles. Geo-spatial, scientific, image processing, and other specialized programming, will of course, require higher math knowledge.

Basic Computer Knowledge

Programming is a state of mind. Being able to understand variables, loops, conditionals, functions and methods is pretty much necessary for any technical computer role. Knowing the basics of programming can even help project managers or executives in making more intelligent timelines for product developments or for clients.

Communication Skills

Programmers are people, and have a wide variety of personalities and preferences; being able to work with all types is quintessential to having success in a computer career. Tight deadlines and impossible technical requirements can be a recipe for stress and disaster, and can be prevented by having honest discussions and realistic expectations.

Using communication frameworks like Agile Scrums, or "Team-Ware" for managing tasks can be extremely useful in getting work produced faster.

Types of Jobs

Web Developer & Designer

One of the most visible careers might be the web developer. Content consumed online is perhaps one of the most prevalent forms of media, and thereby it is one of the most practiced areas of expertise.  This work might involve a lot of freelancing, but just as easily could be part of an established consultancy shop.

Good Skills to Learn: HTML, JavaScript, CSS, SQL, Web Servers, 1-2 Web Programming Languages, Google Analytics, Graphic Tools such as Adobe Photoshop

Places to get started:

Software & OS Developer

A more general purpose title, a software or operating system developer will be working on software applications. This could be for desktop applications, mobile, or more complex web applications. An operating system engineer would be writing code which defines the code that allows the computer interface as we know it to be experienced by users. There is a huge area of diversity here, so no single skill set is absolute.

Good Skills to Learn: C/C++, Xcode, Objective-C, Java, .NET

Places to get started:

Devices & Networking Developers

Related to the general software developer, but different in a lot of ways. Writing code to handle physical devices and network routers is much different than writing pure software. Doing development for devices can require a stricter knowledge of the computer science and engineering of the hardware itself.

Good Skills to Learn: C/C++,  1-2 Other Programming Languages, UNIX, Linux, Network Socket Programming, Network+ Certification, Electronic Circuits

Places to get started:

Hardware & Electrical Engineering

There would be no computer programmers without computer engineering. Companies like Intel, AMD, Nvidia and Radeon, all create electronics. Whether it's computer processors, memory, or storage, every part in a computer needed to be invented, engineered and manufactured. It is common for the manufacturing to happen in China, but engineering is a global effort. Additionally, specialized computers and electronics can be found in everything from automobiles to medical equipment.

Good Skills to Learn: Electrical Engineering, Physics, Hexadecimal, Unit Testing, Image Processing, 3-4 relevant programming languages

Places to get started:

Business Analytics & Statistics

Running a business of any size can take a lot of energy and effort. Being able to measure the performance of that business can be even more difficult. For that reason, the business or data analyst position has come into existence. Somewhere in between a finance role, a statistician, and a data engineer, the analyst weaves multiple data sources together into measurable numbers that indicate the health or performance of a particular project or organization.

Good Skills to Learn: Excel, Visual Basic, SQL Server, Visual Studio, R, Python, Statistics, Advanced Mathematics, Finance

Places to get started:

Quality Assurance & SDET

Every type of development in software or hardware needs to have review of the quality of the project. The Software Developer Engineer in Test (SDET) is critical for projects where failure is not an option. These engineers run special automated software tests to find out the operational limits of a particular application or device. This testing is done prior to release to the wider userbase, whether it's an internal tool or a commercially facing product.

Good Skills to Learn: Unit Testing, SQL, 1-2 Programming Languages, Selenium, Specialized Automated Tools

Places to get started:

IT & Technical Support

Information Technologists and Technical Support staff are among the most critical members of the corporate ecosystem. Generally these roles are charged with the smooth operation of hundreds to thousands of work stations and file servers. They also need to implement security and corporate control software, running administrative duties and software updates for everyone in a company.

Good Skills to Learn: Operating System Installation, Document Management, SQL, A+ Certification, Customer Service Skills

Places to get started:

Project Management

Not every computer job is purely technical. There are non-technical roles that facilitate the functioning of software developers, and that help communicate performance challenges to executives. Project managers can implement a variety of team-based tools or work methods to keep a project on track, and to monitor how efficient their team is working.

Good Skills to Learn: Agile Methodology, Project Management Software, "Team-ware", Ticketing Systems, Excel, SQL, Microsoft Office, Microsoft Project, Visio

Places to get started:

Academic & Computer Sciences

There are actually computer careers which focus primarily on experimental projects and are centered around the process of discovery and publication. Colleges, institutes, and large companies all have "lab" teams that come up with new ideas for building hardware or software in the hopes of finding innovation. Corporate research labs are generally more product driven, while academic environments could either focus on publishing papers or on improving computer education.

Good Skills to Learn: Extremely variable, this could be anything. It should help to know 3-4 programming languages and be able to write well.

Places to get started:


Further Links and Resources:

Computer Programming - Introduction, timeline & resources.

Which code should you learn? - A visual guide to the most common programming languages.

How to teach kids to code - Websites, apps and games that help inspire children to learn programming.