Before I get into my points, some may arrive at this blog post thinking one is better than the other, or thinking I'm going to choose one over the other. However, the title simply represents two career paths. I want to share my personal perspective to possibly help those choose what may better suit them as a career choice. So let's begin.
Full disclosure, I personally see myself as a Full-Stack Developer, although I work full-time as a Front-End Developer.
Now that you had a breather to take that in, to be a Front-End Developer, you may not need to know all these technologies, but you should know a good chunk of them. Reasons being that it would make your job easier, and easier to get a job.
Let's say that you have a good knowledge of these technologies, you're feeling confident. But now, Angular 2 comes out and you realize there's a lot that is different. Not to mention there's a new framework coming out just about every other day. The point I'm getting at is, to be a good Front-Developer, you gotta be on your toes with what's out there. The technology is constantly being updated and new ones are always coming out. This can be tasking for some. Others may love it.
I'm not even going to go into keeping up with browser compatibility. Just know everyone hates IE browsers. So to conclude, you're the guy/girl that is building the structure and design that people will see and interact with. In some cases, with these technologies, Back-End may not even be needed.
Now with Back-End, the technologies aren't as revolving as Front-End. Personally I'm a PHP guy. Some are .Net/ASP, maybe even Python. These are just the languages. Then there's the frameworks (again only speaking on the PHP side) such as: Laravel, Symfony, Zend, CodeIgniter, I could go on but these are the most popular and have a strong community backing. This is important because whenever you run into issues, you'll be able to find answers and solutions (this actually applies to any development technology).
There's CMSs such as: Wordpress and Drupal. Again, I could go on but let's stick with the popular. A CMS for those who don't know, are Content Management Systems. This is what allows your average human being to manage a website without knowing anything about developing a website.
Finally, you should know how to work with a database such as MySQL. Getting, putting data in storage is the gist of a Back-End developer. Typically, Back-End developers don't care how the Front-End looks like, they just want to know how to provide the data.
When it comes to learning, the technologies for Back-End are always being updated with much larger cycles, we're usually talking years. So it's safe to get really familiar with the latest version of whatever. As for jobs, you may not need to know any frameworks, or you may just need to know one. There's all types of opportunities out there. To conclude, you're the guy/girl that actually makes the website work with dynamic (in other words, constant new) data. Or else, everything would be static web pages like in the early 90's.