You can do either one.
Any choice of coordinates $x^i$ on a neighborhood $U\subseteq M$ induces a basis $\frac{\partial}{\partial x^i}$ for the tangent space $T_pM$ at each point $p\in U$.
Given a basis $\hat e_i$ of a tangent space $T_pM$, we can define a coordinate system in some (possibly small) neighborhood of $p$ by extending the basis at $p$ to entire vector fields, and then "following" the integral curves of those fields.
The former approach is immediate - $x^i \mapsto \frac{\partial}{\partial x^i}$. The latter is more involved, primarily because the extension from the basis vectors $\hat e_i$ at $p$ to basis vector fields $X_i$ defined on all of $U$ is highly non-unique, so a non-canonical choice needs to be made.
For example, if the manifold in question is $\mathbb R^2$ and we consider the basis
$$\hat e_1 = \pmatrix{1\\0} \qquad \hat e_2 = \pmatrix{0\\1}$$
at the point $p=(1,0)\in \mathbb R^2$, then we could equally well extend this basis to create the standard cartesian coordinate system, the polar coordinate system, or a hyperbolic coordinate system.
You may object to this by saying that the cartesian coordinate system is the most natural, but the only general sense in which this is true is that the corresponding basis vector fields are obtained by parallel transporting the vectors $\hat e_i$ to each point in space. This is the generalization of "copying and pasting" the vectors at each point of $\mathbb R^2$ which can be applied to manifolds which possess intrinsic curvature.
So in your familiar Euclidean geometry, it may seem just as easy to define vectors and then coordinates, but this is true only in the special case of a Euclidean manifold - which is precisely what we're trying to generalize by studying differential geometry. In the more general case, it is far simpler to define basis vectors from coordinates, so this is what we do in the beginning. Note, however, that things like Riemann normal coordinates are an important example of us starting from basis vectors to define a coordinate system.