Do I Need A Degree To Be A Computer Programmer?
If you want to become a computer programmer, the best first step you can take (other than doing as much learning as you can on your own, as you suggest) is to get a college degree in computer science or something equivalent. That may sound counterintuitive, given that what you just said about learning computer science is completely true. But there is a difference between learning how to do something and actually starting a career in that same field. Yes, you can learn computer science on your own, and you should be doing your best to do so, because like you said, the lectures alone are not going to make you a programming expert. But you are competing for computer science job openings, and no one is going to want to hire you without either a degree or work experience.
The work experience option does exist. Some programmers manage to get jobs in quality assurance, and start picking up knowledge and experience in programming that way, but this is a really indirect, inefficient route. The most direct path to a job in computer programming is to get a computer science degree. A two-year or four-year degree is fine. In general, the more education you have, the more money you are likely to make at your first job.
As far as the learning element goes, college does give you one big advantage, and that is a community. While your lectures may not be all that helpful, labs offer a great opportunity to connect with other computer science majors and team up on projects. You will discover quickly that while programmers do a lot of work on their own, teamwork is often essential in completing projects. Working with others can also help you to learn. You will also forge connections with others in your industry.
I recommend while you are in college you pick a programming language to learn and stick with it until you become pretty good at it. Don’t jump around between the different languages without focusing, or you will never become very good at any of them. Either pick one which you find intuitive, or choose whichever language your university starts you out with, typically Java, C, or Python. If you have a specific path in mind for your career, you can use that to guide your choices. If you are interested in Desktop Application Programming, you might pursue C++. If you are into Databases, try SQL, and so on. Good luck!