It seems to me like you have two related problems. You want to gain experience working on things that involve math and low-level coding, and you also want to find opportunities to do programming that's of greater utility than what you're doing now. The problem may be in your ability to sniff out opportunities to be a useful programmer, which is a sort of perpendicular skill to actual programming.
The problem may also be motivation-related. I've sort of been in your place before felt the same sort of self-dissatisfaction. I also worked through several programming books, tried to find a supportive community, made lots of toy programs, etc. What I realized was that, even though I was working hard and had ambitions, I was still "procrastinating," in the sense that I was advancing my career sub-optimally because I was waiting for some sort of golden door to open up to me. Eventually I realized that it was unlikely that a book would give me the wisdom to do any start-to-finish project with complete confidence, that trying to find people to work with wasn't getting me anywhere, and that nobody (including myself) would really believe I was talented until I did something with those talents. I am not sure if my project will be a success but it has allowed me to gain skills at a faster rate than anything I've done previously, and I'm also very happy on an existential level.
I guess you just have to start something. Have you had ideas? If you've had ideas I think Derek Yu's Venn Diagram is a really good way to narrow down to the best one:
He uses it to talk about games but it really holds true for any kind of project. You want to do something you'll find interesting to do, something that matches up with your talents, and something that has some value to the world.
So yeah. If you're in the Seattle area I know people you can meet. If you want help finding something to sink your teeth into you can email me at
[email protected] with relevant info. No promises, especially if you're looking to get paid :X