Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

> how do people who build web stuff daily not know..

I'll stop it right there. You'd be surprised how many people who build web stuff daily know surprisingly little about how the web actually works or any details aside from that.

A surprisingly massive portion of people in tech have learned just enough through bootcamps and youtube videos to accomplish just enough for the specific job they are doing without realizing how it works or anything deeper than simple what to type to fix a problem.

For example: I'm shocked at the number of even senior web developers that I work with who don't know the difference between an A record and a CNAME record in DNS or even the basics of how DNS works. It is surprising how many people don't understand basic port mapping or even how a compiler works at a high level.

There is a whole generation of tech workers that only understand how to swing a hammer, and rely strictly on these tools without knowing anything larger in scope than the hammer and nails in front of them. The world of tech has turned into white collar factory workers for the vast majority of its' participants.



It's funny how I agree with your post, still switched from "full stack" to frontend, have studied at university and still there's a disconnect.

I've never dived into DNS and it's mostly a black spot in my knowlesge about weg technology basics.

OTOH, I agree with your point in that I've often been very disappointed with the lack of basic knowledge about HTTP and request/response lifecycles with BE as well as FE developer colleagues in the past.

I still would advise against mashing all of this together. Knowledge needs practise.

E.g., I learned about IPv4 CIDR at some point but just never really utilized the knowledge, so it's mostly gone.

Being a generalist is hard.

Of course this is no excuse for lacking basic knowledge (e.g., what code runs where)


As a front-end specialist you really don't need to know about anything about DNS though, unless you're doing front-end for a domain registrar, openDNS, or a cloud provider with DNS services.

I'm perplexed that there are full stack seniors who wouldn't know about this though.


As a web user who relies on controlling DNS in order to "block" ads and telemetry, among other things, and having done so since before "ad blockers" existed, I have long theorised this is why DNS is continually effective for me in successfully avoiding web developer shenanigans. Generally, DNS is a blind spot for web developers. And it appears likely to remain so for the forseeable future.


I’m cherry picking but A vs CNAME is incredibly simple, just not something most keep in their mind since you usually set it and forget it. As an aside, my guess is the recall rate would be a lot higher amongst people if the record types had better names instead of “A” and “CNAME”. Something like “Name-to-ip” and “Name-to-name” seem to be far better (I’m sure I’m missing nuance, like what do we call ALIAS, etc. but you get the point).

I guess to your core point I’m ok with there being different levels of engineers. Like any field once it becomes large enough there are opportunities for the deeply technical polymaths, the superficial tradesmen, and everyone in between. It’s just important that whoever’s hiring identify which level they want and hire accordingly. I’ve met plenty of people of both varieties so it’s not like the true “masters” of tech are dying out.


When people say "they don't know the difference between an A and a CNAME" they're not just talking about the basic definition of these concepts, which I agree with you is trivial.

But can you remember _which is which_? For instance, can a host have two A records? Can a host have two CNAMES? one of these might mess with mail delivery but the other is pretty common. Do you remember which is which?

DNS is an onion. At first it makes tons of sense. Then you learn a little bit and it makes less sense. Then you learn some more and it makes more sense. It is a bit tricky like that in a way that trips up lots of people. This speaks a little bit to your "levels of engineers," I think.


It’s not even those professionals, I’m talking people who are highly skilled and trained (CS/Engineering degrees). Like they could tell you off the top of their head HOW to build an adblocker, but they don’t use one themselves. That type of disconnect that is weird to me. People who don’t know any better I can understand.


Ad blockers can be an ethical issue if one considers that's what funds a site's content and its widespread availability.


Indeed, spying on users and sharing data about them so you can make a buck is unethical.


Not to mention ads incite to consume more, attempt to creep inside your daily thoughts and lie about the qualities of the product using all the tricks in the books.

Add on top of this it gives more power to the big players with more money and create terrible incentive for the medias and you have one of the easiest moral decision in the world.


Not all ads are exploitive or deceptive. Ads empower small players as well. Without them large and entrenched players have a greater advantage.


The whole industry lost me way back in the 90's when I saw the first popover/under ads for X10 cameras. No, the industry is entirely exploitative of technology with little to no real redeeming qualities and are so invasive, pervasive and dishonest that you generally can't even trust the top search results for product class reviews either.


This reads like a submarine article.


This presumes ads must spy on users. Yet ads have existed long before such spying was possible and can and do exist without spying on the web.


In fact, the ethical ones that are clearly written are the users with blockers, NOT the websites with ads

https://www.w3.org/TR/ethical-web-principles/#render

> 2.12 People should be able to render web content as they want

> People must be able to change web pages according to their needs. For example, people should be able to install style sheets, assistive browser extensions, and blockers of unwanted content or scripts or auto-played videos. We will build features and write specifications that respect peoples' agency, and will create user agents to represent those preferences on the web user's behalf.


I was definitely late to the game when it came to ad-blockers at least compared to a lot of HN. In general my position is that sites have to make money somehow, and too many users are never going to purchase their way past your paywall, not matter how cheap it is. Even having the friction of making someone sign up for an account is often too much.

There just finally came a breaking point where too much of the web was essentially unusable without it. It's a shame this ends up punishing sites who do the reasonable thing and just have for example a static add off to the side of the content, but I don't know what else to do at this point. This is why we can't have nice things.


Depending on the type of ad/adblocker combo, the website might still get the money for them, so the only “harm” you do is to the advertisers.


It's just a trust issue maybe? Browser extensions with this kind of access are surely not to be installed on a whim.

That being said, I do use uBlock origin.

But that's the only extension not from a huge company with this kind of access rights that I'd ever install on my machine.


Maybe they just don't want to. I don't use an adblocker because I'm not bothered by ads. I just don't care enough. The only place where it's actually annoying is YouTube and that's solved by paying for Premium.


I grew up with ads and learned to not pay attention to them.

I still use an ad-blocker on all of my own systems, and on my current company laptop.

But a few years back at a different company I didn’t have any ad blocker installed. This was an office job with a desk and coworkers walking past me all the time.

So at that job I’m having the browser open reading something and one of the older guys is walking past me. He stops dead in his tracks and says jokingly “are you looking at women on company time” and he laughs.

I look at him, confused. Then I look at my screen. Whoops! Next to the content I am reading is a huge ad that is pretty much a soft core porn ad.

Embarrassed I say I didn’t even notice the lady. My coworker chuckles and says “sure”.

But really, I had developed built in blinds in my mind that prevented me from consciously paying attention to ads.

That experience reminded me to always make sure to have adblockers installed.

And of course video ads are annoying no matter what, so having an ad blocker is nice for that as well.

Plus who knows, even if I don’t consiously notice ads my subconscious is probably registering it. So having an ad blocker is nice for this reason as well!


Marketing is a branch that employs hundred of thousands of people to devise the best images to manipulate you. Billions are spent on research in this domain.

thinking oneself impervious to ads, let alone blind, is in my view a bit presomptuous. I am convinced you are influenced by ads, you just don't notice it (and that's the point of ads, you shouldn't notice)


I can't find it in a quick 2 minute search, but I seem to recall a study that concluded that people who thought they were unaffected by advertising were actually MORE susceptible. Which makes a sort of intuitive sense. If someone is aware they can be manipulated they can make a conscious effort to counteract it. Someone who assumes they are immune won't.


> I am convinced you are influenced by ads, you just don't notice it (and that's the point of ads, you shouldn't notice)

Yeah that’s why I explicitly mentioned the difference between what I consciously notice and my subconscious and why I mentioned this as another reason to have an adblocker :I


Sorry then I misread you. I focussed on the statement "truly blind to ads"...


No worries :)


Thinking that the purpose of online ads is advertising, is in my view a bit presumptuous :-)


Depends a bit what your definition of "advertising" includes I guess...


I can't help but wonder what effect advertising has peoples mental health. I doubt it's positive.


Video ads are an exception — especially when your country pushes their disgusting propaganda through it. I could honestly throw my phone at a wall when I hear that ad, and it is constantly everywhere — I don’t even understand how come I can’t report it or make it not appear to me in google?!

(Country is Hungary..)


The frontend dev experience in particular is so heavily abstracted these days that it’s no surprise that the rest of the stack is ‘out of sight, out of mind’. You spend most of your time in the browser and deployment is just a fire-and-forget CI integration (like with Vercel).

I’d expect more from backend and full-stack engineers since it becomes much more relevant then.


I work for an IT provider - I don't think I've spoken to a single web developer who actually understands DNS and doesn't need their hand holding to get us the correct records to update. Most of them just ask us/the client to change the NS to wordpress.com or w/e, breaking their e-mail and a load of other stuff


I've been in the field for seven years, primarily working for startups, and though I'm primarily FE I've dabbled in some backend stuff, and I've deployed many apps. I couldn't tell you off the top of my head what the difference between CNAME or A record is. All I know is when it comes time for deployment, I go to Google cloud DNS or AWS's equivalent and follow the instructions on how to deploy. If things don't work, I Google it.

I understand your higher level point (these boot camp guys don't understand even the basics) but where do you draw the line between basics and not basics? Many people couldn't employé Dijkstra's algorithm, or A*, or an efficient sorting algorithm. Many people couldn't tell you how memory works outside of "don't try to load 1million things from a database."

But if they're hired as a FE/BE engineer, and can perform the tasks provided to them 99% of the time (and googling / enriching themselves that 1%) what's the concern here?


I think it's fair to expect people know the basics of how DNS works at a high level. For specific terminology, I think it's hard to remember without having some practical use for the knowledge, at least occasionally, so it's not that surprising that someone couldn't recall.


> A surprisingly massive portion of people in tech have learned just enough through bootcamps and youtube videos to accomplish just enough for the specific job they are doing without realizing how it works or anything deeper than simple what to type to fix a problem.

If this is true across the board, it may be a data point that software engineering requires a set of specific mentality and skills, so much so that we software engineers can still enjoy imbalanced supply and demand of tech talent for years to come. On the other hand, it can well be my wishful thinking. EE has always been more hardcore to master and was once a booming career, but the market for EE talent shrank a lot from its hay days.


Back many decades ago when I started, the field wasn't so broad and you could learn how so many more things worked, compilers, DNS, IP, distributed systems, hardware implementation, blah blah blah.


This is why AI can replace programmers.

Not the 10% who are actually good but everyone else. BUT AI ISN'T CREATIVE be honest are you?


Once they develop past 3 years olds in reasoning abilities…


Those all sound like things for a network engineer to know. I’d rather a web developer spend their time mastering the intricacies of CSS than learning someone else’s specialty.


No, you would know about these things if you ever deployed an application (and you cannot convince me otherwise.)


DNS records are usually set once and forget. You read the documentation once when you’re doing it, and then you basically never have to touch it again. I had to look up the difference between a CNAME and an A record, even though I’ve set them numerous times before. Not useful in day-to-day.

DNS servers: going to assume you query a DNS server that has a map of domain names to IP addresses, with basic routing via DNS records, which then resolve to a final address which is sent back. Again, never going to have to know this unless I’m a network admin.

Port-mapping: what is there to understand? I have literally never had to map ports unless I’m port-forwarding a game server I’m running on my local machine, that’s using a router to be exposed to the outside network. Literally, every cloud provider will give you an endpoint address that does not require port-mapping. If you’re setting up a company network you have to port-map, but not if you’re deploying a simple server/app. Ergo, network admin’s job.

Compilers: lol. There’s tons of languages, and tons of different compilers for each language. Then there’s distinguishing compilers, interpreters, compiler-interpreters, and transpilers. At the end of the day they take text (usually) and transform it into another form. I’ve built a compiler before (toy AST & recursive descent), but I have never needed to know about it in a CRUD context.


I'd like to take the opportunity to throw some shade at network admins because out of all companies I worked at, they have consistently been the slowest to respond when their stack is usually the most reactive to changes.


Almost like those annoying neurosurgeons taking 18 hours to perform a brain surgery that could've been 30 minutes.

Network configuration changes are the reason for 90%+ of domain-wide multi-hour outages.

You can remote-reset everything but if the network breaks, you have to physically get there. (OOB/LOM notwithstanding)


The more people that offload their knowledge to the category that should be handled by networking experts, the higher the backlog for the networking experts. Which kind of supports OP's point.


> Literally, every cloud provider will give you an endpoint address that does not require port-mapping

Try running a real server. But even in the cloud you'll quickly run into it as soon as your stack becomes even mildly complex.


It depends what you mean by 'deploy', because that could cover everything from spinning up a new box in a cluster to creating a kubernetes deployment to simply dragging and dropping files in an FTP application or using scp.


I’ve been working professionally in the field for 25+ years. I just turn it over to the network and devops teams when it’s time to deploy. There is no reason a web developer should know those things.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: