Programming is not a regulated profession. Anyone can apply to Codecademy or attend RailsGirls meet-up and learn basic programming concepts. Going down the self-education route can take you far and one can become able to develop even complex web or mobile applications. But lack of formal education has its consequences. For starters, self-taught programmer will find it quite hard to discuss programming concepts with fellow programmers since they haven't learned the language of computer science. Further, while many programmers lacking formal education acquire knowledge of impressive variety of tools and techniques, they always lack knowledge of some important things since nobody forced them to learn things they didn't like or need. Additionally, computer science education tries to give students solid foundation starting at mathematical theory, through operation of computer at hardware and operating system level, all the way to code organization and system architecture. Lacking solid foundations slows one down in myriad little ways that are noticeable only when comparing your progress with the progress of a more formally trained peer. So I'd like to call on students not to drop out of college prematurely. You really need to finish at least the first two or three years of your studies in order to get at least basic theoretical underpinnings. I know it's not that interesting and that you can program just about anything using just PHP and MySQL. But without understanding discrete structures, linear algebra, Shannon's theory, trees and search algorithms, big O notation, and many other concepts you'll be forever limited in your tools, approaches and possibilities.