import {ms, msStyle} from "/assets/js/ms-plot.js"
viewof goal = Inputs.radio(["π Learn a concept", "ποΈ Find a dataset", "π Copy a real project", "π Stay current", "π Get unstuck"], {value: "π Copy a real project", label: "I want to"})
viewof level = Inputs.radio(["π± Beginner", "πΏ Intermediate", "π³ Advanced"], {value: "π± Beginner", label: "My level"})Where to Find Data Science Resources: A Practical Map π§
Resources
Learning
Projects
A guided map of the best free places to learn data science, find datasets, copy real projects and industry use cases, and stay current, with a resource finder and a learning-loop simulation.
The internet has more data science material than anyone could read in a lifetime. The problem is not finding something; it is finding the right thing for where you are now. This page is a map: what kind of resource to use for which goal, the best free places for each, and a simple loop that turns reading into real skill. π
Tipπ― What you will get
- A map of six resource types and the best free sources for each
- A resource finder: pick your goal and level, get a short list
- Where to find real projects and industry use cases to copy and adapt
- The learn β build β share loop, and a simulation of why projects beat passive reading
Noteπ The Resources hub
π§ Overview: where to find resources Β· π€οΈ Learning paths Β· π Cheat sheets Β· π Glossary Β· ποΈ 20 open data sources Β· π Paper notes (coming soon)
πΊοΈ The six kinds of resources
| Type | Use it to | Best free starting points | |
|---|---|---|---|
| π | Courses and books | Learn concepts in order | Kaggle Learn, fast.ai, ISLP book, Elements of Statistical Learning |
| ποΈ | Datasets | Practise on real data | Kaggle Datasets, UCI repository, Hugging Face, see our 20 open data sources |
| π | Projects and use cases | See how real problems are framed and solved | Kaggle competitions and notebooks, company engineering blogs, our learning paths |
| π» | Code and curated lists | Reuse working code | awesome-datascience, library docs and example galleries |
| π | Papers | Understand state of the art | Hugging Face Trending Papers (the old Papers with Code address now points here), arXiv |
| π§Ύ | Quick references | Look things up fast | Our cheat sheets and glossary |
Noteπ Note
The address paperswithcode.com now shows Hugging Faceβs Trending Papers page, which lists recent papers with their GitHub and arXiv links (Papers with Code, Hugging Face). Older tutorials that link to Papers with Code leaderboards may be out of date.
π Resource finder
Tell us what you want to do and how far along you are.
π Where to find real projects and use cases
Courses teach tools. Use cases teach judgment: how a business problem becomes a prediction, which metric matters and what βgood enoughβ looks like. Four places are worth your time:
- π Kaggle competitions and notebooks. Each competition starts with a business framing, a dataset and a metric. The top public notebooks show many solutions to the same problem.
- π’ Company engineering blogs. Netflix, Uber, Airbnb, Spotify, DoorDash and others describe how they built recommendation, pricing, forecasting and fraud systems. Read them for the problem framing and architecture, not the code.
- π§° Curated GitHub lists. awesome-datascience collects learning resources, tools, datasets and communities in one README.
- π€οΈ Structured paths. Our learning paths turn eight industry problems (churn, fraud, forecasting, maintenance and more) into step-by-step projects with open datasets.
Importantβ οΈ Copy, then change one thing
Re-running someone elseβs notebook teaches little. Rebuild it from scratch, then change one thing: a new dataset, a new metric, a new deployment target. That change is where the learning happens.
π The learning loop
flowchart LR A["π Learn<br/>one concept"] --> B["ποΈ Practise<br/>on a dataset"] B --> C["ποΈ Build<br/>a small project"] C --> D["π£ Share<br/>notebook, blog, repo"] D --> E["π¬ Feedback<br/>reviews, questions"] E --> A
Why does building matter so much? The simulation below follows two learners for 24 weeks. Both study 6 hours a week. Learner A only reads and watches. Learner B spends half the time on small projects. Press βΆ Play.
Show the code
import numpy as np, plotly.graph_objects as go
from ms_charts import COLORS, PLOTLY_CONFIG
rng = np.random.default_rng(1)
weeks = np.arange(0, 25)
def learner(project_share, forget):
s, out = 5.0, []
for w in weeks:
out.append(s)
gain = 6 * (1 - project_share) * 0.9 + 6 * project_share * 1.6 * (1 + s / 60)
s = s + gain * (1 - s / 100) - forget * s + rng.normal(0, 0.6)
return np.array(out)
A = learner(0.0, 0.035)
B = learner(0.5, 0.012)
def frame(k):
return [go.Scatter(x=weeks[:k + 1], y=A[:k + 1], name="A: reading only", line=dict(color=COLORS["rose"], width=3.5)),
go.Scatter(x=weeks[:k + 1], y=B[:k + 1], name="B: half projects", line=dict(color=COLORS["teal"], width=3.5))]
fig = go.Figure(data=frame(0), frames=[go.Frame(data=frame(k), name=str(k)) for k in weeks])
fig.update_layout(
height=400, xaxis=dict(range=[0, 24], title="Week"), yaxis=dict(range=[0, 100], title="Skill score (0β100, simulated)"),
legend=dict(orientation="h", y=1.14),
updatemenus=[dict(type="buttons", x=0, y=-0.2, xanchor="left", showactive=False,
buttons=[dict(label="βΆ Play", method="animate", args=[None, dict(frame=dict(duration=180, redraw=False), fromcurrent=True, transition=dict(duration=120))]),
dict(label="βΈ Pause", method="animate", args=[[None], dict(mode="immediate", frame=dict(duration=0))])])])
fig.show(config=PLOTLY_CONFIG)After 24 weeks the simulated project learner scores 89 vs 56 for the reader. The numbers are made up, but the shape matches common experience: knowledge you use sticks.
ποΈ A sample week
A realistic plan for someone with a job, at 6 hours a week:
Show the code
parts = ["π Learn a concept", "ποΈ Explore a dataset", "ποΈ Build the project", "π£ Write it up", "π¬ Read others' work"]
hours = [1.5, 1.0, 2.0, 1.0, 0.5]
fig = go.Figure(go.Bar(x=hours, y=parts, orientation="h", text=[f"{h} h" for h in hours], textposition="outside",
marker_color=[COLORS["indigo"], COLORS["violet"], COLORS["teal"], COLORS["amber"], COLORS["slate"]]))
fig.update_layout(height=300, xaxis=dict(title="Hours", range=[0, 2.6]), yaxis=dict(autorange="reversed"), showlegend=False)
fig.show(config=PLOTLY_CONFIG)β A quick checklist for judging any resource
| Question | Good sign π | Warning sign π |
|---|---|---|
| Is it current? | Updated in the last year or two, recent library versions | Old APIs, deprecated functions |
| Does it show code and reasoning? | Explains why each step is done | Copy-paste code only |
| Is the data real or realistic? | Messy data, missing values handled | Perfectly clean toy data only |
| Does it measure results honestly? | Hold-out test set, clear metric | Accuracy on training data |
| Can you run it? | Notebook or repo you can open | Screenshots only |
π§© Summary
- Use the right resource type for the goal: courses for concepts, datasets for practice, use cases for judgment.
- Start with free, high-quality sources: Kaggle, UCI, ISLP, fast.ai, Hugging Face, awesome lists.
- Build, share, get feedback, and repeat. Projects compound; passive reading fades.
- Continue with learning paths π€οΈ, cheat sheets π, the glossary π and 20 open data sources ποΈ.