A shorter post today, because there’s a lot of work, I’m stressed, and tired. Yay bootcamp!

Today we learned about AJAX, but I wouldn’t say I actually learned anything. I watched my teacher blaze through it in a few minutes on some sample code, and at the end he said that was all there was to it. Somewhere in the middle I got lost and could not understand how it actually worked. It didn’t help that we were only given an example, but not actual code with actual database calls. I spent the rest of the morning focusing on JavaScript Racer, which I actually enjoyed, but came to the answer differently than described. Rather than create JavaScript objects and moving them through a DIV space on HTML, I created some objects and gave them jQuery animations that responded to button presses. Any time I clicked a particular button, one of the horses on my board would move a particular set of pixels across the page. Once one of the horses reached a certain point, they were declared the winner. Took me a little while, but definitely helpful in getting more comfortable with jQuery.

After lunch, I moved on to some more jQuery drills, which had me interacting with objects on a page that, when clicked, would make a change on the page. This was mostly hiding and un-hiding objects after pressing a button. If a comment is placed, it would add that comment to the end of the list of comments and offer a button to add another comment. Pretty tough, but I finally figured it out after chatting with a few people about what I was missing.

The real challenge of the day was AJAX. We needed to take a page of news posts and use AJAX to refresh their order (based on votes) and number of votes without actually reloading the page. AJAX is made for this capability, if you know how to utilize it. Basically, you take a site that already links to a database. Everything works, the comments sort and the votes go up, but every time something is clicked, the whole page has to refresh. With AJAX, you need to pause that refresh, intercept the information and send it to the database, retrieve the response, interpret it into information that the website understands, and post it back to the website without actually reloading the page. I’m sure that once I have a chance to see it in action and use it, I’ll have a better understanding of it. For now, it’s completely baffling to me how to make it work.

I decided that instead of focusing on AJAX, I would retreat to something I actually understand, which is Sinatra. I began building my final project for Phase 2, which I’m pretty excited about. I realized pretty quickly that it’s going to be more intense than I originally thought, but hopefully I’ll get time this weekend to really flesh it out. For now, I’m happy that I’ve at least started it.

Algorithm Night was fun, though I was once again lost in the material. The theme this week was linked lists, which I’ve never worked with. We needed to be able to interact with them by creating Ruby methods that structured the lists in set ways, so we each took turns building rules for inserting new items into the list, removing items, organizing them, etc. I have a somewhat better understanding, but it was definitely outside my comfort zone. Seems to be a theme lately.

After Algorithm Night, a few of us grabbed a coach to show us a little more about AJAX. He did a great job going nice and slow through it, but we were still confused without a real world example. Another coach came by and showed us live example from his work code, but even that didn’t seem to be enough. He promised to give us a breakout session tomorrow on how it all works from beginning to end. My frustration with all of this is that the people in this group who don’t understand AJAX are not slow by any means. I’d say that each of them is in the middle of the pack, or even above that.

I ended up staying at DBC much later than expected, but for now, sleep is less important than getting a better understanding of all the new stuff being thrown at us.

Until tomorrow, I’m Edwin Unger, and I’m a web developer in training.