Assumed knowledge: Basic materials, modifiers, surface snapping, a terrain model of some sort.
1)…Start with a square grid, somewhat dense. Give it the road material you want it to have.
2)…Give your grid an array modifier to make it longer, choosing the join option, then apply it.
3)…Set your origin to your geometry.
4)…Add a bezier curve, subdivide it a couple of times, then position it as you want your road to go, and use surface snapping to snap it to your terrain surface, then disable surface snapping.
5)…Orient the road to the curve, then give the road a curve modifier and choose the bezier curve. You might have to tweak it a bit to get it right. When it’s right, apply the modifier.
6)…Enable surface snapping again, and select all your road vertices in edit mode, and use G to grab enough to set them on the surface. Then disable snapping again, and move them up a hair so no ground is poking through.
As a bonus, you can then use the same curve to guide a vehicle.