The last 8 weeks have been INTENSE!!! I’ve been heading over to Zynga HQ after work on Mondays and Wednesday to learn Android development at CodePath. Our final project was due last Wednesday, and I want to share my thoughts on my CodePath experience while it’s still fresh in my mind. Enjoy!
CodePath is a FREE bootcamp, so the competition to get in is intense. Unlike other bootcamps, CodePath is aimed at people with existing coding experience who want to pick up a new skill (they also offer an iOS course, and I wouldn’t be surprised if they add future ones). Usually at least 3 years of professional experience is required, so the bar for getting in is set very high.
People in my class included a Google Engineer with 10+ years of Java experience and several Zynga engineers, some experienced in architecting systems that can scale millions of users playing the same Zynga game simultaneously! Of course the tech experiences varied, which made it a better class, but that should give you an idea of the high bar!
I actually applied 2 times when CodePath first came out, but didn’t get in. Finally I asked a friend who had connections to CodePath to refer me, and was accepted. Which brings me to the main key to getting in to CodePath – find a referral!!
The CodePath founders, Nathan and Tim, are looking to build a community, so just like any other exclusive club, referrals are a very big thing for vetting candidates. To clarify – by exclusive I mean to get into the on-site bootcamp. If you want to learn on your own, Nathan and Tim are very generous with their course materials (you can find the full Android tutorials here), so anyone in the world can learn.
The other buzz word here is COMMUNITY! Nathan and Tim are looking for people who will be involved in CodePath after the class is over. They’re looking for mentors, meetup organizers, people who are open to teaching, contributors to open source, etc. I would argue that showing off that you’re the kind of person who will take leadership in giving back to the CodePath community is more important than your technical skills for getting in.
Every day you’re hustling!!!! Unlike other bootcamps, CodePath is nice in that it’s an after-work bootcamp. You don’t have to quit your job to do it (another reason it’s competitive to get in). Every Monday and Wednesday night we met at Zynga HQ from 7-9pm for official class. On Monday, it was more of a lab day – more hands on review / extensions of what we learned on Wednesday, which was a hands-on lecture of new material.
After learning new material on Wednesday, we had to work on our weekly assignments due next Tuesday at 10pm. These included building a tip calculator, a twitter client, a Google Image Search client, and more. The assignments take at least 10 hours to complete, so that is where most of the hard work comes in.
Nathan, who runs the Android bootcamp, has very high expectations from every student (which I love), so he expects you go above and beyond in the assignments. Each assignment has required (minimum) tasks and optional tasks – so you can spend much more time beyond 10 hours working on it, and still have things to do!
During the Wednesday class, Nathan chooses one assignment that stood out and meets or exceeds his expectations. These were always very impressive.
This is a bootcamp, so you could get easily kicked out if you don’t submit an assignment on time or miss more than 1 class. I was actually surprised by how many people didn’t get kicked out, considering people have jobs and other commitments. But there were definitely people who didn’t make it – one person was kicked out after not submitting their very first assignment.
That said, the founders are very reasonable and fair if you’re honest with them. If you start your assignment early, email them with questions, and then still don’t finish it for some reason, they might be lenient toward you because they know you made a great effort and you were communicating with them the whole time. The person who got kicked out from the class on the first assignment, for example, only emailed the founders with a question on Wednesday morning, after the assignment was already due.
I’ve been to a few bootcamps by now, and CodePath has really done the best job I’ve seen (and experienced) in getting the group formation process right (aka drama-free, I’m serious!).
The first thing they get right is forming the groups very early – in Week 2 or 3 of the bootcamp. There is only one instructor for the entire class (30+ people), so having a group to lean on throughout the class was invaluable. My group set up a What’s App group to message throughout the class. It was good to know that I wasn’t the only one struggling in the class.
The other advantage of having a group early, was the motivation to stay in the class. I wanted to quit the class a couple times (more on that in the time commitment section below), but because I already attached to my group, I just couldn’t let them down, even though we haven’t started our final project at that point!
So back to the amazing group selection process. During the second (or third) lab in class, we split up into a few groups, and each group came up with at least one project idea. Nathan gave comments on how to think through the idea on whether it is viable in terms of creativity, technical challenge, and product. We then mingled with each other some more – talking to someone we haven’t talked to before for a few minutes each.
After the class, we submitted a survey to Nathan listing 5 people we want to work with, 5 people we don’t want to work with, how much we plan to work on the project (5-10 hours vs 10+ hours vs 1-2 hours per week), and the ideas discussed in class that we like. Nathan then matched all groups based on the survey. Boom! All awkwardness and weirdness of selecting people to be on your dodgeball team in public gone.
The Final Project
After week 5, the weekly assignment stop, and the rest of the outside-of-class time is spent working on final group projects. There is an internal demo day on the last Wednesday of the class- where every group presents their projects.
Out of the groups presenting (11 in my class), only 3-5 best ones get picked to present at a more open demo day, where everyone’s friends and contacts are invited as well as technical leaders from companies interested in recruiting. The best project from the class wins $10,000 from CodePath sponsors, and there are other prized involved.
My group, unfortunately, did not win a spot at the exciting external demo day, but the competition was more than fair. The 4 teams that won built incredible product that would take me months to build to be honest. I’m excited to also see the four projects from the iOS classes!
I feel like I already covered that CodePath takes a lot of time, but just wanted to re-state it here. Make sure that you have your schedule completely cleared (besides work of course) during the 8 weeks you’re going through CodePath. I unfortunately, did not do a good job at this.
I ended up starting a new job during the second week of CodePath. Then my new job had me travel for a week for training, so I had to miss a week of CodePath (I still turned in my assignment of course), and I got in to attend the Y Combinator’s Female Founders Conference the weekend before our final project was due – leaving my team to do some of the most critical work on our project for that day (not something I’m proud of!).
So while my tip calculator project was selected as the best project for the first week, it only went downhill after that! I was too busy with other thing to do the optional tasks on my assignment and to really make projects that fit my own high standards, and were something I was proud of.
Another thing to mention is that while the classes are 7-9pm, I usually ended up staying closer to 10pm talking with my team or asking a question. This probably doesn’t seem like a big deal to many of you, but I personally have a very intense Hacker Schedule, which includes going to sleep at 9pm and waking up at 5am. This schedule is what keeps me going each day. Having my hacker schedule messed up week after week has made me really tired and a lot less productive. In retrospect, I should have come up with a new schedule for the duration of the class.
While I just started a new job, and am not looking, I wanted to mention this aspect of CodePath for those of you who are considering a new job. CodePath is partnered with recruiting firm Riviera Partners, so there is job finding assistance for anyone interested.
Since we just finished the class, I don’t have statistics on how many people interested in jobs were able to find them, but I don’t think I really need them. The people in the class are all experienced engineers who built impressive projects throughout the class, so I have no doubt that anyone looking for work after CodePath will find work without many problems.
Also, the CodePath and Riviera’s job finding mission is very long term. Their plan in brilliant actually. They’re building a networking of great engineers. So while I’m not looking for a job now, I know I can always turn to my CodePath network later to get help finding my next gig.
Overall, I’m really glad I took the CodePath class, and more importantly that it was structured in a way that I stuck with it. I’ve contemplating quitting a few times, and I would have definitely quit if I was learning Android on my own (it’s painful!).
Only during the last week of CodePath I came to a peaceful place with Android. I don’t hate it anymore, and I know that if I wanted to, I can figure out how to build anything with Android. I still LOVE iOS, but again, I don’t hate Android, and would be ok doing it if I have to in the future.
I’m also very glad to be part of the incredible CodePath community. It was great to be one of the least-experienced people in the class – I now have a huge network of people to learn from!
Coming Up Next
Thanks for CodePath’s incredible group selection process, our group has really worked out. We’ve all decided to continue working on our final project, Hush!. Download it, but don’t judge it just yet. It is currently very buggy and, embarrassingly enough, when I announced via social media that it was in the Play store yesterday, the only thing the app did was crash! We uploaded the APK build with the wrong key, so it wasn’t even loading!
I’m going to focus on building the iOS version of Hush!, while my teammates will keep working on Android. While it’s sometimes hard for me to work in teams – since my opinions don’t always win, lol – I’ve decided to do this mostly because I’ve seen the impact it had on me during CodePath in terms of not being able to quit.
So far, every project I’ve built by myself, I’ve quit on. Having a team there pushing me and challenging me will be a great motivator to keep going. So look for Hush! in the app store in the next month or so! Remember, this is only the beginning. As the popular quote goes, if you’re not embarrassed by the first version of your product, you’ve launched too late! I will be embarrassed by Hush! for a while, but eventually it’ll become something my team can be proud of 🙂
If you’d like to learn more about how to make the most out of a bootcamp experience, read more in my book: How To… Learn To Code. Get Your Dream Job. Change Your Life.