Web development (it's more than just CRUD) is hard. Even with the best web development framework, the state of the art in tooling, you're looking at at least a year of focused study before really being able to take a job.
It doesn't require hard math, but it's still hard in that the sheer number of languages, tools, best practices, technologies is daunting.
And they keep changing. My father is an electrician, after learning the ropes from him, I went into low voltage, which he wouldn't learn how to do because it "keeps changing", meaning you had to take a little bit of time every year to learn some new things. Full stack web developers have to take significant amounts of time every day to learn new things.
I've seen devs who were perfectly comfortable with all the math and "real dev" practically break down when presented with a web project. More than one of them admitted to me after beating their heads against it for a few weeks that it was harder than it looked.
I can understand if you can't appreciate the difficulty. But try taking on a significant project before calling it easy.
I agree, strongly. Lately, I've been involved in the shift from server-side MVC with a sprinkling of javascript to web services API with javascript based front end. I'm inclined to to with rails-api, and probably Ember on the front end, but it's a moving target, and I tend to agree with people who say this has led to a very complicated stack with too much duplication (routing on front and back end, and so forth). But should I use React, Angular? Should I write the backend in node? My current guess that the trend toward "isomorphic" systems will probably resolve this, but again, that's just a guess.
What can I say? There is a tremendous amount of reading, trying, cursing, debugging, evaluating, forecasting what will be valuable later. Some of it is churn, true, and it is unnecessarily complex, but what isn't? (tax law, anyone?) Simplifying things is in itself a huge organizational, social, and mental challenge. All in all, it's pushed me past the edge of my abilities, and I constantly feel very ordinary in this field.
> I've seen devs who were perfectly comfortable with all the math and "real dev" practically break down when presented with a web project. More than one of them admitted to me after beating their heads against it for a few weeks that it was harder than it looked.
Because they haven't done it before.
Hard because you have to learn the framework of the week, deal with shitty tooling, and leverage design skills you haven't ever really had to develop is a very different thing than hard because you have to design and build a complex system with strict requirements and intractable problems.
> hard because you have to design and build a complex system with strict requirements and intractable problems.
That sounds like web dev. The intractability of the problems comes from the fashion-like nature of how often things change and the speed at which they have to change. The more you learn, the more you can do, but also the requirements will change as a function of your abilities. Maintaining an business advantage demands it.
The framework doesn't have to change, the tooling can be self-designed, the design skills can be learned, and web dev remains hard and interesting. I understand that lots of devs don't appreciate it, but I still find it interesting after 5 years, and expect it to remain so after 20.
I liken it to a craft, take woodworking as an example. Sure, anybody can learn to bang nails into wood. But the way you hit a nail into a piece of wood the first time is going to be way different than the way you bang it in after 5 years, and it's going to be a totally different experience to the way you bang it in after 40 years.
There's a definite craft to choosing frameworks, growing tooling, and fashioning design to solve interface problems.
Is it as hard as hard math? No. Is it harder than 99% of people can do at all, and harder than 80% of software developers can do well? I fully believe so.
It's a different kind of hard. The kind of hard that can be learned if you keep doing it. Yes, there are many technologies involved, but most of them are pretty straight-forward and documented. There is also a huge number of 3rd party resources and tutorials. I'm not saying it's easy, but if you read for long enough, you can understand it.
I can appreciate the difficulty - I'm a full stack web developer by trade, and I've built multiple full stack web app side projects (everything from setting up and deploying S3 on CloudFlare, issuing IAM Amazon permissions, to writing React, all the way to Elixir modules calling C scripts). As @lukaslalinsky pointed out, it's a different kind of hard.
And still, given all of that, my head spins about the idea of building a compiler from scratch or writing MIPS.
God yes, the orgy of tooling and frameworks to do web development... I farking hate it, and I do this for a living :) That hamster threadmill of web development is pure self inflicted torture.
It doesn't require hard math, but it's still hard in that the sheer number of languages, tools, best practices, technologies is daunting.
And they keep changing. My father is an electrician, after learning the ropes from him, I went into low voltage, which he wouldn't learn how to do because it "keeps changing", meaning you had to take a little bit of time every year to learn some new things. Full stack web developers have to take significant amounts of time every day to learn new things.
I've seen devs who were perfectly comfortable with all the math and "real dev" practically break down when presented with a web project. More than one of them admitted to me after beating their heads against it for a few weeks that it was harder than it looked.
I can understand if you can't appreciate the difficulty. But try taking on a significant project before calling it easy.