How a useless business guy learned to code

The summer after 8th grade, I went to computer camp with my brother and cousin. We learned BASIC, and had a lot of fun playing Starcraft with the other campers at night. For one reason or another, none of us continued to program (I didn’t know anyone who did it, and just kind of thought it was a cool thing to do over a summer…what a loser I was).

My brother eventually taught himself Matlab, R, Python, and turned that into a job as an algo trader on wall street. I played around with some python a few times, but never really sat down to learn anything useful until about 6 months ago.

I want to work with technology, and maybe even start my own company. So, I thought it made sense to learn the basics of programming. How do you do this? There are lots of opinions out there, here’s my story.

Last march I had an idea I was pretty passionate about (it still pains me how ugly this site is). I didn’t know anyone that wanted to work on it with me who had technical skills, thought it would be simple enough to hack together, and so did a lot of googling to build myriverguides.com. It was a lot of brain damage, a lot of missed opportunities to socialize at HBS, but also an amazing sense of accomplishment when it was done and actually worked! Plus, some people really loved it and wrote me some inspiring emails. Lastly, I got to learn some VERY basic HTML, PHP, MySQL, and Drupal. If the second part of that sentence made no sense – don’t worry, it didn’t make any sense to me either a few months ago!

This summer I put a goal in front of me – I was interning at TaskRabbit in a general management role, but wanted to commit to coding every day in my free time. It didn’t matter if it was 5 minutes, or 3 hours, I wanted to sit down at a computer, open a terminal or SublimeText, or whatever, and write code.

I wrote “code everyday” and put it as the background of my phone. I also put it over my bed. Every time I went to text someone or check my email I was forced to remember my goal and forced to think of whether or not I was hitting it.

I didn’t just want to code, I wanted to learn something useful. I picked the django framework for web development (tough choice between that and rails). I first needed more of the python basics, so I took the codecademy course, which was fun and useful. I also ended up taking the jquery course on codecademy which was pretty solid too. Afterwards, I started with chapter 1 of the Django book. The first 8 chapters are really what you need to build a site. You can do one in a few hours, if you’re being very diligent, or you can do one in 30 mins if you are coming from rails or another MVC framework.

To be honest, it was a bit painful. Programming can be REALLY frustrating, especially when you’re already good at the stuff you do at work. Learning from scratch is tough. But, it expands your mind. I always thought that engineers thought differently. It’s hard to explain, but now I have some insight as to why. As a general rule, it’s good to regularly push your brain to think about problems in new ways!

So – I now had the basics to build something and at least host it locally on my computer. Wahoo! Time to work on a passion project – this is when you really start to learn. I’m embarrassed to say that the project I started mid summer was never completed….I got back to school in September and starting working on something entirely different, and the old project died. But, I think that’s ok. I was still coding every day and continuing to learn. It was now a habit.

The last few months have brought more challenges: hosting, databases outside of sqlite, sending/receiving emails, security issues, actually writing good code with comments that can scale…The learning curve hasn’t really flattened yet.

What do I get for my efforts? For the “brain damage” and missed opportunities to watch Madmen or some other show? It turns out, a lot. I can build MVPs…check out lifeguides.me which a classmate and I are working on. Isn’t that cool? I can talk to engineers and not get lost – maybe even have some credibility. I can recruit other technical people to work with me – I’m no whiz but I can contribute on that front now. And, I generally feel like a much more powerful person. This summer at Task Rabbit I re-wrote a piece of our mail merge script to make it A LOT more effective…that’s cool.

Net/net is it worth it? From an ROI perspective….who knows? It depends where life takes me, who I meet and get to work with, and what I do. I enjoyed the process, even the low points where I thought I’d never figure out a problem. And, the highs of getting something to work are pretty incredible too.

I’m relating my story because I know many people out there are trying to learn to code for a variety of reasons. Here’s my advice:
-Get the basics on a language through something like Codecademy.
-Pick a web framework (django, rails) and do the basic tutorials to learn how to create pages and host them locally.
-Pick a PASSION project – something you think the world desperately needs, and figure out a way to hack it together. Break down every step into googleable queries and put it together piece by piece
-Do it EVERYDAY. Don’t let it go 3 days because you’re busy or on vacation, you will lose steam.
-Write down your goal and look at it at least twice a day. It helped me during my wrestling days, and it definitely helped me this summer coding.
-Enjoy the experience. Life is short!

Introducing – MyRiverGuides.com

I’ve kept a journal in some form or another since 5th grade. Sometimes I write every day, and sometimes I go a few months without writing anything down. The consistent trend with my writing is that I get a lot of value out of it.

When I was in highschool, I used to break down my wrestling practices and meets, remembering how I felt before/during/after in an attempt to get better at a mentally challenging sport.

In college, I wrote a lot about the summer internships I had. The brain has an amazing capacity to change our memories and backfill history, so I’ve learned. But, the act of recording history trumps your brain’s ability to deceive.

One act of journaling was quite pivotal in my life: After my junior year, I interned at a large investment bank. I didn’t have a great summer and knew I wanted to do something else. Nonetheless, 3 weeks after getting back to campus in September, I was ready to sign my full time offer for this bank. I’d completely forgotten how much I was dissatisfied with my internship, and what my original goals were. Luckily, before I signed the offer, I re-read a journal entry I’d written over the summer, and remembered how much I didn’t want to go back…. the 15 minute exercise of writing that journal entry literally saved me a few years in a job I didn’t want.

Because of this experience, I recently created MyRiverGuides.com . The discipline to journal, write down what will be relevant in the future, and unearth these facts at the right time is hard! MyRiverGuides.com makes this process a whole lot easier and automated for those of us doing internships this summer. Now others can save 2 years through a 10 minute exercise!