Bitfields are very useful if you have very tight memory and speed requirements, or when doing low-level hardware programming.
Unless you are doing embedded programming or something similar, you do not need them. There are far more readable, powerful, extensible mechanisms for performing the same task. For instance, Java's EnumSets.
I would expect a good programmer to know them and not use them :-p