Learning How to Code - Why?

After a year of being in SF, I never would have imagined that my path would put me here. It’s easily been one of the most inspiring and fulfilling years of my life. Before moving here, I had no frameworks for how a technology company was supposed to work or skills to build a product. Sadly, I was one of those that thought that developers were just the people who spoke a complex language (code) and who you told to build stuff. After having helped on the product side to launch a mobile game, contributing as a product manager to 3 mobile apps (one of them from concept to launch) pulling in over 20M in revenue, watching many of my close friends create successful companies/products from simple ideas and lastly having jumped into code myself, I now understand how fundamentally important having knowledge of code is for anyone looking to work in technology. In this post, I’d like to walk you through some of my driving thoughts in my decision to learn how to code and why I chose a bootcamp.

Being a better tech founder

It’s very hard to lead and build rapport with developers if you don’t understand what they’re doing. When I was running my web marketing company for three years I had a lot of need for development help. I could only handle html/css and the management of content management sites myself. For anything else I needed outside help. When I went to developers for help, I knew little to nothing about what they were saying or how the technologies worked. I didn’t know the fundamental difference between PHP/Javascript/Ruby/Java/C++ or any other. All I knew was whether or not a web service or program performed it’s job effectively. Apart from that, I couldn’t tell if a product/feature should take 2 weeks or 2 hours. I had no understanding of the technologies and thus also had little knowledge of what they were capable of. I thought working with developers was really frustrating because stuff often didn’t get built the way I had envisioned, roadblocks would seemingly appear out of nowhere to delay the project and things that I thought should be fast often took forever. Given that I want to start more technology companies in the near future, I have made it mandatory in my mind to learn how to code. If in 5-10 years, I didn’t have a strong understanding of it, I would have some regret. I want to have a fundamental understanding of what technology products are doing and why decisions are made the way they are. I want to be able to work hand-in-hand with developers to help them think through technology problems and not just be the “business guy”, no pun intended. I want to be able to call out a developer if they say something is going to take 2 weeks when it should take 2 hours. Not for the sake of calling them out but to help work out better solutions together and to be on the same page. I am absolutely certain that learning how to code will make me a better tech founder.

Being a better product manager

Product management is like running a mini-company in the form of a product. It’s nice to be able to focus fully on just the product. You don’t have to deal with all the miscellaneous tasks that can take a lot of time as a founder. Like recruiting, accounting, office logistics, fundraising, customer service, having no salary, etc. And even at that, I’d say product management is on par with running a company in terms of difficultly although much lower in terms of stress level. One of my big takeaways from being a product manager without a coding background was that I didn’t know what features were possible. I remember working with our lead mobile designer who would come up with an awesome new interface which made the app feel much cleaner and modern. I’d then bring in the engineering team only to find out it wasn’t possible for 3-4 listed reasons of which none of them we fundamentally understood. To me you can only get so far with asking “why” before you’re just building concept over concepts over concepts. Without having a technical background, it’s impossible to fully understand the constraints through which to guide the product. To me, a tech founder or PM that can’t code is like a restaurant owner that can’t cook. While it’s not necessary to do the role, many of the most successful restaurateurs started off as great chefs. Without learning how to cook amazing food it’s hard to develop the palette to differentiate between bad from good, or good from great.

Being a developer and having the ability to build products myself

Have you ever had an idea or service that you thought could be great but you didn’t couldn’t do it yourself? I’m sure we all have. One of your first thoughts was probably, “yeah that would be awesome, but who could actually build it? how much would it cost to get it built? what if the project didn’t work out? i’d be out thousands of dollars,” or something on those lines. I’ve had plenty of these too and while it could be answered with getting a technical co-founder, for me it would be even more satisfying to be able to build things myself. I’ve been through startup weekends where people build fully functional web apps that could bring in revenue in one short weekend. With all of the huge growth of collaboration in open-source software, the ‘magical’ frameworks and Heroku/AWS, it feels like it’s very quickly moving to a world where you can go from idea to viable application / MVP in a manner of days/weeks. I want to be able to bring my ideas to life through my own doing. 6951505066_f41c9a1b8d_o

It’s an awesome learning experience

If you’re like me and you voraciously love to learn new things, coding is really fun to learn. I didn’t think I would enjoy it as much as I do but it’s really cool to see your ideas become real functioning things with a few lines of code. I built a game of tic-tac-toe and a functioning blog site each in under an hour with very limited knowledge. While they probably aren’t clean in term of code, it’s crazy how much can be built in so little time. Even crazier is how a little idea can turn into a few thousand lines of code which can then be spread to millions of people. Some amount of work you do can be distributed and experienced by people all over the world in a manner of seconds. Most industries and lines of work can’t really touch that. Coding teaches you to be a better problem solver. In test-driven development you basically write tests that you want your code to pass before you even begin coding. By doing this you’re setting a definite endpoint and are then letting yourself loose to try and figure it out. There are many ways to get to the end but at the start it’s often opaque as to how to get there. Coding forces you to go about your thoughts in a very organized and productive manner. You can’t just wing it with coding. Things don’t just fall into place. You have to deliberately will thousands of small pieces together to create something usable. It also teaches you to be more detail oriented. You can’t be sloppy when you code. The computer (depending on the language) isn’t forgiving when you make mistakes. When you’re first learning, you can’t just glance at code and understand it. Nor can you just fly through the documentation and understand everything. You have to really look at it and understand every symbol in the code. Missing a semi-colon or a bracket can break the entire app.

Why I chose to do a bootcamp

My decision to dedicate the next 6 months to learning how to code and building some awesome products wasn’t a very hard decision after my thought process above, but why did I choose to do so through a bootcamp? In short, I can’t think of  a more effective way to learn a skill with such a steep learning curve. Coding is not easy. While it might be easy to go on CodeAcademy or the Michael Hartl Rails tutorial, you aren’t really learning how to be a good software engineer. Every time you get stuck you have to revert to forums and other stuff online that might not even solve the problem or fully answer your question. On top of that, you don’t know what you don’t know. Sure, maybe you can build a blog that has some cool features. But what if those features took you 10x longer than they should’ve because of a simple lack of knowledge. Not only that, but it’s hard to sit a computer that much learning by yourself if/when you get stuck. I want to be at a professional level of development in the next 6 months and I don’t think I could get there through self study. While I consider myself a motivated person, I don’t think I’m disciplined or talented enough to get to a professional level by myself in 6 months. I want mentorship, direction and instruction. And a lot of it. Bootcamps provide massive amounts of structure to the learn processes necessary to get to a professional level by the end of the program. They are led by people that have been coding for 5-10 years and who love to teach. Anytime you get stuck, you can get a detailed answer/explanation to the issue you’re having within minutes. Instead of getting discouraged from being stuck, you get to work amongst 20+ other peers who are working through the same problems and growing with you. Instead of not knowing what you don’t know, you’ll have most the things that you need to know laid out. After deciding to do a bootcamp my next challenge was to figure out which bootcamp. I knew I wanted to stay in SF so there 5 main choices. The top 3 in my mind in terms of career prospects were Dev Bootcamp, App Academy and Hack Reactor. Dev Bootcamp filled up through the beginning of 2014, App Academy I had a really bad application process with (involving emailing them without responses 4 times weeks/months before applying only to find out when I did the final admissions hoop that the cohort was already full) and Hack Reactor which I initially couldn’t apply to because their form kept failing (possibly due to my browser plugins?). The other options were HackBright which is women only and General Assembly whose program was very new to the bay. Given that the top 3 looked out of reach, I went through with GA’s in hopes that it could be as intense and successful as the other ones. Upon my first days of being in GA’s immersive web development program I immediately felt it was not the place for me. I was looking for something far more intense, that asked for more commitment from students and something that was much more outcome driven. After realizing that I wanted to leave the program, I started scrambling for ways to get into other programs and ended up emailing the founders of Hack Reactor to see if they had any spots open. After jumping through a chat application challenge and a couple coding/technical interviews, I am now extremely excited to be starting at Hack Reactor on June 17th! Their track record for creating hirable software engineers at a professional grade is unmatched. They demand more dedication from students than any other program. It is 6 days a week, 12-14 hours/day. Sometimes it’s scary thinking about that much time commitment, but I just remember that if I’m going to do anything it’s worth doing it well. And if I’m going to dedicate the next 3 months into learning how to code, I might as well go all in. With that I will leave you. I hope it was interesting to walk through my thought process of deciding to learn to code. Many people have said that it’s backwards to learn how to code after I’ve run a company and worked in product management but I think it’s quite the contrary. I see it as a very central dot that will connect to many opportunities in the near future. For anyone interested, I’m going to try to keep a daily blog of the bootcamp experience here.