How good will I get at coding in 3 months?

A common question for people new to programming or those who have just enrolled in coding bootcamps is, “How good will I get at coding in 3 months?”

I had this exact same question as well. Part of the reason why I write this blog is so that other people can use it as a reference to what a normal non-genius person can achieve if you devote your time to the course work and other coding activities. It can also be used to see what cannot be achieved even if you are super motivated.

To set the premise of what I mean by “devoted”, in the last 3 months, I have built a habit of coding 5~10 hours a day, or at least 2~3 hours a day even on busy days. I sleep around 2~3AM and wake up at 8AM; cutting down on sleep was the only way to really balance school work, Firehose course work, and the web development job I got midway through the curriculum. I never watched TV, locked myself in the room so that I could focus on learning coding, and had to sacrifice some of my social activities. It was not easy to say the most.

But because I had devoted a lot of time and energy to coding, I became pretty comfortable with the Ruby on Rails framework. By the end of the bootcamp, I was able to build fairly complex things beyond the course curriculum on my own.

I built the app but I knew right away that there was only a slight chance of being selected. I looked at the list of 176 other competing students. 90% of them were from Ivy League schools majoring in Computer Science.

The results came out and unsurprisingly I wasn’t selected. And this was rightfully so; how could I compete with them?

I say this not because they are top-tier “Ivy League students”, but because of the reasons they are top-tier. These students are also devoted to their craft and probably spend the same amount of time, or even more, to improving. And they’ve been doing it for longer than I am. The obvious observation here isn’t a difference in talent, but rather in the amount of time and energy spent coding and learning about it.

I’ve noticed two traits in passionate computer science majors.

First of all, there are a LOT of passionate computer science majors. They love coding, they love learning about computers, and they are total nerds (in a good way). They are super knowledgable and being a computer guy is their identity.

Second, every passionate coder spends a significant amount of time coding everyday. It wasn’t just me, this was the norm (at least for those who are passionate about it).

So obviously a coding bootcamp graduate is not going to be able to compete against these people within 3 months. There are a lot of passionate techies out there who are really good at what they do.

On the other hand, these people are only a portion of computer science students. Most of them only engage in course work and don’t try to build new things by themselves. A lot of them, even if they have good grades, aren’t capable of building web applications that integrates front end and back end.

Going through a coding bootcamp like The Firehose Project can make you a better developer than most computer science students, as in, you will be able to make things. You may not be able to solve super complex computer science problems, but you will graduate being able to build useful things.

The takeaway here is that although going through a bootcamp won’t magically make you a top-level coder in 3 months even if you put in a lot of effort and time, you will still become pretty good at developing websites, probably better than a lot of students. Coding bootcamps are designed to skip certain aspects of computer science that aren’t practical or necessary for real-world coding and I find this to be very true.

With that being said, you do have to let yourself spend a lot of time and focus on actually writing code to become a little bit better every day. A lot of this will come naturally because coding is really fun and awesome. But if your goal is to land a job in web development, you also have to push yourself to learn a little bit more than the other person competing for your job, because a lot of coders are also devoted to their craft.


The Firehose Project – GRADUATION

12 weeks ago, I had no idea where I would end up. I had no idea what I was doing. The only thing I knew that it was going to be a start of something new and exciting.

12 weeks later, I find myself obsessed with coding. I code 5~10 hours a day and wake up everyday excited about learning more and creating more. I often times find myself not wanting to sleep because I want to code.

Learning how to code has changed my life in a great way that I never thought was possible. It has given me not only a useful skill, but also an identity.

My initial motivation to start coding was complicated.

I spent my sophomore year thinking that I wanted to be a business man, maybe a consultant of some sort, eventually create a business, and basically invest my time and energy for going that super “ideal” route. I declared as a Business and Economics double major and I thought I was going to be right on track.

Meanwhile I was interning at a small consulting firm and also doing some translation at the company as well. I saw a gap in the translation market, decided to test the idea out, and it worked. I started up a business and within 6 months I was making $3,000 a month in profit a month, which was pretty good for a college kid.

And within 6 months, I was exhausted. I realized having money was nice, but I wasn’t passionate about money. I liked translating because I was creating something and helping other people. I liked giving my friends jobs because it gave them money.But could I continue this for a lifetime? Did I wake up excited about my business?

The answer was no. You might say, “Well that’s the way it is. You barely even know business anyways, you’re still a college kid.” Which was probably true. But instinctively, I knew that even if I went out into the “real world”  of business, I would still be more passionate about creating things.

I learned a lot about myself during these times. I learned that I love supporting people and helping people, but I suck when it comes to aiming for higher profit just for the sake of getting more money (if there is a mission I would be passionate about it), or anything along those lines. On the other hand, through translating, I learned that I really liked creating things for people.

I thought deeply about what kind of career would make me happy. I always thought that it would be awesome if I could code, but I thought it was too late to learn it.

In my freshman year, I tried CS50, the online Harvard introductory computer science course. It taught programming in C with pointers and memory allocation, and I was just confused out of my mind. It gave me the impression that coding was this super difficult skill to obtain.

But one day in July, I saw some kind of article talking about “coding bootcamps”that train you to become a coder in a span of 3 months.

At first, I was skeptical.

Coming from a slight economics background, I thought to myself, how could this be? If programmers are so high in demand and so short in supply, this must mean that programming is a highly specialized skill which is so hard to obtain that there is a supply in shortage. If it were that easy to learn coding, then the gap between the demand and supply should have closed by now, therefore it is probably a scam. Right?

Wrong. I first looked at the statistics and realized that there was still a HUGE gap. Then I looked at some of the blogs of graduates of these so-called bootcamps. Some of them were indeed getting jobs after graduation.
Gradually my trust towards bootcamps increased and I decided to take a look at the options.

There was hackreactor which looked promising, but then I looked at the tuition: $17,780. Intriguing, but impossible.

There was bloc which was also promising, but then again: $9,800. Still impossible.

Then there was The Firehose Project. I did a lot of research about them and didn’t see any negative reviews at all. I read the blogs of students and graduates, and they all seemed to be super satisfied. The price? $4,500. A lot, but possible.

This was the bootcamp I wanted to enroll in. I signed up for the 2 week prep course and finished it within days. I then had to persuade my parents which I wrote about inthis blog post.

Since then, a lot of things happened in my life.

  1. Changed my major from Business/Economics to Business/Computer Science
  2. Got my first job as a web developer at a local start up (Week 7)
  3. Won 3 awards at my first hackathon (Week 9)
  4. Selected as a finalist for the Capital One Software Engineer Summit (Week 10)

The way I spent my time, the people who I hang out with, and the way I see things have completely changed.

I realized that with the power of coding you can do and create so many things. If you have an idea for a business, you can now create it. If your friend needs some help for a website, you can help him.

For a professional coder, this may seem like old news. But for me, it is still an amazing feeling to have the skills to create something cool.

The Firehose Project has been an amazing experience for me.

My mentor pushed me to learn things beyond the curriculum and I couldn’t have asked for anyone better. The curriculum went through the solid fundamentals of programming. The coding challenges involving advanced computer science algorithmic problems were extremely difficult, but through the office hours, I was able to receive amazing help and support that enabled me to solve them. I’m still on my team project (they allow you to continue on the team project even if you have graduated), but I know this will also be another learning experience as well.

Here are three things I loved about The Firehose Project

1. An active and welcoming community
The community at The Firehose Project is very active, with people constantly asking questions on the Slack channel and posting valuable information on the Google Plus group. Alumni still hang out in the community (many of them working as a web/software developer) and they help out in solving advanced problems. I’ve made a couple of buddies in this communities and we sometimes even work together on problems and pair program as well.

2. 1 on 1 Mentor Sessions
At The Firehose Project, each student will have a 1 hour mentor session every week. How you choose to spend your time with your mentor is completely up to the student. For me, I always listed questions I had during the course work, or other advanced topics that I couldn’t figure out. I couldn’t ask for a better mentor. He gave me extra meaningful work/exercises and really cared for giving me the insight to improve as a programmer. Even after the program is over, I want to keep in touch with my mentor because he was such a great educator.

3. Coding Challenges
The Firehose Project provides many coding challenges which students will go through. These challenges are common interview problems or computer science problems and are very difficult. As a computer science major, I know that just learning Ruby on Rails isn’t enough to become a good developer. Logical thinking skills are essential. As I am developing a complex website for a local start up, I find myself being able to solve problems and obstacles faster than before because of the countless hours spent banging my head against the wall trying to solve these challenges.

The Firehose Project has given me the knowledge to learn coding on my own. It has given me a skill that I can turn into a profession. And mostly, it has given me a lifelong passion.

I highly recommend this bootcamp for anyone who wants to become a programmer and join a community of enthusiastic and friendly people.

The Firehose Project – WEEK 11 / Building a Forum with Ruby on Rails – Forem Gem

Ruby on Rails has many useful gems for almost any purpose. You name it, and there is probably a gem for it.

One thing that I had trouble finding was a discussion board gem. I needed a discussion board/forum with reply, quote, edit, etc. for the website I’m currently developing .

I figured I could develop it with rails but it would probably take me some time. Moreover, there was probably a gem for that, I thought.

However to my surprise, all of the discussion board gems were either outdated or currently under development.

I was reluctant to try any of them out, but figured it would take me more time to build it out on my own than to configure the existing gems.

I decided to use the Forem Gem because it looked pretty easy to implement and was the most active.

I went through the installation process and went to the discussion board page to see if it was any good.

At first glace, it was terrible. Everything was unaligned, forms were broken, and I knew it was going to be a pain to fix.

On the other hand, I found the basic functionality worked fined, so luckily I only had to deal with the front end.

I customized the views for Forem by first generating the views with rails g forem:views.

I then went into the corresponding erb pages and fixed up the buttons, forms, etc.

In the end, it actually didn’t take much time to configure everything to make it look nice. All I had to do was make the front-end cleaner and I was set.

All in all, the forem gem wasn’t too much of a pain to deal with at all. It works very nicely, but you would need to tweak the front end to make it presentable. It’s much easier and efficient than trying to build something similar by your self, so using this gem would be a practical solution.

The Firehose Project – WEEK 10 / Custom Stripe Payments, Instagram API, and the Capital One Software Engineer Summit Final Round

As I’m developing the website for my job right now, I’m constantly hitting walls and spending hours and hours trying to figure out how to implement one little feature. One feature I had a lot of trouble this week was implementing a custom Stripe payment form.

Custom Stripe Form

Essentially what I wanted to do was have a form where a user could type in the amount of money he/she wanted to pay to the website’s virtual currency system and have Stripe process it.

For example, I wanted it so that a user could manually type in $20 into a form box, which would automatically transfer into a Stripe payment of $20. I looked at the documentation and I really didn’t know where to start.

After 10 hours of work, I finally got it working (I will hopefully post in the future how I did it). Here is my super simplistic form page:

Screen Shot 2015-10-22 at 10.00.46 PM

When I click on the button, and for example if I wanted to add $10,540, this is what will show (for some reason mine is in Japanese…)

Screen Shot 2015-10-22 at 10.02.05 PM

After the payment processes, a page displays to confirm that the payment went through:

Screen Shot 2015-10-22 at 10.03.19 PM

Now if I go back to my profile page, the balance is successfully added.

Screen Shot 2015-10-22 at 10.03.32 PM

I was super excited when I got this to work.

Capital One Instagram App

Another thing I’ve been working on is this weird app that displays the 20 latest Instagram posts with #capitalone. It also displays the number of likes each post has, the user that posted it and their information such as number of followers, number of people they follow, etc.

It also implements a super simple algorithm that attempts to determine whether the post is positive or negative towards Capital One.

The approach I took can be seen here: Capital One Instragram App About Page.

The reason I’m building this app is for the Software Engineer Summit hosted by Capital One. It’s highly competitive with applicants from all over the country, but luckily I was chosen for the final round. Although my app is probably far too simple for it to be accepted for the final selection, if I somehow am chosen, I’ll get to go to their 1 week software engineer summit which would be pretty awesome.

Being a student and enrolling a web development bootcamp can give you a lot of perks. Mainly in the fact that you will be way ahead of most CS majors in practical skills. So if there are any CS undergrads wondering if enrolling in a bootcamp is worth it, I would highly recommend it (although balancing school work is incredibly challenging).

The Firehose Project – WEEK 9 / My First Hackathon and getting job offers

This weekend I went over to a hackathon that was taking place at my school. I didn’t know exactly what to expect, but I decided to go anyways.

The atmosphere was vibrant, full of geeks and nerds. At first glance I knew this was going to be something exciting.

Within a few minutes, I met a business-guy who had a cool idea, so I decided to team up with him. We then had two more developers, one a node.js and another an android developer.

At first I was unsure how my skills matched with the other developer’s, but after talking with them I realized I wasn’t too far behind. They had more knowledge about implementing APIs and the theoretical computer science side of everything, but regarding web development, it seemed that I would be able to contribute the most.

Unfortunately, because we wanted to use a certain API and it was easier implementing it in node.js, we decided to use that instead of rails.

We decided on creating a web service that matches high school students with college mentors that provide consultation regarding school fit, guidance through the admission process, and other necessary mentoring.

Since we were building with a node back end, I was in charge of the front end development.

We had 24 hours to hack together something cool. We had an exceptional team leader (the business guy) and we somehow knew we were going to do well.

So for 24 hours, our team created simple mock ups of the service. My responsibility was to make the mock up look nice and to constantly improve the user experience/interface.

Although we couldn’t get much back end functionality running, after 24 hours, this is what I came up with ( :

Screen Shot 2015-10-12 at 9.33.58 AMScreen Shot 2015-10-12 at 9.33.44 AM

Screen Shot 2015-10-12 at 9.35.41 AM

We also had a few other pages, but basically this is the kind of feel I went for.

After the 24 hours was up, it was time to pitch our ideas. Judges came around while we frantically tried to pitch our ideas. Some loved our idea, some were not so interested.

I received quite a few compliments regarding the visuals on the website, which I was quite happy about since I had designed the whole thing.

So after the whole event was over, we ended up with three prizes: “The best use of IBM Bluemix Technology Award”, “The best use of Interactive Intelligence Award”, and the “Most Start-up worthy Award”.

Our team also ended up receiving job offers from a pretty famous company.

The whole experience was a blast. Not only because of the rewards, but because of the people I met there and the exposure to so many different technologies at the event. It also made me realize the possibilities of coding and how much The Firehose Project has really changed the opportunities that come to me. I am really grateful of the opportunities I am receiving because of what I am learning at The Firehose Project. It is really exciting and I can’t wait for more.