The Open Source Data Science Masters
github.com
github.com
For example, the words "validation" (as in cross validation) and "overfitting" aren't mentioned anywhere on that page, and yet things like data scraping are mentioned multiple times.
With all due respect, I can find lots of people to do scraping, but it is much harder to find someone to explain a good strategy for cross validation on time series data (for example).
And yes, "data scientist" is a vague term that can mean pretty much anything.
Having said that, if you did everything on this list you'd be a pretty good data scientist.
(I run a data science team, and I'm involved in building a data science competency framework so it's something I think about a fair bit)
As someone who hires both, I can guarantee this is incorrect. Well, maybe hiring "aspiring" data scientists is ok, but an aspirations will get me models that do exactly the wrong thing. So that isn't useful.
Put that first, and it would be a big improvement. Would be better if it wasn't in Octave though!
But there is a time cost to learning. For example, suppose a Masters degree takes two years, does the author have an estimate of how long it would take to complete her list?
And since the list is a little old (in terms of the rate at which this field is progressing), I would add Apache Spark to the list. I watched a video recently about how Scala took over the big data world (probably not true) [1], but the presenter made an interesting point about how Spark subsumes a lot of different things (streaming, machine learning, built in support for SQL) and it is good enough at those things even if not the best tool. Not surprisingly, that actually makes it a good candidate for adoption in the enterprise.
And then add the recent availability of things like the Databricks Community Edition (and similar offerings from competitors), and I could also make the case that you can start from a completely different entry point - learn Spark first, and then go deeper based on what you are interested in. But most of all, using a platform like Databricks takes away a major pain point - the often painful process of setting things up to start your work. [2]
My last point is not aimed at this particular resource, but just a general feeling I have when I see lists which incur significant time costs for the readers to fully pursue. I would like to see in these lists a brief statement about some popular things which were still omitted and why - simply because that gives some added confidence about the effort that went into the curation process.
[1]https://www.youtube.com/watch?v=AHB6aJyhDSQ&t=10m30s
[2]I am not associated in any way with Databricks. Also, obviously Databricks is a commercial entity, so in some sense you are not just within the "all free and open" domain.
The problem with seeing Spark as your one tool for everything is that's only true if it's trivial to integrate your code with Spark. Viz tools like Plotly/Bokeh don't integrate well with Databricks' notebook, Deep Learning tools are not really supported yet unless you're running your own clusters and running special libraries to wire thing together.
I think Spark is a good workhorse for big data; it can do repetitive things well at large scale, it's less good when you want to use more niche tools since most of the Data Science community is not focussed on Spark. PySpark exists and will probably be good enough, but only if your data fits into memory in a single machine anyway.
And if you're not dealing with big data, Spark is overkill. It's usually simpler to just get a box with more RAM.
I think you mean Spark? I use Spark heavily at work and know little Scala (although I do have an engineering team who do work in it sometimes).
I would add Apache Spark to the list. I watched a video recently about how Scala took over the big data world (probably not true) [1], but the presenter made an interesting point about how Spark subsumes a lot of different things (streaming, machine learning, built in support for SQL) and it is good enough at those things even if not the best tool. Not surprisingly, that actually makes it a good candidate for adoption in the enterprise.
So Spark is great, but it isn't the only thing. For example, it does let people use Python and R on the same platform pretty easily, and with the potential for good performance.
However, you really need to know what you are doing to get the best of it (what a surprise, hey!). For example, Databricks likes to show how Dataframes/Datasets give huge performance advantages over the old RDD programming model.
This is true, but you need to understand why to make sure you see the same benefits. Basically, there are numerous primitive functions than have been implemented as native operations of the Dataframe classes, and if you use them they perform well. If however you want to use Python UDFs, then you won't.
It's the one thing that brings a unifying umbrella to all modes of reasoning under uncertainty. https://probmods.org/ and http://forestdb.org/ seem to be the best resources for this at the moment.
Besides, I dislike Data Science which seems to be a new buzzword. Data Engineering would be more acceptable, as I think people working in companies are building stuff rather than developing new theories. But I don't like it that much.
The problem is that it is entirely possibly to build perfectly good models without ever touching anything Bayesian (excluding naive-Bayes classifiers perhaps!), and then adding Bayesian techniques will rarely improve the accuracy in anyway.
But I'm happy to admit my understanding of Bayesian techniques is incomplete. It's something I'm working on (https://probmods.org/ is great), but I just haven't found anywhere to use it in anger yet.
So with frequentist statistics, it is really easy to reason about what should be the correct estimator (it is almost always the obvious one). For example, with functional time series (where each data point is a function and not a real value), then it is straight forward to find an MLE - it is just the average function. But defining a prior on the space of twice differentiable functions isn't as easy.
From what we know about human memory the practice of cramming a topic for 3 months is not helpful and just the result of resource costs.