I just realized, I'm pretty sure I'm just passing my 40th anniversary of programming this month. Jeez I feel old.
How I made it this far I have no idea, but here I am still plugging away.
My eyes are going, I get tired easily, and my productivity is a hundredth of what it once was...
I look around here and don't know what half of the posts are even about most of the time :-) In supposed to keep up with recurrent neural networks, the language of the month, algorithms research, which HTML template framework is or is not in vogue, whatever...
Over the years I've written a couple of books, built some pretty cool shit and had the pleasure to work with some of the best, but you know I'm really pretty damn dumb, and the only thing that has saved me is persistence.
I've felt like you many many times on occasion over the years.
Computer Science is a huge subject, and growing by the day, immeasurably larger than when I started. There is no way to keep up in all avenues... and that is fine.
It's pretty normal and healthy to have a bit of a low self esteem about our work as software engineers because it is literally true that every piece of work can be better. Please try not to take that attitude a bit too far though.
You know, I got into this because when I was a kid I wanted to understand how computers work. They were a magical box of wires to me and still are.
I wrote code for fun, my own personal pleasure, and the hope that along the way maybe some of it is of some use to someone else. Maybe even make them smile. That's what drives me and keeps me going.
I think my advice is just program because you enjoy it. Everything else will come.
Financial reward is a side effect, not a cause.
There is no huge race here. Programming is a very personal creative past time that takes an incredible amount of effort for all of us and a lot of patience.
I know it might seem at times looking around hacker news that everyone is way ahead. I can understand that, it's a pretty elite set out here. But... I think deep down, the dirty little secret is everyone feels a bit crap compared to everyone else on here more often than we all let on. Fake it 'til you make it. ;)
Like others said, you have so much to be proud of. Shipping multiple projects on iOS, wow!
The fact you are even looking into audio algorithms and things like MIDI over WiFi is great! Sounds like a lot of specialist knowledge you are building there. I'm impressed!
Maybe one pointer. Step back and stop, take some time and think about the machine instead of the problem at hand. I say that because you mention race conditions. Understanding why they are occurring will be of enormous help. Then when you figure it out, explain it to someone else.
But meh, stop whinning, It takes me weeks to do what I could once do in an afternoon :)
You are doing great.
Keep it up man, it's a really fun road.
Nice you are here.. let it flow.