It was 2009. I was at a startup. We ran out of money, everyone got laid off. I had a degree in marketing and no one wanted to hire me because it was from a shitty school. Every engineer at the company had a new job in a week. I looked at them, I looked at myself and I said: Fuck it, I'm learning to code because I know I am smarter than them and I work harder than they do. Also I wanted to make a lot more money and not have a shitty job anymore. And programming is fun, can't forget that.

So I learned to code.

First I built a flash game and tried to monetize it with ads. It took me two months. I posted it online and everyone hated it. They said it was the worst game ever. That put me into a deep depression for maybe a week. Programming flash games was supposed to make me money. So I wrote another game and took three months. It was much better and got played by 3,000,000 people. By then I knew some ActionScript 3 (actually a perfect starting point for programmers). I made very little money on either of these games but I did learn some programming and I now had a portfolio.

I tried getting contracts doing ActionScript 3 and they all paid like $15 an hour which was bullshit. Then I noticed that Flex 3 developers were getting paid more like $40+ an hour. By then I was so broke I was basically evicted from my apartment and was thousands of dollars in debt which sucked.

I already knew ActionScript 3 and Flex was ActionScript...so I started getting Flex contracts. I found an amazing little agency that gave me a break. I took on every project they had and every bug on every system, I didn't give a shit. Android? Fuck it, I'll read an Android book and fix some Android bugs. Ruby on Rails? God dammit I will learn some motherfucking Ruby on Rails too. EXT framework? I will fix some bugs in that too. I didn't care what the tools were I just did it.

Too many developer are either perfectionists (basically human robots with tunnel vision), anal retentive or permanently glued to a single tool they love...I was none of those things. I just did what needed to get done and learned whatever they needed to get fixed.

At first, I didn't even know what a Linux terminal was, I was using Windows up until that point. All the developers laughed at me for being the only asshat in the office with a Windows machine. It was embarrassing so I bought a Mac and used that to fit in and not look like a tool. I learned about Git and some basic Bash commands, enough to be somewhat productive.

I realized that, at that agency, I would never make it to the next level because I had no technical mentors to teach me how to do things right. I was just writing tons of bad code to scotch tape over the problems. If I was going to learn to code, I wanted to be the best coder ever. So I got a job at a more sophisticated agency which had much more evolved processes and more advanced talent. At that agency they trained me to be a deep iOS expert, I learned so much. I also learned PhoneGap.

By then I had built more apps being used regularly by millions of people on a monthly basis. I built an absolutely gigantic iOS application as well which taught me all kinds of core iOS frameworks.

At that time my lack of CS training started to become really apparent and started to hurt me. I looked into getting a CS degree at night but it was too expensive and my employer wouldn't help me. So I looked up their curriculum and bought all the textbooks used on Amazon and read them and intensively studied them on my own time.

I didn't just page through these books. I read the shit out of them. I underlined, I wrote notes in the margins. I made those books my bitch. I made that knowledge go into my brain so I could make more money and work on more high profile projects. Algorithms, data structures, graphs, operating systems, compilers, I learned it the hard way.

I went to some more higher paying interviews and realized that interviewing has nothing to do with platform knowledge of iOS (at which I was by then an expert). So I bought the Gayle Laakman book on interviewing and memorized all the algorithms and practiced all the steps on pads of paper.

This got me into the next pay grade (I call it AAA eg. Facebook, Microsoft, Google, Amazon level of difficulty) where I belonged.

In three years I went from making unemployment to $66,000 to $83,000 to $130,000 to (now, fully loaded with bonuses and stock etc) around $200,000.

All the developers I used to look up to? I make more money than they do now or probably ever will. Blew right past them.

I did it because I really wanted it, I enjoyed programming, I spent my nights and weekends reading, I said "yes" to everything they wanted me to do and I chose projects and skill-sets that opened up more growth possibilities. And I took the craft of computer science seriously by learning the default knowledge I had skipped by not getting a degree.

So if I can do it with a marketing degree, you can do it coming from IT. You are much closer than I ever was.