The fire-rate for one of my guns is 0.1 seconds and in the past i’v been using a single shoot animation for each shot and i have found this to be very… “jumpy”, am i doing this wrong how els could i come across making such a short animation? maybe just move the gun backwards on the x and crossfade it back to idle?
If anybody knows the “professional” way of doing this please share 
One way is to make the animation the same length as the fire delay so that the animation is finished and looped back to the starting position by the time the gun is fired again.
A lot of games are considered “professional” but have terrible programming, animating, etc, processes. There is no “correct” way to do it.
I could suggest however, using a 3 frame animation, of idle, shot, idle, and tweaking the timing and curves until you get them the way you like, and exporting that. As I recall, animation playback and blending speed can be tweaked in Unity through scripting, however it can be difficult to get very short actions to look correct. (For instance, my jump and landing animations do not crossfade very well.
Unity may try to optimize, simplify, or compress (I forget the exact term) your animation curves, you’ll want to turn that off for that animation, (it’s a checkbox) otherwise the gun may act strange.
It’s a difficult choice, but that’s a suggestion.