How I learned Angular
About me
My name is Matthew. I grew up and worked on a family farm for the first 25 years of my life. I started working when I was 8 years old moving irrigation pipe every morning and night in areas of the fields where the pivots could not reach. As the internet grew I grew more interested in it. I heard about a website called "hackthissite.org" that had "hacking challenges" where you had to retrieve passwords for missions that you had to pass. This got me started on my web development journey. I didn't know what I was doing, but liked to pretend that I did. When I was 22 I decided to go to school to increase the speed I learned about web development. By this time I wasn't interested so much in the hacking part as I was the creating part of the web. I graduated with an associates in basic web technologies like html, css, javascript, mysql, and php; enough to create a fully functioning website with persistence, but not enough to know how much was actually out there that could be used to create web applications. After graduating I found my first job in the city where, 3 years later, I am still working today.
Why I wanted to learn Angular
The main reason I wanted to learn angular was to get a popular framework under my belt that I could use to "increase my prestige" in the development community. At the point I began learning I had only been using plain JavaScript and jQuery on the websites I created and I needed a cleaner/more organized way of handling view and data on the front end that I didn't have to create from scratch every time.
The second reason I learned this technology is because my job forced me to. I had a project that used, Linux, nginx, postgresql, and swift/vapor for the backend and Angular as the front end. This forced me into a situation where it was either learn Angular, or be without a job. Which is a pretty good motivator if you were wondering.
How I approached learning Angular
The process in which I learned Angular was through tutorial videos on Youtube at first. To get a basic idea of what was going on and what was possible with the framework. After learning the basics from those tutorials I would try out the things I learned and add things I thought would improve the things I learned by googling related questions and looking through documentation.
Challenges I faced
The most difficult thing I went through on learning this framework was understanding Reactive forms. From the tutorials that I went through, they all used template driven forms. After finding out about and reading about the advantages of reactive forms I decided that it was the most appropriate type of form for what I needed. Now, the amount of time it took me to understand reactive forms seems ridiculous but when I was learning it took me quite a few hours of banging my head on my desk to figure out why things worked the way they did.
Key takeaways
The biggest takeaway that learning Angular brought me was it distinguished the front end from the back end a lot more to me than I had previously understood it. I knew about APIs and how they functioned, but I had never written anything to conform to and accommodate making requests to certain end points and receiving certain data back from those end points. After getting the hang of Angular it gave me the same excitement I get when developing the server end of an application instead of always dreading developing the front end.
Tips and advice
This goes for anything you want to learn, but this is what I did when i learned this. Think of an application that you want to build and build it with this framework. The functionality you want in your application will inevitably lead to learning how to do things in any technology you're writing the application in.
Here's some advice for learning this framework in particular -- Don't learn AngularJS, learn the latest version. If you go from AngularJS to any other later version it will just confuse you.
If you're barely starting to learn, always learn the latest update. Technology doesn't move backwards, it goes forward.
Final thoughts and next steps
I have yet to find a more efficient learning process that doesn't involve "just doing it" that works for me. I've come a long way with Angular and still learn a few tricks here and there, but pretty much have the gist of it down. I am going to be learning React in the near future (next couple of months) and I hear that developers like it much better than Angular for large scale projects. I'm not sure why, but I'll be finding out pretty soon.