As of right now, the answer is still the same: Start with Angular 1. If you want an up-to-the-minute guide, see Is Angular 2 Ready.
This is a question that I keep seeing over and over:
If I’m starting out fresh, should I learn Angular v1 or v2? On one hand, why start a project using a framework which is about to be almost totally overhauled? On the other hand, its successor isn’t ready yet…
And the answer, as it stands in June 2015, is simple:
Angular 1.x is the way to go right now
You’re still hesitant. That’s ok, it makes sense. The new technology is right around the corner and it’ll be totally different. It’s logical to wonder which way to go, and why not get a jump on the new tech?
Let’s go over a few common concerns:
Won’t all the Angular 1 jobs dry up once Angular 2 is released?
Nope. Not by a long shot. Consider that many companies will have invested a lot of hours into their Angular 1 apps, and many of them will be in production and actually making them money. It makes no business sense to throw all that work away to use a shiny new (and unproven) framework.
Also consider that many older languages are still in use at companies that don’t want to rewrite working software – languages like C or Python 2.x. This despite there being newer “better” alternatives like C++ or Python 3.x.
Angular 1 will be in use for a long time, even after Angular 2 is ready (and probably even after 3, if there is one).
I’m starting a new project, just for me. Should I still use Angular 1.x?
Yes, for two reasons:
Angular 1.x has vastly more support and resources available online. Questions on Stack Overflow, free and paid books and courses (like egghead.io), and communities full of knowledgeable people. This will make it much easier to find help, especially if you’re new to Angular.
Angular 2 is still in heavy development, which means that even after you build a working app, the framework could change in some very fundamental ways that break your app and make it difficult to fix.
Can I start with Angular 2 and then learn 1.x afterward?
You could, but the frameworks are different enough that some of the concepts won’t be transferrable. Much of the syntax is changed as well, so most of the code won’t be reusable either. Despite the fact they’re both named “Angular”, I’d recommend treating them as two separate beasts.
What if I just want to learn something new?
If you want to learn a framework for the sake of learning, I’d say you can start learning Angular 2 if you’d like. Just beware that there won’t be too much help out there yet. If you run into too many roadblocks, hop back to Angular 1.
If you’ve got any other questions, feel free to leave a comment :)