So long, Junior Phase!

It’s hard to believe, feels like a dream (seriously, am I even awake anymore? So tired) but we just finished week 6, AKA the Junior Phase of Grace Hopper Academy’s curriculum.

Here are some of the big things I’ve learned, and some assorted reactions:

Express

I can now build APIs and backends using Express over Node.js — and I love it! After all these years documenting APIs, it’s so nice to finally be making them myself. I really enjoy the server side, and can’t wait to do more with it! Express makes the network nerd in me very happy — I kind of love REST more than I think I should… but seriously, it’s great. I’m planning a post about RESTful APIs in the next few days, so stay tuned for that!

Mongoose

Okay, so my background with APIs gives me a serious love for JSON, and I knew I would love working with MongoDB — and I do! But I also really, really enjoy Mongoose ODM and the amazing interface it provides into MongoDB. It’s really smooth, and involves promises, and did I mention I love promises?

Though I do think their documentation could use a little love, so I’m hoping to take some time to contribute at some point (they could really use a search tool in the docs)

Promises

Okay, I know I have a whole post about them, but seriously, I really enjoy working with JavaScript Promises! Especially the Bluebird library.

SQL & Relational Databases

Not as huge a fan of SQL, but I am glad I finally learned how it works and how to use it. I’m preferring Mongo for the most part, but I’m super proud of myself for overcoming my mostly irrational fear of ever approaching relational DBs. And I can definitely see how important they would be for many projects.

jQuery

I have a love hate relationship with jQuery. I understand its historical importance in making JavaScript development more approachable, and providing cross browser compatibility. I personally made a lot of use of jQuery in my documentation projects prior to GHA, and it served a very important role. But designing an entire UI using jQuery was a bit painful, and gave me a helpful understanding for why people choose to use frameworks for applications. I think jQuery is really all you need if you’re just making websites, not applications — but if I ever have to build an entire web application with jQuery and without a framework, I might lose my mind. Also, why jQuery is sometimes kind of… quirky. Like its array methods (which take index, value in their callbacks) are just slightly different from JavaScript’s native ones (which take value, index in the callback). Subtle, but annoying differences. And everyone mostly agrees that their Promise-like implementation of Deferreds is not awesome. That being said, jQuery deserves a serious round of applause form developers everywhere for taking important steps to make cross-browser web development significantly less heinous.

Angular

I have so many feelings about Angular. It’s hard to sum it all up. We worked on Angular for the better part of a whole week. I still can’t decide if I love it or if I’m terrified of it. It’s incredibly powerful, and I feel like I have a pretty solid grasp on how to use it to do amazing things. But I do have a couple of misgivings. First, it seems incredibly opinionated, and I sometimes worry that it will be hard to work with other frameworks because of this. Secondly, I feel like I’m creating just so, so many tiny JavaScript files. And this makes me worried about load time, performance, etc. I do really love the modularization of the code, but sometimes it feels so modular that the only way to find a piece of code you’re looking for is, well, to know where to look for it in the first place. But as I begin to understand the architecture of an Angular program, I am starting to really appreciate its logic. The only other concern I have is that, as an opinionated framework, the changes made for 2.0 could be seriously intense. If learning the framework has a steep learning curve, I worry about it maybe becoming outdated in the future (sort of how people don’t use straight jQuery to build UIs anymore). I’m sure my opinion of Angular will evolve with time (especially when we start using front-end build tools to concat all those tiny little scripts! The index.html page of our apps is like 90% script tags at this point…). I look forward to learning more about Angular, as well as about other frameworks like Backbone.

Security

It was really nice to learn more about web application security. I have always been really concerned about this. I feel like the more I learn about application security, the more I want to trust someone who really, really knows what they’re doing! It’s an incredibly complex topic — but also fascinating. I’m really grateful for everything I learned while working at Shape Security, and I enjoyed learning some really specific things I could do to make my app secure. It was really fun implementing OAuth, password hashing & salting, etc. These are all topics I’ve learned so much about over the past year, so it was great to be actually applying the concepts to my own applications!

That’s all for now… lots going on, of course! Right now I’m preparing for review week, and a couple of midterm-esque assessments. I’m also planning to create my portfolio website this week, so stay tuned for that, and the aforementioned post on APIs.

(EDIT: here is that API post )

Again, feel free to comment or to email me anytime! I love hearing from you all, and am always open to topics suggestions, comments, feedback, etc!


Originally published at paloobi.tumblr.com.