I am gonna tell you my bias at the start. I believe that a college degree is not needed to be a software developer. Of course, everything boils down to the individual and their personal characteristics, for example their work ethic, discipline, etc. My below example shows the same person taking two different paths.
An 18yo wanna be self taught developer named Chris studies programming hard for one year. During that year he studies 20-30 hours a week using free information or tools like Treehouse, Lynda.com, and Pluralsight. He builds 2-3 small apps/websites for friends and charities for free. He works a low paying 40 hour a week job and really only parties on Friday nights. After that year he gets his first programming job.
The pay is not great but he continues to work hard and study in spare time. He is now getting paid to learn so cuts down to a max of 20 hours of studying a week (more time to hang out with friends). After another year he leaves the starter job and gets a big raise. He also builds up a network of quality developers he can work with later or use for references. By four years Chris is making very good money and because of his work ethic can work almost anywhere.
An 18yo wanna be developer named Chris studies programming at college. During that first year Chris studies hard and also studies an additional 20-30 hours per week using free resources. Of course, he still gets to party on Friday nights. After one year, Chris gets an unpaid or paid internship through college. He cuts down extra studying to 20 hours max per week so he can still hangout with his friends and relax. Chris goes to college and works part-time or does an internship for three more years. Chris graduates top of his class and has pretty darn good resume for new graduate. Chris gets his first job within a few months.
The pay is not great but he continues to work hard and study in his spare time. He keeps studying 20 hours a week because he has so much to learn. After another year he leaves his starter job Wait, this seems a lot like the second paragraph of scenario one Chris just a few years behind.
Lets say it took two** or even three** years for scenario one Chris to get that first job. He would still be a year ahead of college Chris. Another point is the college debt that scenario two Chris had built up compared to money made and saved by scenario one Chris. I am not saying college is all bad, but it does not compare to real world experience. College is a great place to socialize and meet great people. You can learn a lot about yourself and have a ton of fun. Regarding software engineering, I just think anything and everything can be taught in a much cheaper and more efficient way.
There is one scenario that would push me towards encouraging getting a degree. Some companies have blanket policies that require job applicants to have a degree. Without the degree your resume would not make it past round 1. This is very important to consider. However for me, if a company would pass up experienced, quality developers just because they dont have a degree than I would most likely not want to work there. I care more about the skill of the developer than a piece of paper. Still this is a valid point for getting a degree.
** I started programming and around 6 months later I got my first job. I know another developer who it took 8 months. Results will vary depending on your skill, work ethic, connections, and luck.