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 articleThe 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.
Related
Contempt Culture
The article highlights the harmful "contempt culture" in programming, which excludes women and minorities. It calls for inclusivity, self-reflection, and accountability to foster supportive programming communities.
Magic Isn't Real
The article reflects on a software developer's journey from confusion to clarity in programming, emphasizing the importance of experience, continuous learning, and tackling challenges to gain deeper understanding.
The web I want vs. the one we have
The author reflects on a disconnect in Silicon Valley between industry leaders' understanding and software capabilities, expressing disillusionment while cherishing global connections and pursuing blogging and business ideas.
What Color is Your Function? (2015)
The article discusses challenges in asynchronous programming, critiquing callbacks and promises in JavaScript and Node.js, while noting that async-await improves usability but doesn't resolve fundamental issues.
Ask HN: Best practices using AI as an experienced web dev
The author, an experienced web developer, reflects on their journey with web technologies and expresses skepticism about AI coding assistants, finding prompt crafting time-consuming and questioning their value for proficient developers.
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>
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.
https://www.perseus.tufts.edu/hopper/text?doc=Perseus%3Atext....
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.
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?
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!
The tide is turning to an extent though. Here is my contribution:
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.
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.
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.
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.
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
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.
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.
Strong fundamentals are essential in every field, otherwise the disconnect will continue to grow and no one can do a thing about it.
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.)
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.
Related
Contempt Culture
The article highlights the harmful "contempt culture" in programming, which excludes women and minorities. It calls for inclusivity, self-reflection, and accountability to foster supportive programming communities.
Magic Isn't Real
The article reflects on a software developer's journey from confusion to clarity in programming, emphasizing the importance of experience, continuous learning, and tackling challenges to gain deeper understanding.
The web I want vs. the one we have
The author reflects on a disconnect in Silicon Valley between industry leaders' understanding and software capabilities, expressing disillusionment while cherishing global connections and pursuing blogging and business ideas.
What Color is Your Function? (2015)
The article discusses challenges in asynchronous programming, critiquing callbacks and promises in JavaScript and Node.js, while noting that async-await improves usability but doesn't resolve fundamental issues.
Ask HN: Best practices using AI as an experienced web dev
The author, an experienced web developer, reflects on their journey with web technologies and expresses skepticism about AI coding assistants, finding prompt crafting time-consuming and questioning their value for proficient developers.