Hey,
I currently do karate and have shoulder length hair.
The best way i have found is either a single or pigtail braid, also pinning any loose hair with bobby pins or back-combs.
If your hair is only shoulder length then it is unlikely the braids will hit you in the face, it has never happened to me.
Hope this helps.