Speaking from a user's standpoint, I do think that Mantis would be a good place to start, as by finding and fixing bugs you can familiarize yourself with what's already in place in a specific area, then tweak it. It will give you more direction than just wandering through the code looking for things to do.
I only halfway agree here... while familiarizing yourself with what's already in place in a specific area is a great way to start (it is how I started), many of the bugs in Mantis end up being not so straightforward. It can be hard to find where in the code the bug is actually happening, and you can drown in a vague search. But by all means, if you see one you think you could handle, go for it.
Sorry to leave you hanging, had to go to work. Here we go! First, there's the idea of making Swarm work for primaries. Take a look at the discussion in Mantis
#1651 for details. Basically you'd be making new routines for primaries, imitating the existing Swarm code for secondaries and/or turrets.
If you want to later tackle something bigger... well, my ultimate goal is to bring us to something like
this, combined with tertiary weapons. The coolest thing would be for weapons to be able to spawn another weapon as a next 'phase'... this would make my Death Star
superlaser idea work, not to mention any other sort of 'charging' weapons. But I can hardly ask you to do all this right away.

Unless you really wanted to.
Instead, perhaps start with something somewhat simpler: You know how beam weapons have warmup sounds and intervals before they fire? Add table entries that add this feature for regular weapons, and of course modify the firing functions in ship.cpp . So you'd need four new table entries:
$Warmup
$Warmdown * don't really need this yet, but perhaps later if we add visual effects
$WarmupSnd
$WarmdownSnd
There would be two main modes of weapon firing:
1. The trigger is clicked. WarmupSnd plays and waits for Warmup ms. Now the weapon fires normally, perhaps multiple times according to Spawn settings. (You'd need the primary swarm feature in place for this, but I think to achieve this sort of not-fire-right-away timing you'd need to do something similar to how swarm works anyway.) Then of course when it's done firing WarmdownSnd plays.
2. If the weapon has the "stream" flag, the weapon behaves differently if the trigger is held down: The weapon warms up and fires as above, but continues firing (looping, including the swarm if any) until the trigger is released, then it warms down. Understand?
Some issues that I haven't considered yet would be how it works with the AI and possibly turrets, and also multiplayer. Also, I know Marco on game-warden was looking into the warmupsnd part of this idea as a trigger "weapon thunk" for BSG guns... he might he have some input too.