My story: from lawyer to ruby hacker

Last winter, Stanford CS Professor Andrew Ng taught an online course in Machine Learning. I took the course, and today the students in the course got an email from Prof. Ng asking for our stories. Here’s what I wrote to him. Maybe this can be an inspiration to someone out there hoping to become a programmer!

tl;dr, in 15 months, I went from unemployed lawyer to employed ruby hacker.

Hello Prof. Ng-

Thanks again for teaching ML. Here is my story.

First some quick background info: the job market for lawyers is very bad. During the economic downturn firms were laying off dozens of people at once, and many froze hiring. I graduated from law school in 2009, and was lucky enough to start working for a big firm. I had no work to do, ever. I would just sit in my office reading the news and wishing for my phone to ring. The firm had way too many young lawyers, and not enough work for us to do. In January 2011, me and few others were laid off. I saw it coming and had been looking for work, but no one was hiring. I was unemployed and my legal career was over before it started.

I decided to teach myself to program and start a new career as a programmer. I came up with this idea from reading Hacker News. There were so many stories about how programmers had such an easy time getting jobs! In contrast, for lawyers there were about five job postings in the entire state of California, and every posting got hundreds of resumes. In fact, when my boss came into my office to fire me, I was installing python onto my work computer 😉 I did an “Ask HN” for advice on learning to program, you can check it out here.

http://news.ycombinator.com/item?id=2069477

Only eight days after making this decision, I started volunteering for a non-profit to build them a database system. I put it on my resume like a real job, and worked as hard as I ever had. It took me five months, but I built them that database, and taught myself PHP, SQL, etc at the same time. Nowadays I could build that database in a weekend, in a half-dozen languages ;).

Then I built a site to apply to Y Combinator. It was a news recommendation website. That’s what got me interested in ML. When I tried to build the recommendation engine, I realized I was in way over my head. About that time the Stanford classes were announced on Hacker News. I couldn’t believe my luck! So I devoted myself full time to the AI, ML, and database classes. I also downloaded Stanford CS106A and B, and worked through those.

In these classes, the rate of learning for me was faster than working through books by myself. You can teach yourself syntax, but it is difficult to improve your overall skills without someone guiding you and giving you exercises that are appropriate for your ability. The classes gave me a way to measure my progress. Was I a “real” programmer or just a pretender? Since I could do the work, I was a real programmer! And when I got stuck on an exercise, I could go to the forums for a hint. The forums were key to the course.

Three weeks ago, I got a paid internship as a ruby hacker. I mentioned the Stanford classes during the interview and my interviewer had heard of them. I am no longer adrift without a career, in contrast to thousands of underemployed lawyers nationwide, banging their head against the wall, hoping for a miracle. At my internship, I have already committed code that is in production (despite never having written any ruby when I was hired). In the past 15 months I have learned enough that I was able to pick up ruby/padrino and start contributing quickly. After this internship I am confident I will be able to get a job hacking ruby, maybe at the same place, maybe somewhere else.

Programming, especially mathy programming like ML, gives me great pleasure and is a wonderful way to spend time. I’m really surprised that I can get paid for doing something that is so fun!

I am currently taking the Algorithms class. I plan to work through as much of the Stanford CS curriculum as possible, and give myself a virtual “Stanford CS degree” on nights and weekends while hacking ruby during working hours. In a year or two I will be in really good shape, having real-life working experience, and having learned so much from online courses. Thanks to Hacker News and these online courses, I have a new career and am having the time of my life!

Thank you so much!

Advertisements

15 thoughts on “My story: from lawyer to ruby hacker

  1. blakehowe says:

    Great story best of luck. Job is better than no job for sure

  2. Inspiring story man! Good Luck! Which websites would you recommend to study programming?

  3. kamanawae says:

    Hi Dennis,

    I have a link for you: http://norvig.com/21-days.html

    Keep the good hard work!

  4. fadliawan says:

    Hi Dennis,

    I have a link for you: http://norvig.com/21-days.html

    Keep up the good hard work!

  5. Will says:

    This is a great story and I hope it inspires other people out there who are not in a good position that you can change things around.

    Well done and good luck in the future. If you can go from unemployed to Ruby months in 15 months just think of what you can do in another 3 years!

  6. Rzl says:

    Totally resonates with me. I was in marketing for years. Then my company went out of business and all the engineers had jobs in a week or two and I was out of work for months. I realized then I was in the wrong career…I knew so many marketing MBAs who never seemed to have jobs that I drew a line in the sand and decided to go engineer. I spent seven months unemployed learning flex and android development and got a job paying me more than I ever made in marketing by nearly 30 percent. It was very stressful and difficult but I did it and even turned down interviews with Amazon and rejected other offers so I could do it….

    The future is very scary for non technical roles. Most companies only need a couple marketing people…as a result, only the very top people can stick it out. If you don’t have your Wharton, Harvard, Yale business degree your career is looking very bad. I suspect the same is true with law degrees…if you are unfortunate and get knocked out of the club before you become senior like I did then its like hitting the reset button on your career because now you are just another member of the rabble trying to fight for the one job. Congrats on making the right choice 🙂 it feels good to actually build things.

  7. bow says:

    Congratulations :)! It’s nice to hear how much people can empower themselves through these websites. I’m curious though, how much programming background did you have prior to the ML course start?

  8. mikekreeki says:

    So inspiring. I understand your feelings because I have a story like that on my own. Thanks so much for sharing and I wish you luck with forthcoming projects. Keep you head up and never look back.

    Mike.

  9. Brett says:

    Hi Dennis

    You’re definitely what’s considered a ‘self-starter’! Nice going and congratulations on the job, and most importantly on really enjoying what you’re doing.

    I expect to hear another post from you in the future entited: My Story: From Ruby Hacker To Startup Founder. 🙂

  10. outworlder says:

    The interesting part is: you now have a very unique skillset. There are not that many lawyers that can code – and I bet there are only a few that made through the AI class.

    In the future, you might stumble across something in your former field that can be optimized. Go for it.

    “People who can code in the world of technology companies are a dime a dozen and get no respect. People who can code in biology, medicine, government, sociology, physics, history, and mathematics are respected and can do amazing things to advance those disciplines.”

    http://learnpythonthehardway.org/book/advice.html

  11. John Young says:

    Hi, I went the opposite direction, from several years as a systems engineer to being a tech lawyer. My only suggestion is to try to find a way to keep your legal skills alive and developing–but you may have to hook up with a firm even to do pro bono given the California rules on malpractice.

    BTW, I often use the analogy of a computer program to explain contract drafting to engineers: you have to handle all inputs and outputs and define desired outcomes given certain sequences of events, as well as all possible error conditions. I really do feel the tech background gives me a different viewpoint than many of the lawyers I meet professionally.

    Best, John

  12. Hansel says:

    I’m one of the developers so, a bit biased, but if you are an underemployed lawyer who wants to learn how to program then you could use http://www.pythonanywhere.com to write a django app without getting busted installing anything locally.

    Just sayin’

    Cheers

    Hansel

  13. Myself says:

    I just read your article (with a one year delay). I’m also a lawyer who wants to become a programmer. I’m from Greece. I’m currently taking the online Harvard course CS50 and I love it. Could you recommend a plan to follow that would help my transition? Thanks! You’ve been an inspiration.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: