I’ve been mulling over some things. I hope that by sharing them, it will spark some inspiration for others.
I think R needs a good, comprehensive and curated learning platform.
Ever since you-know-who did you-know-what and then the leadership proceeded to shoot themselves in both feet, and after running out of feet, shoot themselves wherever they could, I’ve sensed there’s a lack of a platform that helps beginners and more experienced programmers alike. A place to point beginners to and say – “Go there!”.
I’ll start by responding to some likely questions and then set out some principles of what I think will make a good platform.
What about DataQuest?
The most likely contender for a new R platform is DataQuest. I’ve been following them for a while, and why they aren’t already the go-to platform I’m not sure. Maybe they will be one day! The most common way I see DataQuest being referred to is by someone (including me) saying “try them, they seem good”. I suspect that twitter-prominent R users don’t have first hand experience of the platform and so don’t recommend them.
I’m speculating wildly here. Maybe the R community still feels pretty betrayed by platforms in general now. Many of the top instructors can’t get their content off other platforms and have to do a lot of work to not be associated with it. They’re maybe wary of recommending another platform. Maybe DataQuest could get a jumpstart by allowing content creators to pull their content from the platform if they wish. Maybe this is already the case? I’m not familiar with their terms.
Another reason might be purely down to their chosen path of explicity excluding video instruction. Many R programmers seem to be very keen on video if the TidyTuesday screencasts are anything to go by.
Overall DataQuest seem like they have good leadership and a sincere desire to build a good platform. I hope they crack this nut and even if they don’t, they seem to be doing ok :).
What about list_of_resources?
There’s a plethora of resource lists around. If the list is long enough, the list is grouped by topic.
These are of course great, but there are some shortcomings.
- Lists don’t come up in a google searches for “How to learn R” or “Data Science for beginners”. Or any other search term.
- It’s hard to know how good they are or whether they’ve been curated in any way.
- This isn’t suitable for beginners. It’ll be completely overwhelming for a newbie to look at a list and know where to start.
What about R4DS and the R4DS slack group?
I’ve recommended (and will keep doing so) the R4DS book and the loosely-associated Slack community. These form an important part of the learning ecosystem, and form part of what I envisage in a learning platform.
Thinking Bigger & Better
For many people, the resources I’ve listed above will be enough to get started, but we need to think more comprehensively if we want to introduce R, Data Science or even just Data Literacy to a much broader spectrum of people. The future (and present, I guess) has a lot of challenges. We need as many people as possible to be able to work with data.
Principles for my dream learning platform
I’ll make this list as comprehensive as possible, which might take a few updates as we go. If any of this resonates with you for your own work, please, go ahead and use it! Want to take the whole lot and create my dream platform? Please do!
Some of these are principles, some are plans, some are just a train of thought, all mixed up. Bear with me :).
- Governance structure. This could go in any one of multiple directions. I think the most likely would be a B-corp or similar and/or a really open, community-driven setup. It does need strong leadership and accountability to users and creators alike. This choice may seem trivial but is the absolute #1 consideration. All else will flow from this chosen setup.
- Curation of the many free, excellent resources that are out there. Beginners need a place that says “Start here” where they won’t get overwhelmed and that many people are happy to point them to.
- Where necessary, replace the existing free content with that created specially for the platform. This will naturally follow as courses and learning paths are developed by skilled professionals. They’ll know how a course really should flow from start to end.
- Maintain integrity so that creators/ instructors are happy to be associated with it.
- There must be learning paths. I think that guided instruction is the biggest draw of existing platforms.
- Have course progression tracking and other tools for helping users assess their progress.
- Topical lessons are great for experienced professionals. Egghead.io is a great inspiration for content that’s valuable to those who have moved beyond intro tutorials.
- Topics and learning paths should reflect that people don’t exist solely for work. Special attention on creation of generative art, for example, would be a welcome addition to the platform. This could be the hook that some need to take in interest in learning R.
- Real-world skill-development is great. I’m not sure if they still do it, but FreeCodeCamp certification used to have the ability to build websites for non-profits. I don’t think analysis needs to be confined to non-profits only. A consulting arm of the platform (where pro’s mentor beginners) in tightly-scoped analysis projects could be a fun and valuable projects for all involved.
- The platform would be R-centric, but not exclusively for R-content. Some content needs to be there for dealing with spreadsheets, databases, some super-duper Python packages, statistics, job hunting and the like. This will be tricky to pull off but I think is 100% the way to go.
- Creators should be able to remove their work at any time. This holds true whether the work is publicly available or not. Even if content is created specifically for the platform, creators should always have control of their work.
- Revenue sources are absolutely necessary. A platform that’s in a healthy financial position has a lot of room to manoeuvre.
- There should be plenty of free content and paid content. I think we can find a good balance of the two.
- Platform content is designated either as revenue sharing or not.
- Revenue sharing content could be anything that forms part of learning paths or key topical content. Non-revenue sharing content might be anything that is publicly available, free and and falls under “further reading” lists and the like.
- The platform should be able to pay content creators for content. This enables content creators to pay their bills, and is (if I understand it correctly) a really key component in promoting diversity in content creation, which makes sense. Not everyone can afford to create content for free (although content donation is always welcome of course!). Perhaps there’s a setup that content creators are always paid, but if a creator wants to donate the funds back to the platform, they can.
- The platform can be a launchpad for content creators to do their own thing.
- Money is needed because good course creation is very valuable skill. You won’t be able to consistently create the syllabi, organise creators, hire editors etc without paying people to do so.
- If a content creator can’t be paid for whatever reason (we can’t get a hold of them, for example), their allocated revenue share subsidises any free content or other forms of social good that the platform provides.
- There’s content available in multiple formats. For some people, blog posts work. For others, video. Even audio has it’s place, as shown by the wonderful TidyPod podcast.
- The platform has content in multiple languages. I’ve got a strong feeling that somewhere out there, someone can explain Git to me in a way that just clicks, except that I don’t speak Mandarin or Hindi and they don’t speak English :/. The same content translated back and forth in multiple languages would be really cool.
Some of this vision might be down to my own
naivety child-like sense of wonder. In 6 months or 6 years I may well cringe at some of what I’ve written here. What I hope is that this a spark of what will become something really amazing, somewhere, by someone :).
Of course we don’t need just one platform – many platforms can co-exist, each taking different angles to things. I really hope this happens!
If I had the time/energy, this is how I would start building this out.
Have the governing terms of reference, principles and key decisions available in a publicly viewable document. Invite some key collaborators.
Build the whole site using WordPress. It’s got a tonne of functionality and you can more easily get people working on the site without first needing to learn how to code.
Build out a core learning path as a proof of concept.
Have a publicly visible road map available in Trello. Apart from my own love affair with Kanban boards lately, I think it will be a good draw for getting people involved by showing what steps are coming up and where help and specific skills are needed.
Seek out volunteer curators to help build out the core learning paths and topic lessons into the v0.1 of the platform. Keep everything tightly scoped and be pretty strict about this.
Project manage and collaborate using Basecamp. I’ve always wanted to try it out and we’ll need a sane way to keep the development managed outside of my already cluttered inbox. Also, the paid version is a flat fee, no matter how many people join the project. I’ve like to figure out a way of making the projects and discussions publicly visible too, although that might be too much strain/pressure for those collaborating. I’d need to feel that one out a bit.
When it comes to funding, figure out what the first year or so would cost. I don’t think it will be crazy amounts of cash. Most costs would be realted to any specific WordPress plugins and if there are a lot of collaborators, then the Basecamp subscription. I would directly fund a large chunk of this myself and seek the rest from community donations. Maybe the R-consortium might put in some funding if the proof of concept works and there’s a high level of community interest.
So that’s a wrap on this post. If you’d like to get in touch, you can find me on Twitter. My DMs are open :).