January 6th, 2014 seems like yesterday. Looking back though, I'm utterly amazed at what I've been able to accomplish in the past 12.5 weeks. The 'Front End' course at the Nashville Software School does indeed cover the 'front end'. However, within a few short weeks we were covering much more than basic JavaScipt and jQuery. From week 5 on, we used JavsScript on the full stack via Node.js. With that said, I wanted to take a short breather before the final three months of Ruby and Rails to reflect on everything I've learned while completing the first half of my six month program.

Weeks 1-4

To our surprise, day one started off with us opening up Vim. Our instructor, who previously taught at both General Assembly and the Flat Iron School, drilled home that 'real programmers' don't point and click. From there, we rounded out the first month with lots of  linux, HTML and Jade, CSS and Less, JavaScipt and jQuery, Ajax, Git, Pair Programming, some logic puzzles, OOP, TDD with QUnit, JShint, Grunt, and of course Tmux.

Weeks 5-8

Somewhere around the 5th week, we had our first 'exam', which split our class into the Alpha and Beta groups. The Beta group ended up perfecting their front end skills, while the Alpha group dove into Node.js. Along with Node, we covered Express.js, MongoDB, TDD and BDD with Mocha and Chi, and deployed our first apps to an Amazon Web Services (AWS) Elastic Cloud Instance (EC2).

Weeks 9-12

Thoroughly exhausted, week nine started us on our back to back, to back, to back, to back, Hackathon weekends. In other words, we had group projects, and our final two capstones to work on each weekend from here on out. And by group projects and capstones, I mean I was programming at least 15 hours a day seven days a week. In regards to classroom lecture, we covered Socket.IO, Travis CI, Coveralls (ensuring code coverage), Gemnasium, and more advanced Git topics.

All that to say, I've become a huge fan of JavaScript and Node.js. Although the learning curve was much steeper than when I first began teaching myself Rails, the flexibility that Node provides completely won me over. As I embarked on my capstone projects, I was able to bring together everything I'd learned about asynchronous programming, and the pipeline in Node to completely customize my apps. One highlight being that I was able to integrate my own authentication alongside OAuth, all with TDD in mind. Something a bit more complex than what I'd done before in Rails.

So, that's roughly three months down, and three months to go. With Node.js being relatively new, I hope to be able to write additional posts on some of the more specific topics I was able integrate into my projects. Specifically, as time allows I plan to thoroughly discuss Passport OAuth and Stripe in Node.js. Especially, since Passport and adequate TDD proved to be a bit of an initial pain point for me on my capstones. In the meantime, feel free to checkout my final project on GitHub.

Written on April 4, 2014