The Firehose Project – WEEK 8 / Difficulties of developing a website from scratch

It has been a week since I started my job as a web developer at a local start up. It has been a lot of work, but I am learning a lot through the process. A lot of the work is looking back through the material at The Firehose Project and applying them in different ways. Some of the work consists of trying to figure out solutions to problems I haven’t encountered in the courses at The Firehose Project.

Screen Shot 2015-10-06 at 5.52.41 PM

This is how the website looks right now. Playing around with the front end took some time, mostly because I didn’t know how to make the website look nice.
I ended up looking at other websites and trying to mimic their design.

Difficulties of developing a website from scratch

One major difficulty was sketching out what the website actually needed. This involved talking with the owners and making sure that what I had in mind was also what they had in mind.

I also needed to figure out how to configure the backend to achieve the website’s goals. This meant drawing things out and figuring out how I would go about it. I’m not finished with this yet, but I am getting closer.

Searching for new solutions

I often times have to search for solutions for problems I have never encountered before. Luckily through this course I have obtained the necessary googling skills to find the optimal solution.

Figuring out how to display a sortable grid

Also the great thing about Ruby on Rails is that often times there are gems to solve problems. With a quick google search, I found wice-grid,and used that to make my grid on the front page. I could have written the grid by myself, but using the gem was much easier. It also makes the grids sortable which is super convenient.

4 Weeks Left

Sadly, I only have 4 weeks left in The Firehose Project. Every day I try to absorb as much as I can while I am enrolled. Again, my mentors in this program have really guided me through the next steps in my journey.

The Firehose Project – WEEK 7 / Landing my first Web Development Job

7 weeks into the bootcamp, I landed my first web development job. I saw a posting by a local business looking for a web developer who would make a website for them that would become the core of their business. I immediately sent them a message saying that I would love to join their team.

I met up with them, they saw that I was super passionate and somewhat knowledgable about web development, and they seemed to like me.

On the other hand, they were also talking to other web developers with experience so I honestly didn’t think I would get the job. Since this website was going to be the core for their business, I thought they would want to hire someone more experienced than me.

But to my surprise, I got an email from them the next day saying that they want me in their team. So just like that, I got my first web development job.

Applying what I learned to the job

My job is to make a website fully from scratch, implementing user authentication, payment systems, and a beautiful user interface along with other somewhat complex functionality.

This is exactly what we learn at The Firehose Project, so I told them that I’d be developing the website with Ruby on Rails.

Really Helpful Mentors

They were concerned about the security of the website as it would have payment processing. I didn’t have any idea if there were security issues regarding this (I assumed that RoR and Devise / other payments gems would take care of this) but just take make sure I asked Ken, the co-founder of The Firehose Project, for some advice.

He immediately replied to me giving me details about the options I have and also about PCI compliance (Payment Card Industry Data Security Standard). I also consulted my mentor about how I would go about developing this website and he pointed out some things to be careful regarding security.

Other than that, a lot of the site functionality consists of the things we learned at The Firehose Project. This just tells you how practical the things taught in the courses here are.

Some things I don’t know how to implement yet. Fortunately, The Firehose Project teaches you how to research ways to implement features even if you don’t have any idea how.

I’m super excited about this job and how much The Firehose Project has improved my skills. I still have a few more weeks to go, and I still haven’t finished Flixter (Udemy clone app) or the Chess App. On top of that I will be constantly bombarded with schoolwork, midterms, etc. It is going to be long nights and a lot of hard work, but hopefully I’ll be able to make it out alive and learn a ton from this experience.

The Firehose Project – WEEK 6 / Working with CoffeeScript

The Firehose Project offers several coding challenges that enable you to develop logical thinking. It also prepares you for interviews. They are pretty difficult and it takes a lot of drawing diagrams, testing, rethinking, and banging your head against the wall.

I was able to finish all over the coding challenges and it gave me confidence that I could start tackling interview questions.

I’ve heard that other bootcamps don’t offer these kinds of algorithm challenges, but I think they are crucial to include in one’s learning. They are really important in developing problem solving skills that can be applied in other ways. They also teach you how programs only act the way you tell them to act.

Alongside the coding challenges, I have been taking a look at CoffeeScript under recommendation from my mentor.

CoffeeScript is basically an easier version of JavaScript that omits a lot of “unnecessary” things such as semi-colons. The concept is said to be kind of derived from programming languages such as Ruby and Python.

I found CoffeeScript to be convenient, but at the same time I felt it would be pointless to try to use it before I fully understood Javascript to a certain level. My mentor agreed as well; learning these frameworks are important, but it’s obviously better to learn the original language first.

On one hand, CoffeeScript enables you to write simpler code. On the other hand, becoming a developer isn’t always about writing simpler and faster code, sometimes you have to step back and look at what the programming languages actually are, what their history is, etc.

Thus, I have started reading Douglas Crockford’s Javascript: The Good Parts. It’s a book worth reading and it also isn’t too long. I highly recommend it to anyone starting out, as it goes in depth into the features of Javascript in a very comprehensive way.

The more I learn about programming, the more I feel that there is to learn. It is honestly a very interesting field for me and I love the fact that you can never be done with learning programming. There is just so much to learn.

Progress this Week

  • Understand what CoffeeScript is and its implementations
  • Gained more knowledge about Javascript and its history
  • Feel more confident with algorithms and coding challenges

The Firehose Project – WEEK 5 / More Coding Challenges

This week was another week of banging my head against the wall. My mentor told me that I should be able to solve at least three coding challenges, so here I am trying to tackle as many of these as I can.

These coding challenges are great though, they really train your mind to think logically and to break the problem down into small little pieces.

The first coding challenge was tough, because I didn’t know how to think through the problem. But after solving a few, I was able to get the hang of how to handle problems, debug them, and eventually solve them.

Not to say that I solved everything on my own though, I got a lot of help from Ken, who is one of the mentors at the Firehose Project. He really has a way of explaining things in a very clear and understandable way.

So in two weeks, I finished most of my coding challenges! The toughest one was reversing a linked list. This took me about a week, but after solving this one, the others were very easy in comparison.

Strengths of The Firehose Project

I feel that these coding challenges are one of the merits of joining the Firehose Project. Without these challenges, there is no way that anyone could solve more difficult problems in the future. I really like how not only the mentors, but community members try to help each other out.

Progress this week

  • Improved on figuring out logic
  • Improved debugging skills
  • Improved problem solving skills

The Firehose Project – WEEK 4 / Coding Challenges

This was a rough week for me: solving coding challenges are HARD.

The coding challenge I was doing this week was called image blur 3. I basically had to write a code that would accept a multidimensional array with 0s and 1s and turn the 0s into 1s where the 0 had a  Manhattan Distance of x from the 1.

At first, I had no idea where to tackle the problem. I broke the problem step by step, trying out different methods of what I thought would work.

After a while, I figured out the logic of how to get the code to work. The next step was to write code that would make the logic work.

What I ended up doing was writing a bunch of bad code using while loops with 4 different conditions (long and difficult to read), instead of trying to implement much simpler code.

Solving the problem after about 12 hours was satisfying and lead to more confidence. The next coding challenge is more difficult, and again I find myself not knowing where to start.

Progress up until now

  • Improved on figuring out logic
  • Improved writing logical code