Getting up to speed

Blitzkrieg

Upon looking through the high-level decisions that we have made, Jon and I essentially spent the first half of the day exploring what we had to do: on his part, he was still deciding on the framework and what we could do to optimise for the quickest possible delivery given our time constraints. On my end, I was more focused on getting up to speed.

I spent a large part of day one familiarising myself with the languages which I suppose would have the longest serving effects in development. Jon and I initially thought of developing on Ruby on Rails during Liftoff, only to find out that the learning curve was far too steep for the both of us to achieve the goal of 8th June. As such, we had to redirect our attention and focus onto more manageable technologies. As such I had to pick up JavaScript, Git, and the Web fundamentals at lightning speed.

Point of Entry

I figured I had to start somewhere. Since we decided to get the front-end user interface done up first (because I supposed learning HTML/CSS was going to be slightly easier along with JS), I began by learning JavaScript from scratch at Codecademy. Syntactically simple, it was a breeze up till the point where I realised Node.js isn’t just JavaScript, and neither is anything else that is essentially a JS framework. Thankfully I stumbled upon three things I found most valuable in getting myself initiated on web development:

It taught me everything I needed to understand and know about responsive web design and the best practices in creating page templates. Moreover the nice site UI as well as the readily available source gave me a bird’s eye view which I could cover easily in just under 2 hours.

I found Duckett’s book to be an incredibly beautiful resource on learning HTML and CSS, although resources are plentiful all across the web. I also used sites such as learnlayout.com and MDN’s references to get me initiated into the foray.

This site is a godsend. After learning up the basics of JavaScript, this was exactly what I needed to get familiar with the Node.js technology, considering the large code base that we’re going to maintain with modularity. I’ve yet to cover all the articles that are listed/compiled with great posterity, but I’ll make an effort to digest the gist of what is important to get started quicker.

Teamwork

Spending half of the day on material I certainly couldn’t finish, Jon got me started on the scaffolding of Feedbaker’s architecture on Yeoman.io. Google Hangouts has aided our collaboration immensely and has also helped relieve a lot of the anxiety and frustration over not being able to communicate effectively through instant text messaging.

Although there wasn’t much of a syllabus, I was very quickly initiated to the inner workings of how Grunt.js and Bower.io works. Two applications which I found immensely powerful and useful in maintaining and managing the code that was to be deployed. We explored a number of other things, which includes:

  • Express.js’s Architecture
  • The glory of AngularJS – partials, views, controller, and routing and the entire workings of the bower components that manages all the packages.
  • Bootstrap as a web UI front-end framework
  • git reset HEAD --hard: the only way for me to not mess things up
  • Touched a bit on cryptography: Salt and uni-directional MD5 hashing (reason for this is because we were going through the authentication process, which was resolved using Passport.js package on npm)

Also, while Jon did most of the code, I followed each line written very closely on hangouts (something that drove my MacBook Air’s CPU crazy as I displayed the screenshare on a larger external monitor). Makes me feel guilty about not having any git pushes so far.

Yeoman did save our lives by providing the skeleton that we were dying to figure out on the first day (which led to quite a bit of worry). Decided to drop nitrous.io because it wasn’t being friendly with the premature shutting down due to inactivity (seriously?)

Also, I came up with a brief information architecture to outline what we wanted to include in our view layer. More to come as we refine along the way.