I hold a different perspective that I’ll chirp in with.
Depending on what type of programming you want to do, the broader curriculum of a good Computer Science degree is beneficial (or even necessary). I’ve gotten opportunities to do some really cool stuff that absolutely does require a high level understanding of the advanced math topics. In my career I’ve also gotten use out of my courses in database design, software project management, design and analysis of algorithms, and computational languages and automata. @JeremyLT works on a library for supercomputers and has to know a terrifying amount about math, chip architecture, and compiler design. Even though I currently do web development, I am very glad for the opportunities opened up by the breadth as well as the depth of my degree (and I actually couldn’t be working in the specific field that I am without it).
But a bachleor’s degree is not career training. If your main goal is to get career-ready in a programming career that doesn’t require that coursework, then for a non-traditional student a CS degree may not be worth the time and cost.
When I was about your age I decided to get a second degree in Computer Science. Because I already had a degree, I only had to do the coursework that was specific to my major, so I was able to do it in less time and more cheaply. I was able to attend a good program relatively inexpensively. I was also able to work in the field while I was in school, so I didn’t accrue debt and I don’t feel like I really “lost time” in my career progression. I don’t regret my choice but it was difficult, stressful, and would not be the right path for everyone looking to change careers.
Whether you want to learn for free, at a bootcamp, or in a traditional program, I suggest really taking the time to figure out where you want to go with this and making your decision based on a plan to get there.