What’s the Difference between a Computer Scientist & a Coder?
By: Shane Shown
Tags: Computer Science, Software Development, Entrepreneurship, Interview, Software Engineering

Legend has it that computer science started off as a mathematics subject. Mechanical inventions and mathematical theories paved the way for computer concepts and systems.

The early history of computer science boasts of names such as Charles Babbage, Ada Lovelace, and of course, Alan Turing. It might surprise you to learn then, that the term computer science did not actually appear on the scene till the 1950s.

But, since when has anything related to the world of computer science ever been easy? Even though universities across the world created departments solely for the pursuit of computer science — people were still arguing among themselves about what the term ‘computer science’ actually meant.

Then came the debate over software engineering and computer science, which further complicated the issue. And, unfortunately for us, the debate continues to this day.

But, that’s exactly why, asking what being a computer scientist entails, is kind of like trying to figure out what Elon Musk truly does for a living. Everyone thinks they know exactly what it is, but no two people will ever give you the same answer.

Nevertheless, I’m going to boldly venture where a bunch of people have gone before, and give you my take on what it means to be a computer scientist. So, let’s make like the Starship Enterprise and get on with it.

Problem Solving vs Language Proficiency

Being a computer scientist is more than just dealing with computers and programs. Computer scientists tackle real-world problems and figure out if these can be solved computationally.

They’re involved in developing techniques to make computing data more economical, they create and work with languages to find solutions, and they’re involved in building and designing computer systems that offer multiple services across a wide range of applications.

Think of computer scientists as wizards that can blend mathematical concepts with technology and build systems that can produce viable data. I suppose we could describe them as individuals who can create sense out of chaos.

That’s why when others say being a computer scientist is all about being proficient in programming languages — I disagree. Picasso said, ‘Our goals can only be reached through a vehicle of a plan, in which we must fervently believe, and upon which we must vigorously act. There is no other route to success.’

Likewise, you can describe a computer scientist as an artist who can come with different styles of paintings based on the type of tool they use. Whoever heard an artist limiting himself to a single paintbrush?

Being a computer scientist is unlike being a coder. You don’t have to be bound to a particular language — rather at its core, being a computer scientist, is about being a problem solver.

Why Perspective Always Matters

As I said earlier, there’s a vast difference between how coders and computer scientists operate. I’m not down-playing the role of coders because they have their own distinct place in the world of computer science. In fact, both computer scientists and coders help drive the wheel of technology forward.

The difference between the two is a matter of outlook. Any artist worth his salt will tell you that what you create depends on your perspective. That’s why two people looking at the same still life can create compositions that look nothing alike — because one of them is standing too close to the object, while the other is standing at a distance.

The computer scientists of this world tend to look at the bigger picture. They face challenges that are bigger in scale and complexity, and they’re not picky about the tools they can use to reach viable solutions.

On the other hand, coders with their knowledge of a singular language or category of technology are more like specialists. They’re extremely skilled but will perform better on whatever expertise they’ve amassed. Some coders excel as Java developers, while others are MySQL developers.

Taking the art analogy further, a coder can be described as an artist who’s an expert who’s used to a very specific medium of art, or is devoted to a particular art movement. A computer scientist, on the contrary, would be the kind of artist who dabbles in all types of mediums and styles, and is more devoted to getting his vision across to the audience, rather than following the rigors of any one type of movement.

Sure, there’s a bit of overlap in what coders and scientists do, but it’s their perspective of things that sets them apart.

Scale and Complexity Make A Difference

Now that we’ve discussed why perspective matters in all walks of life, let’s move on to the concepts of complexity and scale.

Picture an electrician working on wiring a lamp, as opposed to one working on a grid that’ll eventually supply power to an entire city. If you ask them what they do for a living, their answers will be similar, they’re an electrician. However, the truth is there’s a world of a difference in how their jobs differ in terms of scale and complexity.

Likewise, compare an online website that promotes the goods and services of a small family-owned business to a company like Amazon. Both online businesses are involved in catering to online consumers and retail goods, but Amazon deals with 4000 transactions per minute.

The point of telling you all this is that certain things may share similarities in the real world, be it a job title or company purpose, but in the digital world, they’re eons apart based on operations and size.

But, what the heck does that have to do with being a computer scientist? Based on the scale and complexity of their work, a computer scientist is kind of like the Amazon of the digital world. They’re the people who’re more likely to be working on the proverbial power grid, rather than the lamp.

Being a computer scientist means you have to assess an issue or challenge from all sides and have all your bases covered. It’s invention, understanding, empirical experimentation, and many other things all rolled into one. The point is — a computer scientist is more involved in dealing with complex challenges or tackling issues that need resolutions.

So, do you need a Coder or a Computer Scientist?

Working in a recruiting firm has its set of advantages — one of which is being able to ask what industry leaders and firms are looking for in their ideal computer scientist candidate.

Most are on the lookout for people who’re more interested in solving problems rather than being focused on coding. As a scientist, you’re mostly judged by your ability to understand the problem of the business requirement, and whether or not you’re asking the right questions.

It’ll be surprising to know how much the questions you ask let on about your personality and depth of knowledge. If you’re hung up on a particular type of language or technology, then you’re not open to other avenues of advancement.

This isn’t a bad thing, but it’ll seem like you’re a coder that’s very fixated on a specific set of skills, tools, and technologies that you’re comfortable using. But, if someone’s looking to hire personnel that can fit under the heading of ‘fungible’ then you’re probably not gonna make their top candidate.

Think about it — if as a coder you’re somewhat taken with Scala as your language of choice, but the company’s looking for a recruit that’s more focused on solving problems for business requirements, then you’re gonna be the round peg trying out for the square hole.

Not to mention, challenging the limits of any problem is something else people tend to take into consideration when hiring a scientist.This is where understanding edge cases becomes crucial.

In programming, an edge case (or a corner test) is a situation where the values require scrutinization, or more simply, it involves testing the boundary conditions of an algorithm or function, etc. You need to know the boundary of any algorithm, method, or function of any software you present before you can be sure that it works on both ends of the magnitude spectrum.

A computer scientist needs to have the basics of working within the problem space down pat. The problem space is where all the elements of problem-solving converge to create a solution. So the question you should ask yourself is — do you understand the key aspects of algorithms, design, architecture, etc. in the digital world?

In a nutshell, people are looking for scientists that are interested in challenging the status quo and pushing the boundaries of invention and transformation. As Steve Jobs said — Innovation distinguishes between a leader and a follower.