Level: Noob

My 2014 Tech Education Goal

Now that the crazy Holiday season has come and gone, I think its time to return to my blog after a long hiatus.

I will commence this year by stating my tech education goal for this year: To become proficient at the MEEN Stack – Mongo.db, Express.js, Ember.js, and Node.js. All are Javascript (or in the case of Mongo.db, “javascripty”) and I figure that since I’m paid to use these technologies I might as well strive to become an expert at them.

I’m still working on a roadmap, and I’d be open to suggestions, but here is a rough draft:

Phase 1)
– Basic comprehension of Ember.js
– Basic comprehension of Express.js
– Basic integration of Ember and Express
– Complete certification in Mongo.db va http://www.education.mongodb.com
– Time: January – March

Phase 2)
– Moderate understanding and usage of Grunt, Bower, and Yeoman
– Moderate understanding of Handlebars.js
– Use these sub-techs to improve my apps with Ember and Express
– Time: April – July

Phase 3)
– Become very good at using Ember and Express together
– Contribute to the at least one serious Repo involved with the MEEN stack in a significant way.


Day … I’ve lost count. Next to last

So I’ve fallen off the blogging map.

I’ve been spending all my time working on my final project and all of my other disciplines and good habits fell to the wayside.

First my partner and I wanted to create a simple HTML5 game but after four days of no traction we realized that we were looking at a mountain we had no time to climb. So we scaled it back to an implementation of Texas Hold’em.

We actually achieved about 60% functionality. My partner spent his time working through a very in-depth tutorial on how to create a deck of cards using only HTML , CSS, and JavaScript. Its actually pretty awesome. I spent my time making the layout of the game as well as getting the connectivity with Firebase. Separate, our two pieces were awesome. But alas, we were not able to put them together in time.

In oder to effectively display and access all the different pieces of data we needed we would have to completely rewrite all of my partner’s code. The way it constructed cards just would not work for the way Firebase and our App operated. And I’m not talking about swapping around a few functions. I’m talking about a complete reboot.

If we had two, maybe three more days we could totally do it. But we dont. Ugh. We worked really hard on it today and we’ve logged more than 16 hours today alone. I had to accept defeat.

I guess this is time for me to reflect upon this course:

Overall, this was the best educational decision I think I’ve ever made. Its a legitimate trade skill that I love and I know I will excel at. There are a lot of rough edges, but I see the work that the staff puts in and I respect them for it. This school will be an excellent program one day. As it stands, I’d probably give it a 7.5 out of 10. Good, and on its way to awesome.

As far as my own skills go: I have learned so much so fast that my head is starting to spin. At this point, I really just want to pick one thing and dominate it. I was really comfortable with PHP and CodeIgniter and I probably would be very comfortable with Ruby and Rails. I think one of my problems with this course is that instead of focusing on what I was really comfortable with I chose to tackle something very ambitious for someone at my experience level: Node.js.

Node.js sucked my coding soul dry. JavaScript is the future of much of the web and it’s extremely powerful. However, theres so much about JavaScript that just makes it effing screwy and a pain to deal with. JavaScript, as a language, doesnt operate as other languages do. It really has to be dealt with as its own monster.

I really want to spend a good amount of time in the future dedicating myself to studying JavaScript and all the connected emerging tech (such as Node.js, Express.js, Angular.js).

However, I feel like I’m ending this course on a very low note. I have two half finished projects to show for my 9 weeks here. I believe that the reason is that I have a sort of foolish optimism and I’m very ambitious. I never realized how hard it would be for me to learn Node.js at this level. I had no idea there were so many things that go into creating a simple HTML5 game. I didnt realize how long and how hard it would be to overcome certain subjects or aspects of a tech.

Yet, as they say, through struggle, comes strength.

I really have covered and learned a lot. I cant even quantify it. I absolutely love this.

Demo day is tomorrow. At this point in the course’s life cycle, its really unnecessary. Demo day has really been more about introducing recruiters to what the students can do. Once they understand where we are at then they can better judge whether or not they can put is into positions. By now, most recruiters know the business model and they know what kind of people come out of these courses. Nobody gets hired at demo day. Thats not what its for.

At this point it would be more useful for Demo Day to just be a fun last hurrah party where the senior class shows off their projects to the junior class. And we drink beer. Lots of beer…

Thats it. Thats all Demo Day should really be. The problem is that most students coming into these bootcamps expect Demo Day to be a really big hiring speed dating activity. Its not. It never was and never is in any boot camp.

Oh well, I dont know what I’ll do tomorrow.

However, I think I have decided that starting tomorrow, I’m going to rewrite everything in our code and complete this Texas Hold’em game. When complete it will actually be really cool. That is my mission.

And I always complete my mission (sooner or later).


Day 33 – 35 + Weekend

Ah, I have been remiss in my blogging duties. Sad day.

Things have gotten a bit more busy around here. Namely, I finished about as much of the Rails course as I’m going to and I’m starting on my final project. Ben, a former student from two classes ago, is going to work with me on this venture.

We decided to do it all in Node.js and Express. We are going to work on creating a game that can be played by multiple people while they use their phone as a controller. To do this we need a lot of real time action and Node.js and Express are really good at that. Rails is really great for creating deep websites with lots of pages, content, and big databases.

So Friday and all day yesterday we worked at my house. One of my roommates is an Express and Node.js wizard so he helped us get off the ground. A lot of our time is simple researching and learning how to do things. Which makes progress slow but we figure (and hope) that once we overcome the learning curve things should pick up.

I’ve found out that I really prefer to work at home lately for a few reasons: there are less distractions (except in the evening), we have access to someone who is familiar with Express (nobody really at the Dojo does), and I have full access to use the house’s 46″ tv as a second monitor. Woo!

Ok, I’ll try and keep up with my posting duties now that things are getting busy.


Day 31 and 32, Monday and Tuesday

I didnt accomplish much this weekend. I spent about 10ish hours at the dojo on Saturday and probably only did about two hours worth of work. The rest of the time was spent watching half of Hell on Wheels season 2 (AMAZING!), taking a nap, going out to lunch, and hanging out. Sunday wasnt much better but it was good to go relax at church.

The long and short of it is that we didnt finish our project with node.js. We really only had about three or four days of actual work because the rest of the time was spent learning the language. Something that proved to be particularly hard for us. I especially poured myself into learning the language in as fast a time frame as possible. I put in 16ish hour days every day for a week and a half. And I think I blew a fuse in a bad way. I was on a high from being good with PHP and CodeIgniter and I was knocked on my tuff by some serious Javascript. One of my roommates is really good with Node.js but lo and behold it was the first web technology he really ever learned. I guess when you dont know any better its easier to handle!

On Monday I started Ruby and I started on the Models section of the Rails course. First impressions: Ruby is pretty neat. You can do some wild things with it and the documentation is actually really great and intuitive. Rails is a beast. Extremely powerful and is NOT for beginners (I wonder if I technically classify?). Dealing with their method of Active Reccord for generating models from the command line is both awesome and freakishly frustrating. You can create a lot of stuff really fast… and you can screw it up just as quickly. Thats the power of the command line. It may be antiquated and basic, but it is powerful.

Its currently a bit frustrating but I’ll get the hang of it.

I need to get the hang of it quickly though because on Thursday I start project numero two. More details to come.

Our Crazy Travels, Updates

Day 30, Friday

Things are now starting to get really interesting.

Node.js is starting to ‘click’ and we’re making a lot of progress on our simple game of go fish! We have successfully managed to create a working server, router, login and registration page (that obviously connects with our database) all in Node.js. As far as I know, we are blazing a new trail for the Dojo. Apparently other groups or individuals that took on Node.js did it as part of their final project and they only utilized it on a single page for a single aspect of their project. We are the first to do everything in node.

We are excited to get some really good progress down on this game. Also, I chatted with a former graduate of the Dojo and long story short, we are looking at forming a team with him as the Mentor/Lead. Our goal is to create a game that is completely in Node.js and utilizes your phone to play a game on your computer.

Yeah, slick stuff anyway you slice it. 🙂

Today was a great way to end the work week. I also left the dojo at 7:30ish today – the earliest I’ve left in more than a week. I figured I needed a break.

I miss my wife and my boys. This is all for them.


Day 29, Thursday

Progress at last.

Today I succeeded in getting my node.js server and router working. I spent more than six hours trying to figure out why it wouldnt load the linked CSS and Javascript files only to discover that I had a response.end() that was completely unnecessary and it was totally destroying the order of things.

My team mates have also made significant progress. India got the login and registration page up and functional and Brendan has done a lot of great work on putting together the bones for the front end of our site as well as the sorting mechanisms behind our card game. Our goal for tomorrow is for me to incorporate India’s login and registration into the router and server and possibly get the chat up and working via Socket.io while Brendan and India tackle the entire game portion.

Painful, but progress nonetheless.

I still hate node.js’ documentation.


Day 28, Wednesday

I absolutely loath Node.js. Not because of the language or what it can do. On the contrary, Node.js is very powerful. I hate it because every single pice of documentation for it and all its little extra bits suck!.

Nothing goes into any depth about its various methods or parts with any measure of clarity. Hey, did you know that when you route to a new page with Node.js you have to program in the necessary code for it to distinguish between HTML, CSS, JS, and image files? Wow! Neither did I! Because nowhere is it mentioned.

Dave Mikesall was right when he told me that communication is absolutely terrible in the programming world. There is a part of me that wants to become a Node.js expert just for the single purpose of writing my own documentation that accurately explains everything.

I spent hours yesterday merely trying to understand how to route something. Once I figured that out I realized that I have to then filter through everything to make sure it winds up all nice and neat. I hate server languages.

This has been monumentally frustrating. I just want to finish this project.