4. Free courses, videos and practice
Courses (free to learn; certificates sometimes paid)
| Course |
Provider |
Good for |
| CS50x — Introduction to Computer Science |
Harvard (edX / cs50.harvard.edu) |
strong programming foundations |
| CS50P — Introduction to Programming with Python |
Harvard |
Python properly |
| CS50 SQL and CS50 AI |
Harvard |
databases; AI concepts with Python |
| Kaggle Learn (Python, Pandas, Intro/Advanced SQL, Data Visualization, Intro/Intermediate ML, Feature Engineering) |
Kaggle |
short, hands-on, in the browser |
| Khan Academy — Statistics and Probability; Algebra, Precalculus, Calculus |
Khan Academy |
maths and statistics fundamentals; videos available in several languages |
| MIT OpenCourseWare — 18.06 Linear Algebra (Gilbert Strang); 18.05 Introduction to Probability and Statistics; 6.0001 Introduction to Computer Science and Programming in Python |
MIT |
university-level courses with videos and problem sets |
| Machine Learning Specialization |
Andrew Ng, DeepLearning.AI / Stanford (Coursera) |
ML fundamentals; financial aid available on Coursera |
| Practical Deep Learning for Coders |
fast.ai |
deep learning, top-down and practical |
| Elements of AI |
University of Helsinki / MinnaLearn |
AI concepts for everyone, no maths needed |
| Google Machine Learning Crash Course |
Google |
ML concepts with exercises |
| freeCodeCamp — Data Analysis with Python; Relational Databases |
freeCodeCamp |
project-based certificates |
| Software Carpentry / Data Carpentry |
The Carpentries |
Git, shell, Python, data organisation |
Video channels
| Channel |
For |
| 3Blue1Brown |
Essence of Linear Algebra, Essence of Calculus, neural networks — beautiful visual intuition |
| StatQuest with Josh Starmer |
statistics and ML methods explained clearly, one idea per video |
| Khan Academy |
step-by-step maths and statistics |
| CS50 |
lectures and short videos |
| freeCodeCamp |
long tutorials on Python, SQL, pandas |
| Platform |
Practise |
| Kaggle |
datasets, notebooks, beginner competitions ("Titanic", "House Prices"), discussion |
| SQLBolt, SQLZoo, LeetCode (database problems), HackerRank |
SQL and Python exercises with instant feedback |
| Project Euler |
maths + programming puzzles |
| DrivenData, Zindi |
data-for-social-good competitions (read the data rules for each) |
| Exercism |
programming exercises with mentoring |
| OpenStreetMap / HOT Tasking Manager |
real mapping contributions in Nepal |
Competitions: how to use them well
Competitions teach a lot — evaluation, validation, feature engineering — but leaderboards reward tiny gains that rarely
matter in practice. Use them to learn: read top solutions after the competition, write up what you learned, and remember
that real projects start with a question and a client, not a fixed dataset and a metric.
Learning on a slow or expensive connection
- Download videos and lecture notes when you have good internet (many courses allow this); read PDFs offline.
- Kaggle notebooks and Colab run in the cloud — your computer can be old.
- JupyterLite and local Python run offline once installed.
- Prefer text tutorials and books to videos when data is costly.
- Study groups can share downloads (respecting licences).