5 ms·
> Nobody is ever going to know everything there is to know about modern web architecture I think this is the root of the sentiment that is expressed as "JS fat
by hackcrafter 10y ago
> Nobody is ever going to know everything there is to know about modern web architecture
I think this is the root of the sentiment that is expressed as "JS fatigue" and bullet train rides etc.
I'm torn though. On one hand, this is equivalent to saying: Nobody is ever going to know everything about an operating system and how a machine performs the operations we expression a high level language like, you know, C!
The thing is, we still were able to teach the abstraction of the single-machine computation model that C is abstracting in a single semester to the point of making new coders _operational_.
But I can't imagine trying to construct a course to teach "modern web architecture" in a single semester.
On the flip side, a lone developer who can chose their battles wisely has more leverage to produce something of value today than was ever freaking possible, ever!
I'm betting on the the new "OS" abstraction as cloud-native services (DB as a service, event streams as a service, mobile syncing as a service, heck, everything but your core logic as a service).
But by it's nature this world is redundant, competitive, multi-vendor, fractal-specialized and I only see that trend increasing.
So yes, one person will never know everything there is to know, the new skill will not be learning every framework, platform or service, but being able to grok the core nature and characteristics of your problem so you can apply the closest matching tool with the maximum leverage.
Essentially, the new skill will be to optimize for laziness :)
- CoryG89 10y agoI am not sure I agree that optimizing for laziness will ever be a skill. But indeed, I am not sure it's possible to know everything there is to know about just about anything. How can you ever be sure there isn't still something left to discover? I am reminded of something I used to hear all the time: you learn something new every day.
- hackcrafter 10y agoHa! Yes, my shorted argument of "optimizing for laziness" doesn't sit right, but the core of it how much your choices matter in what you are _not_ building. - Cloud-based apps used to mean managing VMs, keeping kernels up to date, setting security settings on server configs. It doesn't have to[0] - Mobile dev used to mean compiling platform-specific code and shipping it to app-store review. It doesn't have to[1] - Storing state server-side used to mean running your own DBs and worrying about their persistence and multi-host-scaling. Don't even need a reference here since there a so many choices. [0] https://www.ibm.com/developerworks/cloud/library/cl-bluemixfoundry/ https://www.ibm.com/developerworks/cloud/library/cl-bluemixf... [1] https://getexponent.com/ https://getexponent.com/
- dragonwriter 10y ago> Cloud-based apps used to mean managing VMs, keeping kernels up to date, setting security settings on server configs. PaaS offerings where this kind of thing was not required were among the very early dynamically-scaled application platforms to get the "cloud" label. IaaS offerings where this is required and part of the price for greater control exist, to be sure, but have never been the only cloud platforms.
- webmaven 10y agoOr even the first cloud platforms.
- mhink 10y ago> The thing is, we still were able to teach the abstraction of the single-machine computation model that C is abstracting in a single semester to the point of making new coders _operational_. > But I can't imagine trying to construct a course to teach "modern web architecture" in a single semester. I'm calling shenanigans here. You're comparing "C by itself" to Javascript and the entire web ecosystem. To make that comparison, you'd have to take C, its standard libraries, and the entire POSIX API- which you're not going to be able to teach in a semester. That said, I don't want to come off as confrontational, and so I will grant that the computation model (event loop vs. "single-machine computation) is obviously simpler for C. But once you start dropping down to the OS level (e.g. "What's a process/describe process states") you're getting right back into irreducible complexity. In fact, when I was in school, my first CS classes were taught in C, but I didn't actually grok it until later, in my Microprocessors ECE course, where they actually taught us machine code first, then gave us an assembler, and then gave us a compiler. The pedagogical benefit of Javascript is making the conceptual connection between "I'm writing this weird 'programming language' code" and "oh hey, that code actually made my computer do something I recognize!" For folks of a certain age (and for fairness, I include myself in this category) it's possible to make that conceptual leap based on the output of a terminal. But very few laypeople use terminals anymore, so in a weird, topsy-turvy sort of sense, this lower-level programming language feels less powerful because its power is more abstract. By comparison, the browser-scripting language feels way more powerful, because hey look! it's got APIs for anything you'd ever want to do with a web page! Sure feels powerful to me! > So yes, one person will never know everything there is to know, the new skill will not be learning every framework, platform or service, but being able to grok the core nature and characteristics of your problem so you can apply the closest matching tool with the maximum leverage. And people still do that- even in Javascript-land. For me, one of the interesting things about switching to full-time "modern" Javascript is how much more time I spend actually reading the source code of the libraries I use. You begin to develop heuristics for evaluating dependencies rather than pulling them in blindly. Furthermore, the libraries I do use are much more lightweight than the ones I used to use in Ruby and (ages ago) Java. At any rate, just my 2 cents. :)
- hackcrafter 10y ago> You begin to develop heuristics for evaluating dependencies rather than pulling them in blindly. Exactly! For better or worse, this is the baseline attitude needed.
- webmaven 10y ago> I can't imagine trying to construct a course to teach "modern web architecture" in a single semester. Well, see, you got a highly ambiguous term in there. Which of the following do you mean?: 1) Modern web page architecture 2) Modern web site architecture 3) Modern web app architecture 4) Modern web scale architecture You could certainly cover the first two in a semester. And with those two as prerequisites, you might be able to cover the third in a semester. The fourth will require a whole term on it's own regardless (and I suspect the fourth is the sense of "web" that you mean).