Hello! I finally graduated from my Frontend Nanodegree program on Udacity. Here is a recap of my previous posts:
This is my final reflection.
The final project
My final project was a Neighborhood Map which is an interactive map that shows Groupons near your area.
It was interesting and fun to make, and of course very challenging. I’d love to hear feedback, however!
Here’s what I learned while working through my final project.
Knockout JS is not very extensible
I like Knockout, but it isn’t very powerful. There’s no clear “model” in the MV* architecture, so you’re kinda left up a creek without a paddle.
However, I did like the fact that bindings worked “automatically!” But I think Angular.js also has a similar feature, and is also a bit more robust.
Also, the docs suck. Like, really suck. I had no idea there was something called
arrayForEach because it’s nowhere to be found. I had to find it online, and it wasn’t even on the KnockoutJs website. (pro-tip: adding a search functionality to your docs is invaluable).
All-in-all, I would have enjoyed making the project more if it were with, say Angular, but the project spec required Knockout.
I would have liked to have used Django, but this is the “Front-End” Nanodegree, not Full-Stack.
Google Maps API is crunk
Interestingly enough, I (again) got most of my GMAPs info from none other than Stack Overflow. When I wanted to ensure my map was dynamically resizing, it wasn’t on GMAPs, it was Stack Overflow.
I feel like they should have had more examples of using their API, because the list of commands and options that they made available weren’t very helpful. It’s nice to know they “existed”, but it would have also have been nice to know how they worked.
What to do when the docs suck
Two things. You can experiement (nothing’s stopping you from making a new project and testing it out in a sandbox environment) or you can just ask Stack Overflow.
I would recommend testing things yourself first, so that way when you do run into a problem on you can isolate the issue and concisely share what you’ve tried on Stack Overflow without the whole she-bang of your entire project.
I have development hours for myself, and I would always find ways to “do” stuff during my development hours that weren’t really productive. That is to say that although I would be working on my project, I’d be doing something menial rather than solving an actual problem. In this way, I would still be working, but not really advancing my problem.
For example, I spent a long time on my sidebar because I didn’t want to add markers. I was putting off the adding of markers because it felt like a big task, so I did smaller tasks like edit the CSS for my sidebar.
The goal of making an app is to JFS (stands for Just F&$%ing Ship) so not everything needs to be completely optimized. Get a MVP (minimum viable product) going and you can tweak as you go after that. Otherwise, you’re wasting time and putting off the inevitable.
Overall review of the Nanodegree
Overall, I enjoyed my experience with the Nanodegree, and I would definitely consider doing the Full Stack ND, and perhaps even Data Science. For right now, I’m going to focus on a couple of other courses that I’ve purchased but put off, so check back soon for those!