GeorgieP

reading and tinkering

Project 5: Neighborhood Map

Into to AJAX

(No journal, this was a very short course, just type-along exercise file and mini 'app'.)

A nice, simple, fun course. Unfortunately, once the concept is introduced, the next step is "just use jQuery". Also fortunately, because I tried completing this course and avoiding jQuery (to help get a better understanding, not snobbery), and I found no other library or snippets that could successfully get the Wikipedia data.

I did spend a good week trying to get around this too, and as a last resort I was going to extract to AJAX code only from jQuery, but that would have been stupid. The rest of jQuery is not going to add any problems, can probably be delivered faster from CDNs, and once you have it, you might as well use it for the DOM stuff too.

Also, I imagine actually learning to make jQuery work that well would take months and not be very useful. And I suspect the people at Wikipedia were too busy to spend much time making it work with anything other than jQuery.

We learned about using 3rd Party APIs, like Google Maps, New York Times etc. Very necessary evils, even if you have no plans to use them. It was interesting to see how different they all are. Came across nice argument about why making APIs is stupid when you are already sharing your data via a website, which I like the sound of and would like to dive a bit deeper into in the future. Learned a little bit about handling errors, and a little about different formats (json-p, cors etc.). Finally we looked at loading ajax data asynchronously so that the page can be delivered fast enough and then progressively enhanced.

Anyway, all in all, Intro to AJAX was a good, quick introduction to ajax.

JavaScript Design Patterns

(Again no journal this time, because the course was fairly abstract in nature. Just some rough type-alongs and a killer app.)

So this would seem to be what the whole Nanodegree was leading up to. Introduced to Ben Jaffe who comes across as a total hipster on first impressions, but turns out to be the warmest, most genuine instructor I have ever seen. Unfortunately, we had to use Knockout. Which would be fortunate for someone looking for a job (might as well get used to eating shit for a living now).

This course probably could have gone a bit deeper though. It showed us MV* patterns, but it was supposed to help us understand organizational techniques and learn to think about them in an abstract way, this only introduced them. I'm sure a book or even full Nanodegree is needed to really understand them, but I thought this course would go a little bit further than it did. Again, it is a real shame they use Knockout, because this pattern didn't really help understand how to think about structuring an app.

Annoyingly I totally aced (imHo!) Lessons 1 and 2, which were supposed to introduce to real world problems and get you to think about future proofing your work. I didn't really hit those problems and didn't have to do much, if any, refactoring. This put my in a bad frame of mind for using Knockout because it was way more complicated than it needed to be, from what I could see.

In summary, I'd take any course done by Ben, I hope he does a lot more.

Submission: Neighborhood Map Project

Copy of submission and submitted repository (with source and production code folders and JDDoc generated documentation).

This project was hard. I blame Knockout. Or at least, I should blame my own resistance to it. My brain was fighting against it the whole time. Too much magic! It was a week before I figured out how to even debug it. And that attitude made the whole process twice as hard as it should have. Google APIs are bad enough, but I knew I would have to get elbow deep in them, eventually. And am glad now that I did.

Wikipedia was another kettle of fish, but I can't complain because it is a wonderful project and having access to that data is what it's all about.

What did I learn? I learned about APIs, got an intro to MV* libraries and got a whole load of exposure and experience. This is exactly why I took the course. It gave me the confidence to know I can go and read those difficult books and blog posts. I finally feel like I have taken the first step into learning programming.

Resources

A very minimal list of resources. without comments because this project was about gaining experience, not learning new stuff.