I am Mark, a 25 y/o web developer living in Italy and i am currently working in an electronic company doing a web application for contacts management, i also give some help to marketing office creating landing pages and this kind of simple stuff.
Actually this is not the job of my life since this situation is "temporary" (even if i am doing web development from when i started here 10 months ago) and i should do embedded software with C++, but i want to leave and find a place where i can really do web development with other people and have chances to learn more, since here i work alone with no help!

But on job listings, one thing that i always read is that, both in Front-End and Back-End development (i am doing both here), companies always look for developers who could use web frameworks.
Actually i don't need a web framework for the project i am doing and also for the projects at home, i am self-taught and i prefer to write personal clean code using basic tecnologies (html, css, js, php, mysql) and Jquery.

I can't also really understand the difference between one framework and another; it kinda looks like to me that's a choice for the project manager, and there are a lot out there so that i can't really decide what to pick!

So i wanted to ask: Why web companies are looking for people that can use frameworks if that's a thing that should be decided depending on the projects?

Are them really important if i want to find a new job? I am stuck, since i want to apply as a junior webdev but i look like an entry-level since i don't know frameworks, but for me it makes no-sense to learn a hyped one (like Angular) randomly!

I wish i could learn the framework that the company is using rather then random ones, thanks to my actual basic skills, but it's like climbing a smooth wall.

ON HOLD: I didin't know where i could have asked this question.
I thought in programmers, but this is not a "conceptual thing about programming". The bad thing about these reports is that it is told what "is not ok" without nothing else to improve.
I will try to report this in meta.

This question appears to be off-topic. The users who voted to close gave these specific reasons:

"Questions asking for advice on what to do are not practical answerable questions (e.g. "what job should I take?", or "what skills should I learn?"). Questions should get answers explaining why and how to make a decision, not advice on what to do. For more information, click here." – Lilienthal, gnat, The Wandering Dev Manager

"Real questions have answers. Rather than explaining why your situation is terrible, or why your boss/coworker makes you unhappy, explain what you want to do to make it better. For more information, click here." – paparazzo, Alec

Because they use it already while working on clients' projects. But the Junior is the position where you learn them. Their presence in the requirement list for that role just means that they would prefer candidate with such knowledge if they get one.
– AmbertaMar 29 '16 at 10:29

3

"Are them really important if i want to find a new job?" - If many positions list "X" for the positions that you are looking for, then its reasonable to say X is important for the types of jobs you are looking for. You should learn at least enough of the most popular frameworks to be able to get started with them. You can deepen your knowledge as needed (if a project calls for heavy use of framework X, for example, you will naturally learn more about it).
– BrandinMar 29 '16 at 11:17

The problem is this question is going away from the purpose of Workplace - even sites like Programmers will probably shun a question like "Should I learn X version 1 or version 2?". You can search and see many detailed topics about this for example here: angular.io/docs/ts/latest/guide/upgrade.html - My recommendation - if you plan to or are working on existing Angular 1 projects, learn that first and learn to upgrade only if it makes sense. If you are making a new project, go with the latest version.
– BrandinMar 29 '16 at 11:50

No no no, i am not asking that, i wrote it without thinking, sorry! I will delete the comment. The question was on the fact that i don't understand why companies are looking for junior webdev who already know a framework when is difficult that the junior have worked with such tecnologies; and the best answer is in the first comment for me!
– MarkWujiMar 29 '16 at 11:54

You could try asking in Chat. Or you can find one of the dozens of forums on the web that talk about job searches. This is a Q&A site that focuses on questions with answers that can be backed up by sources. This question can only be answered by guesses and opinions. The reason is the company wants people who they can pay less but have the knowledge for a more senior position... unreasonable expectations sure but its what they want.
– IDrinkandIKnowThingsMar 29 '16 at 14:56

3 Answers
3

When you write your own home-spun code, you are recreating a lot of the functionality in these frameworks. It may be more efficient for you than learning the framework, but it is rarely more efficient for larger groups. Your code will be harder to maintain and harder to change. Many corner-cases covered by the framework will produce bugs when your code is used in the wild.

I'm not a big fan of any of the MVC frameworks myself, and I've moved to a focus around particular tools (ReactJS for instance), but the argument is largely the same.

If you are using HTML/CSS/JS/jQuery and PHP/MySQL for a greenfield project in 2016, you are far behind the times for a good reason, and as good as you may be with these tools, you have much, much more work to do. Look forward to endless cycles tweaking your code for every device out there, look forward to endless hours wrestling with your PHP security issues, look forward to maintenance headaches on every database schema change and look forward to headaches when you need to use websockets at scale. Then, look forward to re-building an iOS app and then re-building an Android app, mostly from scratch.

People have been here before. They have made better tools.

When you consider scaling, security, maintenance/total cost of development, cross-platform compatibility, mobile apps, extensibility, code re-use, bringing new developers on board, automated testing and future proofing. You're weighing all this against a snapshot in time of your personal skills. I'd take where you are now as a starting point, and learn why these new technologies are important, and what they are offering you.

If someone is looking for developers who have experience in very specific frameworks or tools, then they have likely already made decisions on what to use for their future projects.

It's also possible that they are hiring developers to help maintain and expand existing projects built in these frameworks.

Synergistic ideas

If a developer is intimately familiar with one type of web framework, then they are most likely capable of learning another one if the need should arise. They have already proven that they are able to delve into a framework which, at some point, was completely new to them, and create results.

This is a common idea, and one that a lot of companies adopt during the hiring process.

A company has to make decisions about what to use on an ongoing basis, because whatever it chooses today it has to maintain tomorrow.

These legacy decisions tend to drive the direction of the company in future projects, because it means that they already have experience with a given technology in house - how it works, the pitfalls and strengths, how to update it etc etc etc.

A company that picks a brand new framework or technology for each project is one that is going to find it a struggle to thrive - maintaining a disparate group of technologies rapidly takes up a lot more time and effort than maintaining a single technology would.

Moving to a new technology is something that should not be taken lightly, and the pro's and con's of such a move should be very carefully weighed up - the wrong decision can remain with a company for years.

The problem with foregoing frameworks and writing in vanilla code (eg just HTML, CSS, JavaScript etc) means that you are reinventing the wheel each time you do something - and your wheel has not been checked for bugs and security issues by thousands of other pairs of eyes, you are entirely on your own. Reinventing that wheel also takes you time that you could otherwise be using to move the project closer to its target.

You will find that a lot of developers are directly coding in JS for some aspects these days, but they do this to avoid taking a dependency on a large framework to just do some simple things - they will still gladly use a framework where its appropriate.