登录
首页精彩阅读数据科学家必须具备的10个技能
数据科学家必须具备的10个技能
2016-06-12
收藏


By Matthew Mayo, KDnuggets.
It has been a year and a half since Linda Burtch of Burtch Works wrote 9 Must-Have Skills You Need to Become a Data Scientist, a post which outlined analytical, computer science, and non-technical skills required for success in data science, along with some resources for gaining and improving these skills. While this post is still relevant and quite popular, I thought I would take a shot at updating it, taking into account the direction of data science developments over the past 18 months.

My approach is a bit different than Linda's, which was to distill the views of, and conversations with, a number of analytics professionals considering adapting their skills to the field of data science at the time; mine is based on observations of trends, content of articles, prevalence of ideas, and discussions with a number of individuals in various positions of career development in the field. Please take this as additional information to take under advisement, as opposed to any kind of definitive advice.

Non-Technical Skills(非技术能力)

1. Education(教育)

Burtch provides some numbers related to the educational level of data scientists, indicating that 88% of Data Scientists have, at minimum, a Master's degree. Burtch does not explicitly provide her source, but I can only assume it comes from her firm's extensive research, with which I am not going to outright contradict. What I will offer, instead, is that data science is an incredibly diverse field, with no real consensus as to what it even is. I'm sure people will disagree with that, but when I hear the term data scientist, I tend to think of the unicorn, and all that it entails, and then remember that they don't exist, and that actual data scientists play many diverse roles in organizations, with varying levels of business, technical, interpersonal, communication, and domain skills. If we recall that different roles such as machine learning scientists, data analysts, data engineers, Hadoop administrators, and analytics-focused MBAs often get wrapped up in with the definition, it's easy to determine that there would be many paths to data science. To be fair, Burtch's definition of what a Data Scientist is, and therefore what educational levels they have, could vary quite drastically from mine.

That said, there is likely much more variety of education levels held by thoseconsidering themselves data scientists. To that end, the 2015 Stack Overflow Developer Survey, which is composed of self-reporting data, provides the following, for example:

Granted, this is a single snapshot in time, and it would be foolish to draw conclusions based on this single piece of data. However, the takeaway is further evidence to support the idea that there is no one "correct" path to data science; folks come from academia, industry, computer science, statistics, physics, other hard sciences, engineering, architecture... and they hold PhDs, Master's degrees, undergraduate degrees, and, yes, some are even *gasp* self-trained (probably). Don't let anyone dissuade you from pursuing "data science," and don't let anyone tell you you have to do X to become one. Find out the data science niche you want to fill, and pursue training and education that will allow for it. And be realistic: you may aspire to Chief Scientist at DeepMind, but self-learning with MOOCs and a few textbooks likely won't do it. But that doesn't mean that self-learning with MOOCs and a few textbooks won't get you somewhere interesting in data science. If the anecdotes are to be trusted, it happens regularly.

2. Intellectual Curiosity(求知欲)

This point requires far less fleshing out. Simply put: if you don't have intellectual curiosity, data science ain't for you. Next.

3. Domain Knowledge/Business Acumen(领域知识/商业智慧)

Whether we're talking theoretical unicorns or something closer to the data science professional periphery, you really need some understanding of the domain you are working in to be useful, analytically speaking. Consider even a purely technical role: if you are developing algorithms, pipelines, or workflows for an organization, without a solid understanding of the fundamentals of the industry and the goals of the firm, you won't be able to appropriately leverage your technical abilities to make a difference in the long run. And let's face it:making a difference is what data science is all about.

4. Communication Skills(沟通技巧)

Again, this isn't difficult to understand. Data science persons need real communicate good blah blah.

Burtch summed up the reasons for this in her previous iteration of the post: The "data scientist must enable the business to make decisions by arming them with quantified insights, in addition to understanding the needs of their non-technical colleagues in order to wrangle the data appropriately." Boom.

5. Career Mapping/Goals(职业映射/目标)

This is related to skill #1, education and training. Let's again think of the unicorn; he or she could, in all their glory, fulfill any analytical or executive position at any company within their domain knowledge range. The true unicorn (henceforth, the Trunicorn) would also be guaranteed immense sums of money. But chances are you aren't a unicorn, and never will be (are there anyunicorns???), and so you need to plan out your career path and execute on that plan.

If you want to maintain a more technical role permanently, plan to keep those technical skills in tip-top shape. If you want to crossover into a role that involves more interaction with clients, then brush up on your communication and presentation skills. If you think your niche is devising and administering big data processing solutions, then get your Apache on, dammit! Good things don't come to those who wait; good things come to those who devise detailed plans of action rooted in reality, and then execute on said plans.

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.(大数据处理平台:Hadoop的,星火,弗林克等。)

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)(结构化数据(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)(非结构化数据(3-5顶部的NoSQL数据块))

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.

哈哈,如果看不下去英文文章,该文章的中文版会在接下来的公众号里呈现给大家,敬请期待!




数据分析咨询请扫描二维码

客服在线
立即咨询