December 19th, 2024

How do you do, fellow web developers? A growing disconnect

The author highlights a disconnect between their programming knowledge and that of younger developers, expressing concern over a lack of understanding of traditional methods and implications for future programming depth.

Read original articleLink Icon
How do you do, fellow web developers? A growing disconnect

The author expresses concern over a growing disconnect between their understanding of programming and that of younger web developers. They recount an experience where a younger programmer was confused by basic web concepts, highlighting a lack of familiarity with traditional web development methods compared to modern single-page applications. The author reflects on the evolution of programming education and the increasing abstraction layers that obscure fundamental knowledge. They critique a game show for developers, noting that its questions often focus on JavaScript and frameworks rather than broader computer science principles. This trend, they argue, reflects a shift in how programming is perceived, with a focus on specific technologies rather than foundational concepts. The author worries about the implications of this disconnect, fearing it may lead to a lack of depth in programming knowledge among new developers. They also acknowledge a similar disconnect with the more critical voices in the programming community, who often dismiss modern practices in favor of traditional methods. Overall, the piece serves as a reflection on the changing landscape of web development and the potential consequences of these shifts.

- The author notes a disconnect between their programming knowledge and that of younger developers.

- They highlight a lack of understanding of traditional web development methods among newer programmers.

- The critique of a developer game show emphasizes a focus on JavaScript over broader computer science concepts.

- The author expresses concern about the implications of this disconnect for the future of programming knowledge.

- They acknowledge a similar disconnect with critical voices in the programming community.

Link Icon 34 comments
By @simonw - 2 months
It's genuinely fascinating to me how many professional web developers these days - smart people who produce good work - don't know how to build interactive features using HTML on its own (and maybe don't even know it's possible).

Being able to do things like this is really useful:

  <form action="https://simonwillison.net/search/" method="get">
    <input type="text" name="q">
    <input type="submit" value="Search">
  </form>
I've seen teams estimate a full day to add a link to a contact form because they need to refactor a bunch of React components to achieve that. I like being able to do this:

  <a href="/contact">Contact us</a>
By @commandlinefan - 2 months
I often help younger developers with problems that involve absolute vs. relative paths - their code doesn't work because they're invoking it with the wrong working directory. It's immediately obvious to me because I grew up using the command line, where files and paths are elemental. They're usually _really_ interested in properly understanding what's actually happened here, but they've been so intentionally shielded from the fundamentals of files and directories that they need quite a bit of time to let it all sink in. The solution, of course, is to teach things bottom up, but I have some sympathy for beginners who lose patience with spending so much time dealing with something that doesn't even _look_ like a computer from their perspective.
By @rkozik1989 - 2 months
You've noticed two things:

1. Every generation of programmers typically only has a certain window of knowledge, and everything before their time is simply foreign to them. Most developers aren't programming history buffs, they don't read books from the past to learn about technologies or how they work, how we got to now, etc.

2. When you're starting off on your journey as a programmer you're using a lot of things without understanding their implementation, and that understanding for most individuals whom I've worked with comes from having to debug issues.

By @JohnMakin - 2 months
I think people just focus on problems entirely within their own domain and rarely branch out to anything else. The amount of times I've had to explain to senior devs of 20+ years how DNS works at a very simple level would astound you, which is something that I would assume should be picked up if not by learning, through sheer osmosis, but you'd be surprised. If you lack a formal education, and maybe went through a bootcamp - which there's nothing wrong with - you may not know a lot of things that would surprise this author.
By @mattgibson - 2 months
I wonder if every generation is doomed to feel this way. Socrates was horrified about the corrosive effect of reading upon young people's ability to memorise speeches. Plus ca change etc.

https://www.perseus.tufts.edu/hopper/text?doc=Perseus%3Atext....

By @purple-leafy - 2 months
I’m a new developer (2-4 years experience, all self taught) and I get what they are saying.

I obviously have gaps in my knowledge (started with Python, moved to frontend). Frontend is too abstracted from actual CS.

But I actively take University papers in my spare time on CS, and do C in my spare time to appreciate the lack of abstraction in low level code.

I really enjoy this (learning and C) more than economic programming (frontend, web, career).

I just love learning and realising how little I know. The latest thing I’ve learnt is that structs can have holes, and struct packing for situations where you need specific address offsets. Made my own bitmaps from scratch etc.

Next I’m thinking of picking up a Lisp.

By @agentultra - 2 months
The Jblow and Muratori rants are contentious. Try arguing for formal methods some time.

The industry has had enough time to expand to include many different zeitgeists. I find myself smirking when I read old ewd essays decrying how programmers then didn’t understand programming. Seems like we’ve continued down that path.

From my part of the pond you’d expect the Computer Science questions to cover areas of combinatorics, abstract and linear algebra; satisfiability, search, and the like.

But we are talking about a pop culture type of show and what is the most popular form of programming today?

By @graypegg - 2 months
I would really like to try writing something along the lines of “the web from scratch” one day. I wouldn’t want it to be just a retelling of the history of the internet, but rather building up a set of abstractions from some physical example of communication to your own mental model of a hypertext standard on top of a simple transport protocol, sort of like Charles Petzold’s Code.

The web is complex nowadays, but it also actively hides its implementation from you to be a better product. Dialing a phone number with a modem on both ends has a sort of real tactility to it that’s pretty alien to young people that expect it to be “harder”. You can pick up the phone on the line and hear that something is going on. The computers are “talking” on the phone.

A metered Internet connection means I was constantly aware of how much data is going over that phone call. What takes huge chunks of that budget and what barely touches it.

My ISP even gave our family some web space to use. Like just the peek behind the curtain you get from putting a file on an FTP server, then requesting it in telnet and seeing every letter I typed zip in from the other side really illuminates a lot. If I ask the computer I called for a file in a special way, it sort of shouts it back at me over the phone call, and my computer can listen and understand that.

It’s not like it was the best implementation of the “product” that is the Internet. Anyone saying the contrary really is an old person shouting at a cloud. But I do have some sense of being lucky to get to explore the web in that era!

By @simonw - 2 months
Given that every inch of that YouTube gameshow is "Sponsored by Jetbrains" (their logo even shows up multiple times on the spinny wheel thing) I'm not surprised they feature screenshots of Jetbrains IDEs showing off their type-related features.
By @recursivedoubts - 2 months
The blame falls on us olds for not communicating the benefits of the hypermedia approach to the younger generation, and allowing flashy front end boosters to bully us into silence on the topic.

The tide is turning to an extent though. Here is my contribution:

https://hypermedia.systems

By @k__ - 2 months
Not a fan of these "old man screams at cloud" posts, but I had a similar experience.

Suddenly, everyone was talking about HTTP APIs, when they said API.

With the rise of IOS and Android, I expected the mobile devs would build something better than HTTP, without all the cruft from the past. But somehow that didn't happen.

Now API is synonymous with HTTP.

Strange how things turn out in the end.

By @Swizec - 2 months
As a fellow 37 year old, I had a realization yesterday after a prolonged debate about HTMX vs React. For context: I’m a long time React fan, think htmx is neat, and remember all the reasons why HTML-over-Ajax didn’t catch on in the 2007 web development era. Been a primarily web guy since 2003 or so.

The problem with React (and friends) isn’t React (and friends), it’s react developers. People who aren’t web developers first and react users second.

I have interviewed (and worked with) so many frontend engineers with years of experience whose minds were completely blown by the idea of using a form submit event to handle form submission. Or my biggest pet peeve – button + onclick to change location.href instead of just making a link. Argh.

So yeah I think we’re lucky to have grown up with this stuff and seen it evolve over time. Many folks these days come to the field backwards and miss a lot of the good stuff that’s available to them.

By @codazoda - 2 months
I’ve been feeling this same way but didn’t want to articulate it, possibly out of fear. I also wrote a little book based on “old school” or “pure JavaScript”. I’m sure you could make some of the same criticisms of that, but I tried to make it pure and down to the basics.

It’s on Amazon at the URL below but if you’re willing to give feedback, reach out and I’ll send a free copy.

https://a.co/d/bwF4YF5

By @lildata - 2 months
It is funny that "the Web" as a platform has become like the mainframe for banks and some big companies.

It is an ubiquitous legacy, a critical infrastructure of our societies and a spaghetti that cost everybody a lot.

In the end it is controlled by the biggest corporations and various interests. Very hard to disrupt and replace.

By @behnamoh - 2 months
I really liked the font and found it, it's "IowanOldStyle": https://font.download/font/iowanoldst-bt
By @pimlottc - 2 months
Am I the only one that gets annoyed by that "enhanced representation"? All I want to see in my editor window is the code itself. Every year, VS Code goes further and further in adding more inline hints, error messages, test results, stacktraces... It starts getting confusing, distinguishing the actual sources from the other stuff.
By @vrnvu - 2 months
I often see engineers from other teams ask for a "non-blocking endpoint" because they don’t want to block while waiting for a response from the server. What is a "non-blocking endpoint"? If you are making the request, just do not block...
By @seanw444 - 2 months
The level to which "kids these days" don't have to consider memory usage, cache locality, and clock cycles, is frustrating. But it is cool to realize how good our technology is now that most things aren't unbearably unusable, despite being designed horribly.
By @freetonik - 2 months
Thanks for posting. Earlier I submitted the original video which motivated me to write this blog post: https://news.ycombinator.com/item?id=42461182
By @darepublic - 2 months
> I've always felt safety in coding. It was a comfortably logical, deterministic, and beautifully consistent refuge from the world of vague and ambagious reality. I also felt certain kinship to other programmers, it was my tribe. So I'm worried about this feeling of disconnect, a little bit.

This passage resonated with me. At a recent contract I saw some PRs from my team mates that I found baffling. But rather than comment on it or intervene for once I told myself to just ignore it. It's Chinatown, or something like that

By @openrisk - 2 months
People talk about software "technologies" and it is true, there is some technology underlying them, but its mostly economics.

The nature of software with its multiple abstraction layers means that when the economics is "right" you can pretty much transmogrify anything into anything. E.g., you can setup a JS-based web server as a classic web framework serving good old html and thats not a joke, its reality.

Is web software economics today any different than it was in the past? You bet it is.

By @jillesvangurp - 2 months
It's not so much a disconnect as more of a reluctance to specialize in what is an increasingly legacy/archaic way to build applications. I studied in the nineties and I've seen it all. Server side model view controller style UIs where each click results in a completely new page being fetched that is completely static slowly died over the last two decades plus (ever since MS pioneered XmlHttpRequest and AJAX became a thing in 2001).

Not doing requests via javascript still works. And for quick and dirty stuff where you don't care about how things look and feel it's a perfectly valid way of doing things. A lot of developer tools fall in that bucket. And a lot of developers are in any case a bit challenged on the UX front anyway so there's a good argument for not using too many ways to shoot at your feet. But having every request wiping the current page, scrolling to the top, etc. can be a bit jarring as a UX as well. And there's the whole round trip latency for fetching pages too, which can be noticeable.

In other words, if paying customers are involved you probably should not go there. Mostly people expect things to look and feel nice and have some designers involved with the whole thing.

End users don't care about any of this of course. They also don't care if the app is native, a webapp, or something you could have hosted on geocities 25 years ago. But they do notice if things look dated, crap, or otherwise a bit meh.

They especially don't care how things look under the hood. The whole notion of semantically pure HTML, vue vs. react, and all the other nonsense web developers obsess about. It does not matter to them at all. You could use divs for every freaking HTML element and they couldn't care less. Or render the whole thing with some native UI toolkit to a canvas (which is an option these days). As long as it does the job.

You don't have to do a SPA. But you kind of do have to deliver something that works and looks and feels nice. With WASM, we are kind of getting a lot more ways to do things. The whole game of working around browser quirks and limitations with dom trees, CSS, and what not is not necessarily the way of the future.

By @shahzaibmushtaq - 2 months
A growing disconnect begins to grow when coders learn from bootcamp/courses that web development is an ocean, and this ocean is as big as the well.

Strong fundamentals are essential in every field, otherwise the disconnect will continue to grow and no one can do a thing about it.

By @relaxing - 2 months
> Which method removes and returns the last element of an array?

The answer is “pop”, right? I think that’s a fairly generic data structures question (if you treat the word array as a standin for any modern iterable collection type.)

By @scotty79 - 2 months
Somebody at some point was predicting that JS is going to eat software world. Even made a funny talk about it. It's gradually happening.
By @sesm - 2 months
So the programmer mentioned in the first sentence didn't know about 'preserve log' checkbox?
By @berkes - 2 months
Is it really a disconnect? Or just a single poorly made game show?

The article doesnt really get into this. It just describes the mistakes in a show, and hints at a few other anecdotes to then conclude there's a disconnect.

I believe there may be such a disconnect (34 years of programming under the belt, here) but it's hardly more than a feeling, or belief. This article doesn't substantiate this.