Anecdotally, I went from working a part-time job making 11/hour a year ago to working full-time as a (very) junior Rails developer for double my old pay after a friend encouraged me to make the transition. I did have a lot of general computing experience from being a computer gaming nerd as a kid and in high school, but I had always stopped short of coding after a few abortive forays when I was in my early teens (though I did have some knowledge of late 1990s HTML and CSS).

I too had issues with hardware (my only computer was a $300 netbook) but I got around this by getting a Linode and using that to do all my development. This had the added benefit of forcing me to familiarize myself with the command line and Vim/tmux (though, I do admit I had some experience with basic commands from trying out linux a few times when I had been younger and too broke for Windows).

In my case, I was so hopelessly in debt and so upset with the aimless path my life had been taking that I threw myself into programming. It was extremely difficult at first since there were a ton of concepts that I had to learn even to be able to understand the official documentation. I found myself going through beginner tutorials and books over and over, each time picking up more details and each time coming away with more understanding. When I had trouble figuring out Rails, I went deeper and tried to understand Ruby first. When I felt I wasn't making any progress (it took me months to really wrap my head around blocks until one day it just dawned on me), I would explore Javascript or try to update my html/css knowledge to modern standards or explore the wonderful world of man pages. I even made an effort to make any procrastination beneficial by making sure it was "on-topic" by reading Hacker News, toying with project euler or studying math. In short, I tried to make thinking like a programmer my life. I felt like I had a lot of catching up to do with those who had been programming from their youth. I also wasn't sure if the current booming market would perpetuate forever and I didn't want to miss my chance to gain precious experience while the door was still open to me.

This was probably the first time in my life I had devoted myself so fully to anything. I had always been someone with one thousand differing interests and lacked in-depth knowledge in many subjects. It was hard giving up things like photography and probably-excessive reading (I would often spend entire weekends reading through piles of books) to focus on something that was often not as relaxing or easy, but I found the challenge incredibly stimulating (more stimulating than anything I had encountered in university for instance) and it wasn't long until I found my mind constantly wandering toward whatever concept I had been learning or working on.

While I originally was enticed by the financial benefit of programming, I find that to not be a large factor in why I work today. Once I got out of my financial hole, it was like being able to breath for the first time and in an instant I stopped caring about pushing my way to the top. The thing that gets me up in the morning now is the thrill of solving the problem and that wonderful feeling of accomplishment when you realize that what you worked on is succinct, beautiful and works. I have been trying to encourage some of my friends who are now stuck in dead-end low-paying jobs, surviving thanks to credit cards and on the verge of devastation by something as minor as needing new tires for their car, but I have yet to have any success in pushing anyone in this direction. Like you, anyone I've tried to encourage has usually fallen off the wagon pretty quickly. Maybe it was simply easier for me since I was never scared to tinker or play with the computer. Maybe I'm just a bit more obsessive.

Whatever the reason, I couldn't be happier where I am today. I get to build things and solve problems/troubleshoot everyday. I get to work with smart people who genuinely work hard at what they do. I look forward to expanding my knowledge and improving myself and my code for the foreseeable future and maybe, one day, building my own business and my own product to help change the world like so many of you guys have.

So, I know it can be discouraging when your friends don't stick with programming, but don't write off everybody because of a handful. Even if it is rare, there are a few of us out there who just need the right kind of push. As the old saying goes, "you can lead a horse to water, but you can't make them drink".