Wednesday, July 30, 2014

Day 58: Phone interviews and working more on the UI of TrainerExpress

This morning I had two phone interviews from prospective employers. One was for a front-end developer position at a major fitness company and the second one was from a tech consulting company.

The interviewer for the tech company asked a bunch of technical questions regarding front-end development. Although I know a lot of these things in actually implementation, I had a difficult time answer specific technical vocabulary questions (e.g. What's the difference between progressive enhancement and graceful degradation). The interviewer was nice enough to give me the answer he was looking for so that I can be better prepared for the next one. All in all, I don't expect to be moved forward with the next step of the process. It was a humbling yet great learning experience from my first interview.

The second one was for a tech consulting team that's trying to expand to Seattle. They are quite present around the world but they're looking to fill their tech needs in this new market. The phone interview just composed of simple questions about me and my background. He then sent me an email containing a few algorithm questions. They were so simple that it kind of threw me off guard. I made sure that I submitted the most efficient algorithm to my knowledge. There will be more of these coding challenges in the future which will be much harder I'm sure. I think this first one was to weed out extreme beginners. I expect to get a second coding challenge in the future.


After those two interview in the early afternoon, I was actually pretty exhausted. Being that they were my first phone interviewers with actual hiring managers instead of recruiters, I was very nervous. After taking a long break, I started continuing my project.


Here is a quick snapshot of the finished page of my application.

My brain is definitely fried and feeling the pressure of finding a job. I just need to remind myself that this can become a long process and that I should really take things one day at a time.

Tuesday, July 29, 2014

Day 57: Designing the User Interface for TrainerExpress

I'm getting another step closer to having my application "launchable".

Today I focused most of my time on the User Interface for my application. It's probably the section that I'm weak at but me being a perfectionist, I still had to make it look pretty good.


Here is me taking a photo and tinting it just a little bit so that my the white font can be visible. I had such difficulty making the white text look good because it would blend it with the sky, making it really difficult to read. However I asked one of my classmates who is a designer and he suggested that I just tint it just by 10 to 20% and it'll make the white text visible while keeping the picture bright.

Simply brilliant. There's a reason why we have designers in this world in addition to developers. I also asked him to take a look at more of my application and help with the UI. I'll be doing most of the coding of it but it'll really help getting a designer's eyes on it.

I'm really excited to get this out there on my portfolio.

I'm still having plenty of recruiters calling me. This project should be good to go in about 2 more days. I give it another day for the UI and another day to get the other stuff done like a solid "ReadMe" file and resume updates.

Although I may sound really ecstatic on this post, in reality today was really difficult because I had such difficulty figuring out what would actually look good. But all in all, some progress is better than no progress and I'm just excited to be one step closer to finishing my project.

Monday, July 28, 2014

Day 56: Finished all basic features of TrainerExpress

All throughout the weekend, I worked on the necessary functions of my fitness application. Users can login/sign up, create their own workout routines, see a list of all routines, and initiate a workout routine session. As of now when users begin their routine, they can only click next for you to continue onto the next step. I plan on using some voice recognition so that users can say the word "Next" to continue to the next step.

I'm extremely comfortable with Angular and how they have the code structures in controllers, views, and factories. There's a lot of demand and I'm sure many hiring managers will be impressed with the code that I have produced.


Here's a quick glimpse of what the user interface looks like on the last step of a workout routine.

For the rest of the night, I'm going to figure out how to use PhoneGap to make sure that I can get this to become a mobile app!

Friday, July 25, 2014

Day 55: More progress on TrainerExpress

After about 8 more hours of working on TrainerExpress, I've gotten about 50% done with the application. I definitely need to come in on the weekend and go hard on it next week to make sure everything looks great.

Javascript is a difficult language in that it is extremely difficult to debug when you make an error. Hence it's taking me much longer to do everything. Furthermore, the lack of structure in a NoSQL database in MongoDB makes this much more difficult to enter into the Database. But nevertheless, I am still making relatively good progress. I give myself maybe 2 more full days until all the functionality is perfect. After that it's all about making the UI beautiful and exporting it into a mobile app.


Here is just a quick snapshot of the user homepage with available workout routines. On the right is the database structure for my application.

I'm not the only one here staying late working on my projects there's a good handful of us really working our butts off making sure that our portfolios are looking sharp. Definitely gotta keep going strong at this and secure a developer job that I actually want!

Thursday, July 24, 2014

Day 54: Working on TrainerExpress

Today I started my ambitious day on working hardcore on my application.

I did not get nearly done as much as I wanted to. Honestly if I was doing a Rails application I would've completed all 7 of my objectives.

But after one day of working on this, I only ended up barely completing 1. Ouch... I kept running into little bugs and difficulties connecting the pieces together. Not to mention I am a little rusty on Angular, Express, and MongoDB.

The thing I had the most difficult with was rendering the partials properly.


I was constantly asking my classmates and instructors for help on fixing bugs. I probably asked more than I ever did on any other day during the bootcamp.

Since this is going to be on my personal portfolio, I really want to make sure it looks good and presentable to hiring managers and others.

Wednesday, July 23, 2014

Day 53: Meeting with Recruiter, Wireframe approval, building Front-End of Project

Once again I woke up to phone calls from Recruiters starting at 8AM. Those ones are usually from the East Coast. The number one skill that is in highest demand is Angular. I have gotten 90% of my calls because I have Angular listed on my resume. The other 10% were simply Front-End Development. At around 9:30 I got a call from a recruiter who's office was about 3 minutes away from where I lived so I went ahead and scheduled a meeting with him.

The meeting was surprisingly good. There really are a lot of opportunities out there. The recruiters wanted to push my application forward but it's difficult when I don't have any projects live. I really need to make progress on my projects so that's exactly what I did today.

First things first I wanted my personal website up and running even though I'm not 100% satisfied with it. I already had a domain from GoDaddy and hosted my site using HostMonster. It can be found at www.tedwhang.com

It's also responsive!



In the picture below I have my wireframe and my rough draft of my rendered code. I didn't want to over spend time figuring out the design as there might be some changes when implementing the back-end. I'll definitely be retouching the front-end repeatedly throughout the development process.


After a good days of building the front-end and making sure that my wireframe is approved, I decided to spend the rest of my time figuring out what I'll aim to accomplish tomorrow.

It's ambitious but I want to build all necessary functions tomorrow.


Enough talking about me all the time. Here a quick snapshot of a project one of my classmates is doing. It's a javascript game where the characters are based off of the Legend of Zelda.


I love how Coding Dojo doesn't restrict you from building what you want. Whatever interests you and will put you in the best position to go whatever direction you desire is what you can build. There are no limits here!!!

Tuesday, July 22, 2014

Day 52: Recruiters and Project Wireframes

First thing I was to state is that yesterday I posted my updated resume to a website called Dice and I have literally received 6 calls from different recruiters. Literally one call every hour this morning from 8 to noon and 2 more in the afternoon.

Some of them really had poor English skills and it was difficult to communicate with them. I definitely don't want to work with them but I was polite as they might end up having some opportunities that I'll be really interested in.

I didn't really have any live projects up so it was difficult to get to the next step but the recruiters just wanted to get to know me and my background and see how they can help me get employed.

After all is said and done, I am still surprised by the shear number of people that called me.


I must say I was pretty lazy and sluggish this week but all these calls really built a sense of urgency to start working on those darn projects!!!


I have two applications in mind: One is a textbook marketplace app and another one is a personal trainer app.

Here is a quick wireframe of the personal trainer app:


Michael Choi wants to take a look at everyone's wireframes before we start so that we don't run into dumb roadblocks or mistakes.

I'll be continuing my app building so that I have something to show hiring managers!

Day 51: Final Resume and Build Online Profile Presence

First off I got my Rails Black Belt exam result and... I barely didn't pass. Yikes. To be honest, I got a little too cocky with that exam. I'll be taking another Rails belt exam at the end of this week and I'll be sure to double and triple check. I think my brain was also too exhausted from all the coding. Gotta make sure that my brain is ready next time.

But on to a more positive note, Michael Choi took a look at my resume. After making some minor formatting changes it was time to unleash my resume to online profiles. I have updated my LinkedIn, created a CareerBuilder, Dice, etc. and am seeing what kind of opportunities recruiters bring. In less than one day, I've already received 1 email and 2 phone calls from recruiters. Unfortunately, none of them are what I'm looking for because these opportunities are on the East Coast but that's okay. I expect to get recruiter phone calls all the time.

I found it difficult to work on my project so instead I decided to work on my personal website.


Not quite something I'd be proud enough to put online but it's a good start.

Sunday, July 20, 2014

Week 10 wknd: Beginning of Rails project (TextBookSnap.com)

Today I seriously started working on my application that demonstrates my Rails knowledge and skills.

I'm creating an application where students can buy and sell textbooks.
Some features I want to add are:
1. Ability to see what the current market is buying and selling the books for.
2. Sign in using Facebook (oAuth)
3. Search functionality

But first things first, I need to make an app where users can log in and post books that they want to sell.


Here is a quick glimpse of my work station. I have my models and checklist on the whiteboard while my code and rendered pages are on the screens.

I came in on this Sunday just to get the wheels rolling and map out what I was going to this whole week. I have most of the user RESTful routes working and login/registration finished. Tomorrow I'll be working on getting the ability for books to be uploaded and displayed on user's homepages and whatever else I can accomplish.

Friday, July 18, 2014

Day 50: Rails (deployment with Heroku) and writing my new resume

Deployment is simply a breeze with Heroku! Kind of too easy that it's scary. All you really need to do in a Rails application is change your database to Postgres, make a Heroku account, type in some things in the Terminal an voila your app is now hosted. Now you just gotta point your domain and you're all set to go.


Above is the beautiful UI that Heroku has to see all the applications you have uploaded. The funky name are done by default so that there isn't any conflicts with names.


Well I'm actually done with the curriculum of Coding Dojo! I mastered PHP (Codeigniter), Javascript (MEAN stack), and Ruby on Rails.

Now that I've gotten the necessary skills, it's time for me to start doing what I came here for: to find a developer job.

Michael Choi as well as other classmates who have a lot of experience in the industry and have seen a lot of resumes each took a look at my resume. I received a lot of great criticism of my old one and have created a new one (not quite finished yet).


I plan on iterating on it by constantly making adjustments until it's something that I'm proud to send to hiring managers and recruiters. For now I'm going to leave this resume alone and have more people take a look at it on Monday. Until then it's time for me to work on my personal projects!!!

Day 49: Rails Black Belt Exam

After finishing the Test-Driven Development portion of the curriculum. I figured I was ready to take the Rails Black Belt exam and become a "Double Black Belt".

The Exam was to build what I thought was a modest application, but as I made my way making the application, it turned out to be much more complicated than expected.

The application was a money-lending platform in which users can register and log-in as a lender or borrower. Every time a lender decides to lend money to a borrower it would automatically update on both user homepages. It seems relatively simple but there were many features that to it that it took me much longer than any other exam I've taken.

Nevertheless I think I passed but we'll see about the results when they do come in! Up next I will be doing a little bit of Heroku (which I actually have a lot of experience with when I did Michael Hartl's Ruby on Rails tutorial) and start my job searching!

Wednesday, July 16, 2014

Day 48: Rails TDD (Rspec, Capybara, and Selenium)

Now I'm getting into the meat of what Test-Driven Development is all about. It's really about making sure that everything that you intend your program to do is done properly. Although it's initially slower to make these tests, in the long run you run into much less debugging issues and is better in the long run.

Here's a quick snapshot of my code for testing.



What my Selenium code is actually doing is actually visiting the intended external site and doing whatever I tell it to do. In this example I'm telling the code to put in information in the email and password input fields and click submit.

The crazy part is that it does the whole thing right in front of my eyes. The code literally opened up my Firefox Browser, filled-in the proper input fields and clicked "log in"



It's quite amazing how sophisticated these tests are capable of. It'll probably take me another half of a day to solidify this. Once that is done, I'll be learning deployment to make this Ruby on Rails stack full circle.

Day 47: Intro to TDD (Test-Driven Development)

I couldn't get much done today because of some prior engagements but I did manage to get as much done in terms of dipping my feet into the world of TDD. Ultimately TDD is a way to test your code as you're writing code making sure that the code acts as expected.

It's really crucial that you are constantly writing good code and making sure that your code isn't bugging along the way. It really comes in handy when you are debugging your code as well.

Furthermore TDD has gotten so popular that it is widely accepted in the Rails community as well as in the workplace. It's definitely something to have in your resume.

Monday, July 14, 2014

Day 46: Ajax with Rails

Back to Monday again!

Today I finished the giant Wall assignment in Rails and moved onto utilizing Ajax in Rails. I didn't think I would see Ajax again because of the technologies in Angular.js and other front-end frameworks. But it is good to re-learn Ajax. I must admit that I forgot how to actually do an Ajax call in the traditional way and had to go back and relearn it. Thankfully it was like riding a bike and I was able to do the assignment without too much trouble.

Here is the good ol' Ajax assignment back when we were still doing PHP. The only difference is we're doing it in Rails.



Up next we have TDD with RSpec and Capybara.

Friday, July 11, 2014

Day 45: More Rails Applications

Today was simply more iteration on creating Rails application. This time we were to create the infamous "Wall" assignment.

I thought I was going to blaze through this assignment like I was doing with the previous assignments but this is taking much longer than I expected. It mostly took me a long time to figure out the logistics and what the steps were that I needed to take.


Here's just a quick glimpse of my workstation with my code, rendered view, terminal, and assignment.

These weeks have been going by really quick and I can't believe it's already Friday. Had an intense week of coding and will definitely do my best to relax this weekend so I can finish the Rails section strong!

Thursday, July 10, 2014

Day 44: Rails (Controllers, RESTful routing)

Index, new, create, edit, update, show, delete are the 7 routes that are part of the RESTful architecture. Pretty much stating that all users need these 7 functions.


This morning we had a lecture about this RESTful architecture originally thought of by a Stanford Ph. D. The rails community has heavily accepted this and have created routing rules so to make it easier to organize your code.

Today we continued working on assignments by building application. This time actually using a SQLite database to connect with the Views and Controllers.

The true beauty of Rails is how quickly I am able to build this application as opposed to Codeigniter or Express. It's no wonder that it has such popularity amongst the startup community!

Wednesday, July 9, 2014

Day 43: Rails (Controllers)

Now we're on to the Controllers and Views portion of Rails.


Here's the "smoke page" to let you know that the Ruby on Rails server is running and you're clear to start making your application.


One of the best parts about Rails is how easy it is to install dependencies using 'gems'. I am easily able to install Twitter bootstrap and make it available to all the view files.

The type of applications that we make as part of our assignments are similar to the ones we've done in other languages but this just time we're doing them in Rails. It really makes you think that languages are just different ways of accomplishing the same thing. Although each language and framework does have their strengths and weakness, they are much more similar than different.

I'm really loving how I am understanding what exactly is going on when Rails is generating a model, view, and controller and how the routing rules dictate how the application is run. It's probably the best framework to build a prototype because of how fast it is. You really do save a lot of code because of how Rails does a lot of connecting and rendering for you. You have the follow the "Rails Way" else all the functionality doesn't work at all!

A lot of my classmates as well as I are definitely feeling burned out. I try my best to take periodic naps and breaks and remind myself of why I embarked on this journey in the first place. This bootcamp-style learning was never meant to be easy, but in the midst of it it's often difficult to keep the drive strong. Definitely not for the weak-hearted!

Tuesday, July 8, 2014

Day 42: Rails (Models)

Coding Dojo teaches you how to work with Models first when learning Rails. I especially thought this was clever because models do take some time to learn and can be learned independently. The other components (controllers and views) are heavily reliant on each other along with the routing, so it's best to chip away at these as simple as possible.

Rails uses ORM (Object Relational Mapping) to communicate with the database. Regular SQL queries can be used however it is frowned upon in the Rails community. When possible, we should always be using ORM.


Above is just a picture of me working with the database in the Terminal. Eventually these queries will all be made in the application code but its good to get comfortable with queries using the terminal as practice.

Monday, July 7, 2014

Day 41: Finishing up Ruby

The results from the exam last Thursday came in and I passed the Black Belt Exam!


I didn't pass with flying colors but the mistakes that I did make were easily fixable.

Now that I have the javascript stack behind me, it's time to tackle Ruby on Rails.

After priming my brain over the weekend, I really cruised through the whole Ruby section. I really like all the cool stuff you can do on Rails. For example you can use a selector in a parameter which allows you to submit a varying number of parameters when calling a function.


It is quite frustrating sometimes when using a new language especially when you're trying to do something as simple as a for-loop. But with any new language it'll come with time and exposure.


Here is an assignment that I particularly enjoyed. We were to override functions that are built into Ruby and simple re-create them. It showed us that all built-in functions are just a combination of basic functions that we know very well.

After zooming through the Ruby portion, it's time to tackle Rails!

Week 8 weekend: More Ruby

This weekend I simply worked on getting my brain wrapped around the Ruby language. I still find it difficult to code using it because it's not as "traditional" as the C-family languages (Java, PHP, C++, etc). There are just so many new functional (although very helpful) that it can get a little overwhelming.

Saturday, July 5, 2014

Day 40: Intro to Ruby

Today begins the last stack we learn from Coding Dojo, Ruby on Rails.

Although there isn't formal class today, I decided to prime my brain for this new syntax that's completely different than PHP and Javascript. I really like how clean Ruby is. It's very similar looking to python. At times it's pretty refreshing to see code that doesn't have a bunch of curly braces making it look like machine language. Ruby reads a lot more like English and can be interpreted much easier (although that point can be debated).


This is a quick screenshot of tryruby.org where many beginner programmers start their journey to becoming Ruby on Rails developers. I really like how well this app was built to make it easy and fun to learn the Ruby syntax. Week 9 and 10 will be fully devoted to this topic!

Thursday, July 3, 2014

Day 39: Black Belt Exam

Still not feeling 100% today but much better than yesterday. The exam is scheduled to start at 1pm so I took the morning to lightly review node and express. We have Ruby on Rails as our next topic so I definitely want to do well on the javascript exam before moving on.

Vision was still a little foggy and nose was stuffed up, but when 1 o'clock exam started, I got in "the zone". I really enjoy that feeling when you're able to tune out everything around you and focus all your energy on the task at hand. Our exam was to create an application where users can create polls and vote on them where the information will be broadcasted real-time to all clients connected to the server. I finished the 4 hour exam in about 2 hours. I'm pretty confident that I passed the exam. At the time I felt like I did everything correct, but now looking back I feel like there were some features I could've done better.


Here is a little glimpse of my work station. Got my code, browser, console, and assignment. What was once a convenience is now a necessity. I literally cannot code without 3 screens. Haha.

Since tomorrow is the 4th of July, we aren't required to come in. But I know that some of my classmates are to work on their projects. I'll probably start working on learning Ruby on Rails at home and make sure I get this sickness fully out of my system. It's been a rough week...

Day 38

One word of advice over all: Take care of your body.

I am still sick and unable to even code a single line. I decide it was best to go home early and rest so that I can expedite my recovery. I also didn't want to get my classmates sick either.

Towards the end of the night I did feel a little better so I prepped for my black-belt exam that's taking place tomorrow. Michael Choi sent out a previous exam for us to study with. Even with the sickness, I felt pretty confident doing the exam. We'll see how everything goes tomorrow!

Tuesday, July 1, 2014

Day 37: Project Week (front-end)

Today I started on a personal project that a coworker and I decided to team up on. It's going to be a peer-to-peer book sharing/selling service targeted towards college students. It'll make it easy for students to connect buyers and sellers.


I worked on mostly the front end making sure my site has a good User Interface. Other than that I had to go home early. I really need to fight this cold.

Day 36: Finishing up Angular

There was no post last Friday because I was off on vacation! Woot. But after not seeing code for 3 whole days, it became extremely difficult to look at code again. Especially a difficult and new topic like Angular.js. 

The worst part about taking my vacation is that I got sick and my brain is just unable to function at the rate that I usually go at. I really need to make sure I take care of my body better.

After working on more assignments on MEAN stack, I decided to start working on a personal project. I wanted to create an application where users can upload things that they want to sell. I especially want to target textbooks for students.

Will post up more later. Time to sleep so I can fight this sickness.