Tricks at manipulating creation/annihilation operators Manipulation of terms in algebras different from the standard one (e.g. boolean algebra) can be a bit unnatural but there are always shortcuts that can help you.
I was wondering if there is a list with the standard tricks for manipulating creation and annihilation operators of bosons and fermions, instead of using intensively their commutation relations and having to rediscover the wheel every time. This would prevent me (and many others) from losing a big amount of time at blind guess-checking... Even a good set of exercises can count as an answer.
 A: Here are the two most important tricks:
Commutators via derivative
If $A$ is an operator which has been written as a normal ordered$^{[1]}$ product of $a$ and $a^\dagger$, then the following is true
$$[a, A] = \frac{\partial A}{\partial a^\dagger} \quad \textrm{and} \quad
[a^\dagger, A] = -\frac{\partial A}{\partial a} \, .$$
Wick's theorem (boson version)
Wicks' theorem makes dealing with products of operators a lot easier.
Consider a string of bosonic creation and annihilation operators $ABCDEF$ where each operator is either a creation or annihilation operator for one of many different modes.
Computing matrix elements of this thing can be a pain.
Wick's theorem makes it easier.
First denote the normal ordered version of an operator $O$ by $\mathop{:}\!O\!:$.
For example,
$$\mathop{:}\! a a^\dagger a^\dagger \!\mathop{:} = a^\dagger a^\dagger a \, .$$
Also define the contraction between two operators as
$$\dot{A} \dot{B} \equiv AB - \mathop{:}\!AB\!\mathop{:} \, .$$
Denote contractions between different pairs of operators by different numbers of dots.
For example,
$$\dot{A}\ddot{B}\dot{C}\ddot{D}$$
means "contract $A$ with $C$ and contract $B$ with $D$".
Note that $\dot{a_i}\dot{a}_j^\dagger = \delta_{ij}$ and e.g. $\dot{a}\dot{a}=0$.
Wick's theorem says
$$
\begin{align}
ABCDEF &=
\mathop{:}\!ABCDEF\!\mathop{:} \\
&+ \mathop{:}\! \dot{A}\dot{B}CDEF\!\mathop{:}
+ \mathop{:}\!\dot{A}B\dot{C}DEF\!\mathop{:} + \text{ all possible single contractions} \\
&+ \mathop{:}\!\dot{A}\dot{B}\ddot{C}\ddot{D}EF\!\mathop{:} + \mathop{:}\!\dot{A}\dot{B}\ddot{C}D\ddot{E}F\!\mathop{:}
+ \text{ all double contractions} \\
&\text{and so forth, up to all sets of complete contractions}
\end{align}
$$
Now here's the brilliant part.
You're usually calculating vacuum expectation values, i.e.
$$\langle 0 | \text{some operator} | 0 \rangle \equiv \langle \text{some operator} \rangle_0 \, .$$
First, note that we must have an equal number of creation and annihilation operators from each mode to get a nonzero result.
This is simply due to the fact that to get from zero total excitations back to zero total excitations, we have to add and remove the same number of excitations in each mode.
Second, note that all the terms on the right hand side of Wick's theorem are normal ordered.
This means that any term in the sum from Wick's theorem which is not completely contracted actually vanishes (because there will always be an annihilation operator hitting the $|0\rangle$).
In other words, you only have to compute the completely contracted terms!
What's even better is that you don't even have to compute all the possible fully contracted terms because any time an operator is contracted with something against which it's already normal ordered the contraction is zero!
Example:
$$
\begin{align}
\langle a_1 a_0 a_0^\dagger a_1^\dagger \rangle_0
&= \langle 0 | \left( \right. \\
&\underbrace{a_0^\dagger a_1^\dagger a_1 a_0}_{\text{no contractions}} \\
&+ \underbrace{
\mathop{:}\! \dot{a}_1 \dot{a}_0 a_0^\dagger a_1^\dagger \!\mathop{:} +
\mathop{:}\! \dot{a}_1 a_0 \dot{a}_0^\dagger a_1^\dagger \!\mathop{:} +
\mathop{:}\! \dot{a}_1 a_0 a_0^\dagger \dot{a}_1^\dagger \!\mathop{:} +
\mathop{:}\! a_1 \dot{a}_0 \dot{a}_0^\dagger a_1^\dagger \!\mathop{:} +
\mathop{:}\! a_1 \dot{a}_0 a_0^\dagger \dot{a}_1^\dagger \!\mathop{:} +
\mathop{:}\! a_1 a_0^\dagger \dot{a}_0^\dagger \dot{a}_1^\dagger
}_{\text{single contractions}} \\
&+ \underbrace{
\mathop{:}\! \dot{a}_1 \dot{a}_0 \ddot{a}_0^\dagger \ddot{a}_1^\dagger \!\mathop{:} +
\mathop{:}\! \dot{a}_1 \ddot{a}_0 \dot{a}_0^\dagger \ddot{a}_1^\dagger \!\mathop{:} +
\underbrace{
\mathop{:}\! \dot{a}_1 \ddot{a}_0 \ddot{a}_0^\dagger \dot{a}_1^\dagger \!\mathop{:}
}_{\text{only nonzero term}}
}_{\text{double (full) contractions}} \\
& \left. \right) | 0 \rangle \\
&= 1
\end{align}
$$
When you have cases with multiple occurrences of a particular operator Wick's theorem becomes more useful.
For the fermion case there's an extra bit you have to pay attention to having to do with the fact that fermion operators from different modes anti-commute.
Check the Wikipedia page or a book for details (it's not harder you just have to pay more attention).
[1]: For bosons normal ordered means all $a^\dagger$ operators are to the left of all $a$ operators. For fermions what it means is best illustrated with an example. The normal ordered version of $a_0 a_1 a_0^\dagger a_1^\dagger$ is $a_0^\dagger a_1^\dagger a_1 a_0$. The creation operators are all to the left of the annihilation operators, but also you go through ascending indices in the creation operators but descending indices in the annihilation operators.
A: What kind of 'tricks' are you thinking about? You can use commutation relations to arbitrarily reorder them and, for example, eventually evaluate in something in the vacuum state. Something that may be of interest in this context is Wick's theorem, which can be formulated in operator form. 
