Learning resources
Learning resources
Documentation, books and courses worth your time, grouped by topic. Most are free, and official documentation comes first wherever it exists.
These are links to external sites, not sponsored or affiliate links. Each description says what the resource is, so you can judge whether it fits what you are learning.
Foundations
-
CS50’s Introduction to Computer Science
An introductory computer science course covering C, Python, SQL, data structures, memory and the web, with problem sets.
-
Introduction to Algorithms (6.006)
MIT’s undergraduate algorithms course: lecture videos, notes and problem sets on sorting, hashing, graphs and dynamic programming.
-
Exercism
Small programming exercises in dozens of languages, with automated tests and optional feedback from mentors.
Software Engineering
Software Engineering articles-
Pro Git
The Git book, free online: from the basics of commits and branches to how Git stores data internally.
-
MDN Web Docs
Reference documentation and guides for HTML, CSS, JavaScript and web APIs.
-
The Pragmatic Programmer, 20th Anniversary Edition
A book of practical habits for working programmers: managing change, debugging, automation and taking responsibility for code.
Backend Development
-
PostgreSQL Documentation
The official manual, including a SQL tutorial, indexes, transactions and query planning.
-
Node.js Documentation
The API reference for Node.js: modules, the file system, streams, HTTP and the event loop.
-
HTTP on MDN
How HTTP works: requests and responses, methods, status codes, headers, caching and cookies.
System Design
-
Designing Data-Intensive Applications
A book on the ideas behind data systems: storage engines, replication, partitioning, transactions and stream processing.
-
The System Design Primer
An open-source collection of notes on scalability, caching, load balancing and databases, with worked design exercises.
Artificial Intelligence
-
Machine Learning Crash Course
A self-paced introduction to machine learning with lessons, interactive visualisations and exercises.
-
Practical Deep Learning for Coders
A code-first deep learning course that starts by training working models and explains the theory along the way.
Data Science
-
The Python Tutorial
The official introduction to Python, from data structures and modules to errors and classes.
-
pandas: Getting started
Installation and introductory tutorials for working with tabular data in pandas.
-
scikit-learn User Guide
Explanations of the main machine-learning methods in scikit-learn, with model evaluation and preprocessing.
Environmental Technology
-
Central Pollution Control Board
India’s national pollution control authority: environmental standards, monitoring data and guidelines.
-
Ministry of Environment, Forest and Climate Change
Environmental rules, notifications and policy documents published by the Government of India.