I just recently decided to not pursue a PhD in scientific computing, so I'll be finishing my Master's and working at a startup starting in September.
One of the biggest reasons I decided to not do further research is that I have noticed that there are an unfathomable amount of people hobbling about on ancient and primitive tools when there are existing implementations and papers available that would make their lives orders of magnitude more efficient. So I've made a personal choice to not pursue the latest, fastest and most cutting edge algorithms and rather bring my knowledge, experience and problem solving abilities to people who are trying to solve real problems right now.
My point is that even though you think you can't compete with these guys who read, study and do 'real' science they could use a lot of help from the likes of you. Sure learning some linear algebra and bayesian statistics can help in directly implementing the algorithm, but usually the biggest problem I've seen is a complete lack of software engineering and hard coding specific to certain data sets.
I think the scientists can gain a lot from the software engineering field, especially open source practices. They will be resistant to it, as others have pointed out the incentives don't always line up, on the other hand there is a lot of low-hanging fruit in terms of improvements a decent programmer can pluck.