Start Here

Why Python, Why Coding

Why Python, And Why Coding At All

Two fair questions before you start.

If you are not a coder, why is this programme teaching coding-based agents? And if you already code, why Python?

Why coding, when no-code exists?

Open up any ready-made coding agent and look inside. What is in there?

  • A room full of people typing the answers back
  • A big drag-and-drop workflow
  • Source code

It is the third one. Obviously.

Every no-code platform was itself built with code. Someone wrote the software, made it easy for you, and now charges you for it.

No-code is genuinely useful — quick, and often the right answer for small automations. But it stops at the ceiling its makers built.

If you want to build something for an enterprise, something you could sell, something that is yours rather than rented — you end up in code.

But you said I do not need to know coding

Both are true.

You need coding-based agents. You do not need to be a coder.

That is what vibe coding changed. There are fourteen-year-olds shipping real applications who never learned a programming language.

So, honestly:

  • we build with code, because that is where the power is
  • you do not have to type that code
  • you do have to understand enough to say what you want and check what came back

That last line is what this tutorial is for.

Why Python?

First, a surprise: any language can build an AI agent. Java can. C# can. C can. In principle, assembly on a microcontroller.

So the choice is not technical. It is ecosystem.

  • the widest range of frameworks
  • updates land in Python first — LangChain, LangGraph, CrewAI and Google ADK all ship Python before anything else
  • the examples and answers you will search for are in Python

By the TIOBE index it is the most popular language in the world.

This is not a personal preference. Most of a career spent in Java, then JavaScript, then C#, then C — and the recommendation is still Python, because the industry settled this one.

If you already code

Learn it in Python anyway, then take your learnings back to your own language.

The concepts transfer completely. What you are really learning is how agents work.

Python is not hard. If you already program, you will pick it up in an evening. Go to Coming To Python From Java, C# or C++ — it is a translation table, and the rest becomes skimming.

If you have never coded

You are in the right place, and you are not behind.

Start with Your First 30 Minutes. Python running in a browser tab, nothing installed, in about fifteen.

Just enough Python

Here is the principle behind this whole resource.

You could spend three months on Python. Courses exist that will happily take three months before you build anything. That is the wrong order.

The goal is to build agents. It is good to master Python; it is better to ship the thing.

About 20% of Python does 80% of the work in agent code. That 20% is what this covers. A week, not three months.

A story. Four years of an engineering degree — then a training programme that taught C, Java, SQL and Unix properly in two and a half months. The short one was more useful.

There was also a Java textbook the size of a phone directory. Never finished, and that was the right call. Anyone still reading it would still be reading it.

Do not waste time. Focus on what is needed and keep moving.

What to actually do

Six pages, in order:

That is enough to start. You do not need async Python or the agent sections yet.

Everything else here is for when you hit it — not to read front to back.

Try It Yourself

Copy this into a new Colab notebook and run it. Nothing to install.

example.py
1# By the end of this tutorial, every line below will be obvious.
2# Run it now anyway — it works, and it is a real agent tool.
3
4def get_ticket(ticket_id: int) -> str:
5 """Fetch an incident ticket by its id."""
6 tickets = {
7 4471: "P2 - network - database unreachable from app servers",
8 4472: "P3 - reporting - nightly export ran late",
9 }
10 return tickets.get(ticket_id, f"No ticket {ticket_id}")
11
12
13# A framework reads three things from that function:
14print("name :", get_ticket.__name__)
15print("description :", get_ticket.__doc__)
16print("parameters :", get_ticket.__annotations__)
17
18print()
19print(get_ticket(4471))
20print(get_ticket(9999))
21
22# That is all a "tool" is. A function, described well enough
23# for a model to know when to call it.