This was great to read - I'm the same age as you and changed majors away from CS about 10 years ago because of similar reasons to what you described. Being young and not knowing much about the world meant that I didn't have any passion for what I was building, and after getting some real life experiences under my belt, I've come back to learn programming again because, well, I just can't help myself.<p>I've thought about trying to learn programming again for the past few years, but gave up on the idea by telling myself it was too late and that I could never really succeed without a structured learning environment. But once I started looking into it, I'm dumbfounded by the amount of resources out there that not having access to knowledge is simply not a valid excuse. These massive open online courses out there are revolutionary and having just finished one, I felt much more passionate, thirsty, and focused than I ever was as an undergraduate.<p>And to echo the point in your article, what has kept me learning is a project I want to build. Learning backwards by figuring out what I want to do then researching how to do it works great for me. But, what's been challenging is staying grounded to the task of building the product rather than letting my mind wander off into a daydreamy state of wondering how I'm going to manage/promote/monetize the product once it's finished. Baby steps...