No. I have a degree and I can safely say that a degree is not a pre-requisite to being a programmer. No one asked me a proof of it, yet.
It might be a pre-requisite to getting a job, though. Some job applications might require it because it helps filter the huge number of candidates they get, not because a degree means anything in terms of competency. It can, but to me personally it just means the person had the opportunity to go and spent 3-5 years to get a degree, and had the will to go through it. It does not mean the person is more intelligent than others.
The fact I got a degree means a lot. I was not a top student, never been even a good one. I failed 2 years in high school, but at some point I just decided all I wanted was a degree in Computer Engineering because I was good at computers, you know.
And I got that degree although it was a lot of suffering because 80% of the exams were not even related to computers. It was math, physics, statistics, math and more math.
That degree I have in my room does not mean I am a good programmer. Like, not even close.
50% of the people in my class weren’t even programming on their own outside of class.
If you don’t have the will to study things on your own, you’ll never be a programmer even if you have a CS degree.
No school in the world can teach better than what you can teach yourself with a great book, a great course, a great will to learn. And thousands hours of deliberate practice.
Programming is great because there is no gatekeeping.
For example, I can’t wake up one day and say “I want to be a great doctor in 3 years from now”. I probably could and go to school again etc, but I can’t become a real doctor just by studying on my own and making experiments, right?
The same holds for attorneys and many other professions as well.
I can wake up tomorrow and decide to become a professional cook, but maybe if I didn’t go to the right school, no one will ever hire me in a great restaurant. But I can open my own restaurant and prepare my best dishes.
This is a good analogy to starting a freelancing business in programming.
You don’t need any degree to do that. What you need is hard work. Hard work and persistence. Sticking to it. That’s the only way to become great.
Read as many books as you can. Just never think you’ll never be as good as person X just because they have a degree. It does not mean anything. Maybe they’ll spend their first 5 years working in an unchallenging environment and they’ll just forget all they learnt.
Some people enroll in a CS degree for the money that there’s in the field, or the ease of finding a job. But programming is hard, and requires continuous learning to stay relevant during the years. Maybe they don’t have enough passion as you do now. Maybe they had it 5 years ago, but now they lost it because of office politics. Or they went into a bad specialization, like embedded programming when what they really wanted was making games.
So, to recap: do you need a degree to be a programmer? No.