Xrayleader it depends, signals and process sort of do different things.
A signal is good for when you need something to happen in reaction to something else. It's useful, say, if you want a sprite to fade out after an animation ends (like an enemy getting defeated.) I prefer to use signals when I have events that "chain" together or need a specific sequence, because then you can connect them all without too complex of logic (though you should know how to connect in code, especially if you use a lot of instancing).
process(delta) has already been discussed at length here but it's not a bad idea to use it, especially if there's a piece of logic that needs to be "heard" that is outside of the typical signal connections. Of course, you can always make custom signals as well to trigger whenever you need them with signal.
Generally though, I use process whenever I need something occurring every frame - like say, a stamina meter refilling. You'd plug:
func _process(delta):
if _stamina < _maxStamina:
_stamina+=_stamRegenRate
That works per frame. What I will say is if you're starting out, and it works, just do it. Programming sometimes requires creative solutions.
But be real careful when you work per frame, especially if you're instancing a lot of objects, or tying any resource loading to it. 'process' may also be too fast for some functions, or you may not want to repeat certain functions. It really depends on the project.