the method of characteristics
Solving a partial differential equation feels hard because the unknown changes in several directions at once. The method of characteristics is a beautiful trick that, for first-order equations, sidesteps the difficulty: it finds special paths through the domain — characteristic curves — along which the PDE becomes an ordinary differential equation. You then solve ODEs, which you already know how to do, and weave their answers back together.
Here is the idea on u_t + c u_x = 0. Suppose you walk along the curve x(t) chosen so that dx/dt = c. Then the value of u that you see as you walk, call it U(t) = u(x(t), t), changes at rate dU/dt = u_t + (dx/dt) u_x = u_t + c u_x, which is exactly zero by the PDE. So u is constant along each such path — the characteristic. The paths are straight lines x = x0 + c t; on each one u keeps whatever value it had at the start, u = f(x0). Inverting x0 = x - c t gives u(x,t) = f(x - c t). For a general equation a(x,y,u) u_x + b(x,y,u) u_y = c(x,y,u), the recipe is the same: write the characteristic ODEs dx/ds = a, dy/ds = b, du/ds = c, solve them, and the solution surface is the union of the resulting curves.
This single idea is the engine of the whole first-order theory and it echoes far beyond. It tells you exactly how initial data propagates (and at what speed), it reveals when and why smooth solutions break down (when characteristics cross), and its second-order cousin — characteristics as curves of fast propagation — drives the elliptic / parabolic / hyperbolic classification. Even the Hamilton-Jacobi equation of mechanics and optics is solved by characteristics, there called rays or bicharacteristics.
Solve x u_x + y u_y = u with u = 1 on the unit circle. The characteristic ODEs dx/ds = x, dy/ds = y, du/ds = u give x = x0 e^s, y = y0 e^s, u = u0 e^s. Eliminating s shows u is just a scalar multiple of the radius: the data on the circle is carried outward along rays.
Three ODEs along each ray replace one PDE — then you stitch the curves into a surface.
The method needs the data curve to be non-characteristic — it must cross the characteristics, not run along one — or the Cauchy problem is not solvable (or not unique). And once characteristics cross, the smooth solution it builds ceases to exist; you must pass to weak solutions.