The correct answer depends on what you want to do with CS.
If you just want to continue programming as a hobby or side project, you may benefit most from simply learning a new programming language. Though programming languages change with time, learning one that is wildly different from what you are used to is a great way to familiarize yourself with common practices, different design philosophies, and the advantages and disadvantages of different languages and libraries. Tutorials on how to start developing in a given language are easy to find on the internet.
The benefits are that you don't need a heavy math or technical background, can get started immediately, and while you get familiarized with a new way of thinking, you gain an actively applicable skill set. The downside is that without a deep understanding of CS fundamentals, you may not be able to take full advantage of all the features most languages have to offer.
You can also read various technical articles on the lesser-known features of languages--IBM provides Java tutorials for even advanced Java programmers, for example:
That said, the main advantage (and, as some might argue, disadvantage) of a formal CS education is usually the theoretical and technical element--this includes formal theory like algorithms and complexity theory, as well as low-level study of computer architectures, operating systems, and microprocessors. You certainly don't need these to be a competent programmer, but being familiar with them will definitely make you a more powerful programmer.
If you have a strong math background, you can jump right into algorithms with:
but if you don't want to go into the books immediately, you can always get a piece of higher CS education with free lectures, provided by many renowned universities:
In either case, it really depends on what you want to do in the future. Do you see yourself getting a job in software development? Programming iPhone apps for fun on the side? Studying computational theory to sharpen your mind? It's up to you.