So How Did You Learn How to Program?
By far, the question I get asked the most since I taught myself how to program and got a job as a software engineer is: “How did you teach yourself to program?” It has occurred to me that there might be more people interested in going down this path, so I thought I would explain what I did in my pursuit of a career as a software developer.
puts 'hello world'
I decided to start learning how to code after a conversation with a friend (who works in tech) late one night last summer in a bar in San Francisco. She asked me a question and wanted to know if I was able to come up with the answer. The question she asked was this:
- There is a wall that has two switches on one side and three light bulbs on the other. You can only cross from the side with the switches to the side with the bulbs once. How do you figure out which switch goes to which bulb?
I sat for about five minutes playing out different possible solutions in my head before I had an answer. Upon hearing my solution she told me: “You should think about learning how to program.” And so I did. I thought about it a lot and I went home and sat down in front of my computer and went to Code Academy’s site.
Craving more I was pointed in the direction of The Ruby Koans. The Koans provided a bit of a challenge not only teaching you the Ruby language but also teaching you about writing tests and doing test driven development (TDD). After that I took on the similarly style tutorial Test First Ruby. Although both Test First Ruby and The Ruby Koans involved the running of some programs in the terminal I still felt pretty lost when I needed to work in the terminal so I quickly ran through The Command Line Crash Course. I finished that portion of my curriculum with a quick ruby refresher on Ruby Monk. It had taken me about two months of working both before work and on all of my breaks from work, but I was ready for my next challenge: Rails.
The first place I headed was the rails guide “Getting Started with Rails.” This guide helped me build a simple rails blog, which I deployed on Heroku. After that I did the Rails for Zombies tutorial which gave me a good idea how rails worked as well as taught me how to use CRUD properly.
After the hackathon, I found it hard to continue working on the project since I didn’t know a lot of JS or Python and it felt like I was starting over trying to learn another language. We also did some things that could have been improved and didn’t make the site as good as it could have been. So I decided that I was going to try to remake the site in Ruby on Rails. If nothing else and it never went to production, it would be a really good learning experience for me.
The idea for Refuge Restrooms was born and in early February of 2014, only five short months after starting to learn Ruby, I launched the initial launch of Refuge Restrooms. I had built something. And beyond that it had gotten some attention: the Advocate wrote about it, as did The Huffington Post, and so did Feministing. After that it was a whirlwind of developing and managing the development of an open source project. The application has come a long way and still has miles to go. There’s lots of work to be done on it, including hopefully native mobile applications on iOS and Android. Looks like it’s time to start teaching myself how to write swift. =)
The real payoff for me was getting hired. In April I accepted a paid internship with a finance tech company in SF as a software engineer. It has been incredibly rewarding and at times quite challenging, but I earned it. I worked hard, taught myself something new — and improved my life. And I think you can do that too!