Throughout my experience with WakeMate one of the constant frustrations I had was being limited in my ability to code features for our product. I kept promising myself that as soon as I had the time I would learn web development.
In this current entrepreneurial climate developers are treated like kings. The flip side is that non-technical founders are generally treated with scorn. There is a constant struggle to prove their worth. As someone who wants to continue starting companies technical ability seems a required skill.
Since I majored in physics and had a lot of programming exposure through WakeMate I thought the best way to learn would be through a mentorship program. I was lucky enough to be able to participate in the bloc.io program this summer. Bloc pairs you with a mentor for 8 weeks with the ambitious goal of completing a web application. My mom suggested I build a web version of Sincerely’s fantastic Postagram iPhone app since she didn’t have a smartphone.
Rails was the hardest to pick up. I started reading the online Rails Guides but they were confusing because they constantly referred to each other. Even though I didn’t completely understand the framework my mentor urged me to dive in to development anyway.
Coding (the failure loop)
I created a roadmap for my application and set to work. This comprised 6 weeks of:
1. pick a feature to implement
2. write some code
3. realize I don’t know how to implement it
4. google furiously
5. read stack overflow, mailing lists, github wikis
6. get overwhelmed and curl up in the fetal position on my bed (optional)
7. ask irc (#ROR ftw) for help or Skype with my mentor
It may not seem like it but this was an extremely productive process. Reading other peoples’ frustrations and triumphs through similar problems was very educational. TWhen I was having trouble implementing a feature there was nothing more exciting than coming across a blog post on exactly what I wanted to implement. Even so I would have only been half as productive without my mentor. It wasn’t unusual for us to have 2 hour Skype sessions 3-4 times a week. I always walked away from those sessions with a much better understanding of what was going on and a larger toolset for fixing my own problems.. More and more I was able to implement complicated features without going through steps 6 and 7.
Throughout my Google travels I picked up a lot of new concepts such as how to interface with external APIs, make asynchronous calls, pass data from rails to schedule cron jobs and the importance of version control.
There were a few unanticipated side effects of my journey. I’ve found that I’m coming up with different types of business ideas that never would have occurred to me before. Knowing what is technically possible (almost anything!) and how to achieve it has really opened up my eyes to bigger and more robust potential businesses.
It may sound hokey but I also feel more empowered and in control of my own destiny. Not being at the mercy of another developer is incredibly liberating. I know now that if push comes to shove I can build almost anything.