I don't think it's an either-or thing. Getting better at programming will make you more effective in whatever domain you are working in. I think it's generally good to work on concrete projects but "what can I actually achieve with code I write" is heavily influenced by general programming skills. In my current domain of VR development the quality of product I can build is at least as influenced by my general programming skill set as by my domain expertise. Getting better results continues to require me to develop more expertise both in the domain and in programming (and I am already advanced / expert level in both so I don't think this applies only to relative beginners).