Today I'm pleased to interview Ajdin Imsirovic, senior developer, author and teacher of two brand new Angular courses on Learnetto - The Free Visual Guide to Getting Started with Angular and The Complete Practical Angular Course.
In this interview, Ajdin shares his thoughts on Angular and frontend web development.
Please introduce yourself.
What got you into programming?
I built my first web page as a table-based layout in 2001. The web was young back then, and it was a fun, novel technology to play around with (I still feel the same way today!). However, I didn't really get into full time coding till maybe 10 years later.
In the meantime, I was mostly designing on the side and working in non tech-related jobs. Regardless, all that time I kept following the progress of web technologies, and every once in a while, I'd dabble a bit with mostly front-end development.
Finally, in 2011 I got hired as a webmaster, then as a web developer, and it went on from there.
Why do you like Angular?
Let's say there are several obstacles you're trying to solve as a web developer:
- Stay relevant and improve your skills.
- Use a complete framework that helps you be productive.
- Balance challenging tasks with familiar tasks so that you can grow and your job is not boring.
I believe Angular is a right mix of several competing solutions, each one pulling in their own direction.
Additionally, it's a complete framework: it comes with batteries included. For example, you don't have to think about the best way to perform XHR requests, it's built-in; you just need to know how to use the features as intended.
Once you do know it, each project will have a level of similarity that makes you become more productive, faster.
Angular also has enough different features that there's always something new to explore and get better at - thus you're never bored. But you are still staying inside the Angular ecosystem, which is helping you master your craft.
Long story short, I only have words of praise for it.
How does it compare to other frontend libraries and frameworks?
I've already sort of answered the question, but if you'd like a more direct comparison, here's my take on it:
- I don't like React since it's too flexible. It's like somebody gave you all the parts of a car, feel free to assemble it yourself. However, being curious as I am, I'm still watching React and making mini projects in it here and there, but Angular just feels like a better fit for me.
- It reminds me of Elm because very often it won't compile if you messed something up. For example, if you accidentally mess up your HTML templates, it will throw an error saying: Template parse errors. So it safeguards you against your own mistakes - to a point. One complaint could be that Elm catches many more errors then Angular does, because Angular's compiler is not as strict, but it's strict enough for my taste.
- Vue is sort of like an offshoot of Angular. It's a strong contender in my opinion; I like it, but it doesn't feel as enterprise-ready as Angular, and the market share is not as big.
However, all of these answers need to be taken with a grain of salt. Lots of online comparisons of frameworks really boil down to personal preference and to what is actually used at your place of work.
The best advice, in my opinion, is to try them all, then decide which one works best for you.
What's your favourite thing about Angular?
The standardized way of doing things is my number 1 Angular feature.
People say React has got more jobs and more projects online, but Angular is better when these projects become bigger. So it is sort of expected that bigger projects should/will use Angular on the frontend. It's a stretch, but this might mean that you'll have better job stability since you'd be working for enterprise clients or directly in enterprise firms.
Also, standardization helps avoid things getting messy as your projects grow bigger. Additionally, standardization makes it easier to add new features, because most of the times, there are only a few suggested/expected ways of doing things in Angular.
What kind of projects is Angular best for? What projects have you used it for?
Angular is best-suited for large projects with lots of features. I've used it to build some very complex web apps that included lots of logic on the front-end.
How do you recommend people start learning Angular?
Since I'm a teacher by vocation and a self-taught web developer in practice, I'm really curious - even obsessive - about the learning process. Like any web-related technology, it is best to learn it by doing. However, it's important to not lose too much time learning the basics, because it takes time to learn Angular.
My suggestion is start with The Free Visual Guide to Getting Started with Angular and if you like it, enrol in The Complete Practical Angular Course to go in-depth while building a complete Angular application.