10 Must Have Data Science Skills, Updated

An updated look at the state of the data science landscape, and the skills - both technical and non-technical - that are absolutely required to make it as a data scientist.

Python code

Technical Skills

6. Coding Skills

It's not "R vs Python" or "R and Python" or "R and Python vs something else." It's "what skills do I need to fulfill my duties?" As someone from a computer science background, these arguments (unfortunately) are par for the course. n00bs be like: "Java is waaay better than Assembly." Well, what is it you aim to do, and which language do you know better? And flame wars are dumb (especially this one).

R is very strong for pure data analysis. Python has a rich scientific ecosystem that better lends to development of software solutions and industrial-strength implementations. That doesn't tell the whole story, though, and there is lots of crossover. Data exploration in Python? Sure. Machine learning in R? Why not? If you know your tools well, you know when to use them. It's really that straightforward. Maybe you only need one, but maybe not. You need to know that as well.

And it doesn't stop at "R or Python?" All sorts of languages and libraries are useful for data science. Of note, Java and Scala have their place in big data processing, thanks to their prevalence in the ecosystems which grew up around the popular frameworks. A lot of low level coding is done in C++, especially for algorithm development, thanks to the speed and control associated with being closer to the metal. Tools are just that; they aren't meant to become ideological expression of dogma we associate with to form our identities. But you do need to be in possession of some tools.

7. Machine Learning/Data Mining Skills

This refers to both theoretical and practical skills. You don't want someone with no idea of how kernel methods function or what higher dimensionality is to be implementing Support Vector Machines and hoping they can logically interpret results. At the same time, the demand for someone who could explain these concepts ad nauseam but not be able to implement an SVM classifier is probably quite low. And then, obviously, learning implementations based on particular environments would be required.

As a particular exemplar, see this post on mastering machine learning in Python, which starts with the theoretical and moves toward the practical.

8. Big Data Processing Platforms: Hadoop, Spark, Flink, etc.

See skill #6 for a discussion on not putting all your stock in any one technology or platform, but instead treating them like the tools that they are. Then see this post for an overview of contemporary big data processing frameworks. The point is this: data is growing, and as a data scientist you have to understand that data processing frameworks are a part of the data science landscape; having an understanding of these frameworks is vital.

9. Structured Data (SQL)

Burtch was wise to point out, specifically, that there is a difference between structured and unstructured data skills, and that data scientists should (must?) be familiar with both. Structured data is synonymous with relational data, which is lorded over by the one query language to rule them all: SQL. There is abundant conflation of concepts here, but these days:

structured == relational == SQL

At the very least, it is expected that data scientists can write and execute non-trivial SQL scripts against stored data.

10. Unstructured Data (3-5 top NoSQL DBs)

There is much less... well, structure among the components of unstructured data storage and management. As such, different tools are required to store, retrieve, analyze, and otherwise process this data. The path to unstructured data storage and interaction is not as straightforward as it is for structured data, where relational database systems and SQL are the only real game in town. The NoSQL (I dislike the term, but it gets us where we need to go quickly) database, according to the internet's resident know-it-all, Wikipedia, "provides a mechanism for storage and retrieval of data which is modelled in means other than the tabular relations used in relational databases." Not very specific, but point taken.

Data scientists need to know how to manage unstructured data, and the options for doing so are many. Popular NoSQL database architectures include key-value stores, document stores, tuple stores, and wide column stores; each of these types have different approaches and philosophies, and the number of available implementations are seemingly endless (MongoDB, CouchDB, Cassandra, Druid, MemcacheDB...). The bottom line here is to know the terrain, study the architectures, and gain better-than-passing knowledge of one or two strong NoSQL database system implementations.

Additional Resources

Here are a few more resources to help in your pursuit of the above skills: