Are you sure you want 2-2-3, not 2-3-2? The latter is more common in my experience.
None the less, the first step is almost always done with a quadratic extension where i^2=-1. So you just need to implement complex numbers over your field of choice.
Multiplying complex numbers is simple if you just treat them as (x+iy) - I hope that's basic.
For inversion see See "Implementing cryptographic pairings", M. Scott, section 3.2. (ftp://188.8.131.52/pub/crypto/pairings.pdf)
And here's my code for this step: https://code.google.com/p/go/source/browse/bn256/gfp2.go?repo=crypto
For the cubic extension see http://eprint.iacr.org/2006/471.pdf. I used τ^3=i+3. The multiplication is little more complex, but still just an application of basic algebra. For inversion, I'll have to point you at the comments that I wrote in my code: https://code.google.com/p/go/source/browse/bn256/gfp6.go?repo=crypto#242
Now you're at q^6 you can work in the twisted curve.
Lastly, the quadratic extension to q^12 is similar to the original extension. After the cubic, it should be easy! I used ω²=τ because I was following http://cryptojedi.org/papers/dclxvi-20100714.pdf.
For exactly how you get from the twist over q^6 to the curve over q^12 depends on the exact homomorphism in question.