Index Ai Academy
Free courses · 103 lessons · about 77.5 hours

Free Python developer course

Go from your first line of code to working as a Python developer: projects, testing, data, databases, web apps and APIs, all in your browser.

Create a free account Try the first lesson

Already have an account? Sign in

What you'll be able to do

  • Write Python fluently, from loops and functions to classes, generators, decorators and context managers
  • Plan and build complete programs: games, a flashcard trainer, a price alert bot and command-line tools
  • Test your code with pytest, debug it methodically, and keep it readable with types, linters and logging
  • Analyze data with pandas and charts, and store it in SQL databases, through raw queries and an ORM
  • Build web apps with Flask and APIs with FastAPI, with forms, logins and validation done safely
  • Choose data structures and algorithms by their cost, and explain the choice in an interview
  • Package, containerize and ship your code, and work on a team through git, reviews and clear writing

Who it's for

For anyone who wants a job writing Python, starting from nothing more than arithmetic. Every lesson runs in your browser. The basics are open to everyone, and a free account opens the rest.

Before you start

Nothing. It starts from your first line of code.

The 103 lessons

38 are free with no account, and a free account opens the rest.

  1. Your first program FreeRun Python, print output, and read an error message without panicking.
  2. Variables FreeGive values names so your program can remember and reuse them.
  3. Numbers and arithmetic FreeIntegers, decimals, rounding, and the math behind every metric.
  4. Strings and f-strings FreeWork with text: join it, slice it, clean it, and format it.
  5. Decisions with if/else FreeCompare values and choose what happens next.
  6. Lists FreeKeep many values in order, then index, slice and change them.
  7. Loops FreeRepeat work over every item without copy-pasting code.
  8. Dictionaries FreeLook values up by name: the shape of almost all real-world data.
  9. Functions FreePackage steps into reusable, testable pieces with inputs and outputs.
  10. While loops FreeRepeat until something changes: goals reached, answers valid, tasks done.
  11. Finding bugs when nothing crashes FreeA method for wrong answers: expected against actual, reproduce, look inside, fix one thing.
  12. Functions as values FreeStore functions, pass them in with key=, and accept any number of arguments.
  13. Comprehensions FreeFilter and transform a whole collection in one readable line.
  14. Sets: unique items and fast lookups FreeDuplicates, fast membership, set operations and comparing two lists.
  15. Errors and exceptions FreeRead tracebacks, and handle the failures you expect.
  16. Modules and imports FreeUse Python's standard library instead of reinventing it.
  17. Classes and objects FreeBundle data with the functions that work on it.
  18. Inheritance and class attributes FreeBuild classes on other classes, and share values across every object.
  19. Regular expressions FreeFind, check, extract and clean text patterns with the re module.
  20. Dates, times and time zones Freedatetime, timedelta, formats, time zones and the traps when clocks change.
  21. JSON FreeThe text format APIs and LLMs use to exchange structured data.
  22. Files and CSV data FreeRead and write files, and turn a spreadsheet export into Python data.
  23. Project: a word-guessing gamePlan a game with a flowchart, then build it from tested functions and one input loop.
  24. Project: a card game of 21Turn written rules into functions, and make randomness testable.
  25. Project: a drinks kioskA program with state and commands, built with functions, then refactored into classes.
  26. Project: a flashcard trainerCards from a file, review boxes, and progress saved between runs.
  27. Project: Pack Train, an arcade gameA grid game on the turtle canvas: game state as classes, a timer loop, key handlers and a saved best score.
  28. The terminal FreeNavigate folders and run programs by typing commands.
  29. Version control with git FreeSave snapshots of your work, undo mistakes, and share code.
  30. Packages and environments FreeInstall libraries with pip and keep projects isolated with venv.
  31. Python on your own computer FreeInstall Python and VS Code, make a virtual environment, then run, debug and test a project.
  32. NumPy arrays FreeDo math on whole columns at once, the foundation of every ML library.
  33. DataFrames with pandas FreeLoad a table, pick rows and columns, and summarize groups in a few lines.
  34. Charts with Matplotlib FreeLine, bar, scatter, histogram and box plots, labeled and honest.
  35. Project: images are arrays FreeGray, crop, brighten, watermark and palette tools built on NumPy and Pillow.
  36. How APIs work FreeRequests, responses, methods, status codes and headers.
  37. Calling APIs from Python FreeSend requests, read JSON responses, and handle failures.
  38. API keys and secrets FreeAuthenticate safely and keep keys out of your code.
  39. Web pages: HTML and CSS FreeRead and write HTML, what forms send, CSS selectors and escaping.
  40. Scraping web pages FreeBeautiful Soup, one record per item, pagination and robots.txt.
  41. Sending email and text messages FreeEmailMessage, smtplib, mail merge and an SMS API, with secrets kept out of code.
  42. Testing your codeAutomated tests that prove code works and keep it working.
  43. Debugging systematicallyFind any bug with a method instead of guesswork.
  44. Readable code and refactoringWrite code people can understand, and improve it safely.
  45. Types and data modelingType hints, dataclasses and checking data at the edges of a program.
  46. Classes in depthProperties, alternative constructors, abstract base classes and tuned dataclasses.
  47. Make your classes feel built inSpecial methods for printing, equality, ordering, arithmetic and containers.
  48. Iterators and generatorsThe iteration protocol, yield, lazy pipelines and itertools, in small memory.
  49. Context managersSetup and cleanup that always run: with, contextlib, transactions and atomic writes.
  50. Closures and decoratorsFunctions that remember, wrap and extend other functions.
  51. Testing with pytestFixtures, parametrize, mocks, temporary files and coverage.
  52. Exceptions in depthError hierarchies, chaining, notes, exception groups and warnings.
  53. Pattern matchingmatch and case: literal, sequence, mapping and class patterns with guards.
  54. Text, bytes and encodingsstr and bytes, UTF-8, decoding errors, normalization and base64.
  55. Typing in depthGenerics, protocols, TypedDict, Literal and narrowing, checked by mypy.
  56. Code style and toolsPEP 8, formatters, linters and type checkers, and how they fit together.
  57. LoggingLoggers, levels, handlers and configuration, without leaking secrets.
  58. Command-line programsargparse subcommands, stdin, exit codes and testable main functions.
  59. Projects, packaging and CILay out a real project, pin its dependencies and test it on every push.
  60. Packaging your codepyproject.toml, the src layout, versions, entry points and wheels.
  61. Project: a price-watch alert botAn API client, alert rules, digest emails and a state file, so reruns never repeat.
  62. How computers run code FreeBits, memory, the processor, and what really happens when Python runs.
  63. Algorithm complexityCount the work code does, and see why some programs stop scaling.
  64. Core data structuresArrays, linked lists, stacks, queues and the hash table behind every dict.
  65. Recursion, trees and graphsFunctions that call themselves, and the shapes most real data takes.
  66. Searching, sorting and dynamic programmingThe classic algorithms, and the ideas behind them.
  67. Project: an unbeatable game opponentGame state and rules, minimax with a cache, and an exhaustive test that proves it never loses.
  68. Performance and profilingMeasure before you optimize, then fix the part that matters.
  69. Concurrency and asyncDo many things at once: processes, threads and the event loop.
  70. Databases and SQLStore, query and join data with the language every database speaks.
  71. Databases with an ORMSQLAlchemy models, sessions, relationships, transactions and the N+1 problem.
  72. Secure codingInjection, escaping, secrets and passwords: the mistakes attackers look for.
  73. Software designModules, interfaces and dependencies that keep big programs changeable.
  74. Capstone: a command-line appDesign, build and test a complete program with a database.
  75. HTTP from the wire up FreeWhat really travels between client and server: bytes, headers and bodies.
  76. API stylesREST, RPC, GraphQL, gRPC and streaming: what each is for.
  77. Build an API server from scratchRouting, handlers and responses, with no framework.
  78. A web framework, from the insideDecorators, middleware and error handling: how Flask and FastAPI work.
  79. Designing a REST APIResources, methods, status codes, errors and pagination done well.
  80. Validating requests with schemasCheck every request against a JSON Schema and say exactly what's wrong.
  81. A database-backed APICRUD endpoints on SQLite, with safe concurrent updates.
  82. Authentication and authorizationAPI keys, sessions, tokens and OAuth: who's calling, and what may they do?
  83. Rate limits, retries and idempotencyKeep an API up under load and make retries safe.
  84. Webhooks and eventsPush events to other systems: signed, retried and deduplicated.
  85. Documenting APIs with OpenAPIA machine-readable contract for docs, SDKs and AI tools.
  86. Running APIs in productionVersioning, CORS, caching, request ids and health checks.
  87. Capstone: a complete APIAn authenticated, validated, paginated API with tests.
  88. Web pages with FlaskRoutes, Jinja templates, a shared layout, links and error pages, tested with the test client.
  89. Forms and redirectsGET and POST, validation messages, post/redirect/get, flash messages and CSRF tokens.
  90. Accounts and loginsPassword hashing with bcrypt, sessions, pages that need a login, and safe logout.
  91. Project: a trail log web appA multi-page app with a database, accounts, forms and tests.
  92. APIs with FastAPITyped routes, pydantic models, automatic validation and docs, tested with httpx.
  93. Async HTTP clientsMany requests at once with asyncio and httpx: limits, timeouts and retries.
  94. Cleaning messy dataDuplicates, junk rows, text numbers, mixed dates and missing values that mean something.
  95. Grouping, pivoting and reshapingNamed aggregation, pivot tables, transform, running totals and groups too small to rank.
  96. Combining tables with mergeJoin on keys safely, stack tables, and divide by the right denominator.
  97. Time series with pandasResample, smooth, compare across years, and test whether one series leads another.
  98. Containers and deploymentPackage an app as an image, configure it with the environment, and roll out safely.
  99. CI/CD pipelinesTest every change automatically, and ship with gates, flags and rollbacks.
  100. Git for teamsBranches, pull requests, rebasing and how a three-way merge finds conflicts.
  101. Code reviewWhat to look for, how to give and take feedback, and automating the routine checks.
  102. Writing for engineersREADMEs, design docs, commit messages and bug reports people can act on.
  103. Interviews and your portfolioShow your work, and solve interview problems the way professionals do.

When you finish

Finish every lesson, or show you know it in the placement test, and you earn a certificate of completion, "Python developer course", with its own link you can share or add to LinkedIn.

Questions

Is it really free?
Yes. There's nothing to pay, here or anywhere in the academy. A free account saves your progress and issues your certificate.
Do I need to install anything?
No. The Python in these lessons runs in your browser.
How long does it take?
About 77.5 hours in all, at your own pace. Your progress stays where you left it.
What does the certificate show?
That your account recorded every lesson as finished or known. It's a certificate of completion from Index Ai Academy, not an accredited qualification.

Start the course

A free account saves your progress across devices and issues your certificate when you finish.

Create a free account