I've taken a linear algebra course in the past, but I feel my understanding of coordinate change is very superficial. For example this exercise (4.7.1 from Lay's "Linear Algebra and its Applications" 4. edition):
Let $\mathcal{B}={\{ \bf{b_1,b_2} \}}$ and $\mathcal{C}={\{ \bf{c_1,c_2} \}}$ be bases for a vector space V, and suppose $\bf{b_1}=6\bf{c_1}-2\bf{c_2}$ and $\bf{b_2}=9\bf{c_1}-4\bf{c_2}$.
a. Find the change-of-coordinates matric from $\mathcal{B}$ to $\mathcal{C}$.
b. Find $[\bf{x}]_\mathcal{C} =-3\bf{b_1}+2\bf{b_2}$.
I can solve a. because I remember that $P_{\mathcal{C}\leftarrow\mathcal{B}}=\bf{[[b_1]_\mathcal{C}\,\,[b_1]_\mathcal{C}]}$ and that $\bf{[b_1]_\mathcal{C}}$ is the 'weights on the linear combination of $\mathcal{C}$-vectors'.
I can also solve b. because I remember that $[\bf{x}]_\mathcal{C}=P_{\mathcal{C}\leftarrow\mathcal{B}}[\bf{x}]_\mathcal{B} $
So I know how to apply the equations, but I feel that if I had a good mental model of what's going on here, it would be obvious that $\left(\begin{array}{rr} 6 & 9 \\ -2 & -4 \end{array}\right)$ is the matrix I'm looking for.
In my own experience, usually, if I learn something well I can construct the formulas I don't remember from reasoning, but here I fail, so I've literally spent all day trying to think up some analogy that would let me do the abovementioned exercise without remembering the formulas, here's what I've come up with so far:
$[\bf{x}]_\mathcal{B} $ is like a recipe for how much of the vectors of $\mathcal{B}$ you need to get to some point. So, how much of $\mathcal{C}$ do you need to get to $\bf{b_1}$? You need $\left[\begin{array}{rr} 6 \\ -2 \end{array}\right]=[\bf{b_1}]_\mathcal{C}$. How much of $\mathcal{C}$ do you need to get to $\bf{b_2}$? You need $\left[\begin{array}{rr} 9 \\ -4 \end{array}\right]=[\bf{b_2}]_\mathcal{C}$. Thus any "$\mathcal{B}$-recipe" $\left[\begin{array}{rr} r_1 \\ r_2 \end{array}\right]$ will in our case become a "$\mathcal{C}$-recipe" when we multiply it with $\left(\begin{array}{rr} 6 & 9 \\ -2 & -4 \end{array}\right)$, because the result will tell us "how much of $\mathcal{C}$ to get to $\bf{b_1}$ and $\bf{b_2}$, and then how much of these two to get to some new point". But it's been 'how much to use of $\mathcal{C}$-vectors' all the way this time, so our result has to be some $[\bf{x}]_\mathcal{C}$.
My question: What is a nice way to think about change between bases when neither is the standard one? Just looking for any way to think about this at any level of sophistication.