Though computer science is a widely-used field that touches nearly every part of our lives, it can still be difficult to pinpoint what exactly a computer scientist does. After all, the term “computer scientist” can be applied to a wide range of roles, from software developers to systems architects to data scientists. In this blog post, we will discuss some of the common tasks that a computer scientist may perform, the skills required to succeed in these roles, and how to break into the field. We will also touch on some of the lesser-known titles that a computer scientist can take on, along with the typical pay for these roles.
The Data Scientist’s Role
If your first thought upon reading the title of this section was that this is a new and innovative role invented by Google, then you would be right. However, the data scientist job description has been around for quite some time and can be traced back to the 1950s, when it was first used to describe someone who would “[analyze] data to produce useful information or to make accurate predictions about future trends or levels of activity.”
Though the field of data science has evolved a great deal since its inception, the basic duties of a data scientist remain the same. A good data scientist is one who is familiar with the following topics:
- Data management and storage
- Data preparation
- Statistical and mathematical principles
- Principles of computer science
- Procedural and functional programming
- Programming languages (e.g., R, Python)
Depending on the industry, a data scientist will typically use a combination of these skills to analyze data. For example, a medical data scientist might use statistics, epidemiology, and biostatistics to determine the risk of certain diseases in a specific population. This type of analysis usually involves mapping variables (e.g., age, gender, ethnicity, and weight) with the target variable (e.g., presence of a disease).
One critical role of the data scientist is to turn raw data into useful information. This process is called data mining, and it usually involves three steps:
- Data preparation
- Extraction of a theme (e.g., patterns, trends, or correlations)
- Transformation of the data into a useful form
Data preparation involves cleaning the data and standardizing it. This means that all the elements in the dataset must follow a specific format and all the variables must have a meaning. Sometimes, it is necessary to perform an aggregation on the data to be able to use it. This involves taking the data once it is in a useful form and grouping it by either categories or variables. Some examples of data preparation include, but are not limited to the following:
- Converting categorical variables into numerical ones
- Changing missing values into a placeholder
- Removing meaningless characters from a text string
- Transforming an address into X,Y coordinates
- Standardizing units (e.g., converting kg to lbs)
- Adding brackets, commas, or other punctuation to a text string
- Sorting numbers
The Software Developer’s Role
If your first thought upon reading the title of this section was that this is a new and innovative role invented by Google, then you would be right. However, the software developer job description has been around for quite some time and can be traced back to the 1960s, when it was first used to describe someone who “[develops] software using standard software development techniques and software tools.”
Though the field of software development has evolved a great deal since its inception, the basic duties of a software developer remain the same. A good software developer is one who is familiar with the following topics:
- Computer architecture
- Computer science (e.g., object-oriented programming, algorithms, computer graphics, operating systems)
- Programming logic (e.g., if-then-else statements)
- Software design (e.g., high-level programming)
- Software engineering (e.g., life cycles, source control, testing, etc.)
- Application software (e.g., productivity, games, or electronic commerce)
Computer architecture is how a computer works, and it is made up of the following topics:
- Data bus (e.g., bus width, bus speed)
- Docking station (e.g., width, length, height)
- Motherboard (e.g., slots, connectors)
- Operating system
- Processor (e.g., speed, number of transistors)
- RAM (e.g., amount, type)
- Hard drive (e.g., capacity, type, speed)
- Mouse (e.g., type, buttons)
The object-oriented programming language C# is widely used in the development of enterprise applications. This language was designed to make programming more intuitive and remove the need to learn countless commands in order to complete a program. Though object-oriented programming has been around for decades, it was not until the 21st century that it became really popular.
An algorithm is a procedure or set of rules that can be followed to calculate something. For example, the algorithm for finding the square root of a number is as follows:
1. Take the number and divide it by two.
2. Take the result from step one and multiply it by itself.
3. Repeat step two until you get a number that is less than or equal to the original value.
4. Take the last number that you obtained and multiply it by itself.
5. The result will be the square root of the number.
In computer science, an algorithm is often used to solve a problem, and many algorithms exist for solving the cube root problem. If you want to become a good software developer, you should learn to implement and use algorithms.
The Systems Architect’s Role
Though the role of a systems architect is a little different from that of a software developer, it shares many of the same duties. A good systems architect is one who is familiar with the following topics:
- Operating systems
- Network architecture
- Applications software
- Middleware (e.g., operating systems)
- Hardware (e.g., servers, workstations)
- Data storage
- Security
An operating system is what makes a computer “tick”; it controls and manages the other devices on a computer network (e.g., printers, scanners, displays, etc.). If you want to become a systems architect, you should learn to design, install, and maintain operating systems.
The Data Scientist’s Pay
Data scientists are in great demand, and many universities now offer bachelor’s degrees in this field. Since many data scientists rely on analytics for their daily jobs, they often needn’t worry about their pay. However, there are a few important things you should know about the pay disparity between data scientists and other computer scientists. First, data scientists are often paid significantly more than others in similar roles. In 2018, the average data scientist salary was $97,000, while the average software developer salary was $59,000.
Additionally, data scientists generally have a lot more responsibility and are trusted with more important tasks. For example, they might be asked to analyze and interpret large datasets or to find correlations between different sets of data.
Though data scientists are in high demand and can earn a great deal of money, this does not necessarily mean that the field is easy to break into. In fact, the competition for data scientists is quite high, and most businesses will only hire seasoned professionals.
With more colleges offering Bachelor’s degrees in data science, more and more young people have the opportunity to enter the field and become a valuable asset to any company.