Don't get me wrong, I'm still a complete noob with AngularJS.

However, I'm at a point now where I understand it enough to work on personal projects using Angular, and help maintain and develop professional projects using Angular. However, more importantly, I love it.

Getting to this point was not an easy task. For someone who has never learned a JS framework and whose javascript skills consist of DOM manipulation with JQuery and creating AJAX get/posts also through JQuery, it was not the easiest framework to grasp.


#1 Don't let the MEAN stack confuse you

So yeah, when you're first learning you're going to do a lot of googling and watching/reading many tutorials. One of the hardest things about learning AngularJS is that there are so many resources out there!

Throughout my searching, I personally became exposed to the MEAN stack and at that point Angular was something that was mostly used in the MEAN stack. The fact that node uses js to control the server really screwed me up. I was confused as to what was server code, and what was just frontend Angular.

What really helped me learn Angular was when I stopped using MEAN generators and started implementing Angular with other backends.


#2 Angular works great in a Django Project

Building on #1, Angular shouldn't be overlooked in a Django Project. My latest project, which is a chat application for Real LIfe Global is built with a Django backend and an Angular front-end.

Django handles the authentication page, landing page, and serving the index.html, which is where the Angular applciation takes over. In fact, even the header on the index.html is generated by the server and the rest of the page is generated and handled strictly by Angular. Pretty cool, right?

Building the API with Django has a little bit of a learning curve, but with the popularity of Django Rest Framework, it's not too bad.


#3 MVC funness in the front, MVC funness in the back

Ok, let's stop being silly. We all know how great the MVC concept it. What I learned through Angular is that the fun does not have to stay put on the server.

Building up the structure of an AngularJS SPA (Single Page App) consists of many parts such as controllers, services, views, tests. These areas function together to build the structure of your SPA in a concise, scalable manner.

After you get the skeleton down for an Angular front-end, it's just about filling in the different functions. Similar to a "traditional" application that relies on a backend framework.


#4 Is it actually viable to start development on the front-end?

I've grown my web development preferring to create projects starting with the requirements and then the models and then the controllers and views. After learning AngularJS (and some other front-end magic), it actually doesn't seem like a terrible idea to start with the frontend. 

Obviously you're going to have the basic backend framework picked out and running, but as far as development goes, just hard-coding the data at the start doesn't seem so bad. Especially when you're working with business customers you'll be able to clarify their idea faster than just relying on mockups and talking about reqiurements.


#5 The future is AngularJS

The responsiveness is breath-taking. The experience is uncanny. Building single-page applications is something that I believe is going to truly be revolutionary and change web development. There are apps popping up here and there as AngularJS (and other front-end frameworks) gain steam.

I think we're going to look back in 10 years and consider it laughable that we relied so much on the server. Similar to how we look back 10-15 years at asp pages. Why do we rely on the server to give us the data when we can get it much quicker through the client?