Yeah I feel that. I also worked for many years as a nightclub bouncer where those actions and consequences are a lot more immediate, which in some ways is easier than with software work, but the nature and immediacy of the consequences could feel a lot more stark. We can't always know everything we need to know to make the best decision. I reckon the only thing we can ask of ourselves is to make the best decision we can based on the information we have, though the decision-making process certainly can be refined.
Like a lot of developers my age, the first programming book I read all the way through was the brilliant Learning Perl by Larry Wall. Likely the most quoted passage from that book isn't about programming, but about programmers: "The three chief virtues of a programmer are: Laziness, Impatience and Hubris." The book was funny, and that passage was intended to be humorous commentary on the bravado a little beneficial Dunning-Krueger can give us when approaching a problem in unfamiliar space. It's a joke about starting a projects and not letting daunting tasks kill your optimism: it's not a set of maxims that developers should model their life philosophy on.
One invaluable thing I got from my formal design education was not trusting my assumptions about the needs, perspectives, motivations, and capabilities of other people, or the complexities of the systems in which they operate. In many ways, this directly opposes Wall's Laziness, Impatience and Hubris. This is why interface designers make better interfaces than developers. It's all about pushing back against your own perspective and trying to untangle the messy human element to see what people really need-- in the case of software, what they need to most effectively and efficiently solve their problems-- and how best to provide that for them.
But it's a yin/yang thing. A whole lot of problems in this world have only been solved because someone didn't realize they were trying to solve an insolvable problem, until they did it. But there's a real danger in operating under the assumption that we've got this pan-topic expertise that allows us to slice through any subject with a few quick swipes of our super duper ultrabrains using a few mental calculations based on a couple assumptions and approximate a couple of things about human behavior based on the way we understand it, intuitively. That's lost on a lot of developers and engineers-- especially younger ones. (And after working with developers as a designer rather than as a developer for a while, I understood how infuriating that could be.) When it comes to things like advertising, where people are so heavily peppered with them, and quite possibly have worked on their technical underpinnings, they assume that they "understand advertising" instead of understanding their conscious experience with advertisements.
There are lots of terrible odious things that happen in marketing and advertising and you'll rarely find someone as critical of them as me. As a developer, I've come close to quitting jobs in protest of putting in some creepy telemetry in things I developed, and successfully skewered those initiatives. However, the pushback against advertisements generally is misguided. It's a huge topic that people paint with a broad brush based on their experience with ads. If you're interested in my thoughts, I was pushing back against someone that said we simply could do away with advertisements in this over-long comment:
I read and appreciated your thoughtful comment. The problem for me is that "advertising" as is common now on the internet has strong negative effects. I am guessing like when everyone was using coal for heating. We are so used to it that we do not consider it. And there is no viable alternative which makes it unpleasant to think about.
I believe we humans have little tolerance for being helpless. Seriously. To the point where we would rather ignore things. It is like coal. Who wanted to dwell on the damage of coal as a power source when there was no alternative? At least that is how I explain the weird ways humans react.
So then we get to why there is not an alternative to the current internet business model- tracking people and selling them as targets. Why is there no alternative? Perhaps it is because of the mismatch between internet service businesses and our financial system?
The internet is characterized by a staggering number of very, very low value transactions. It is 1 million $0.00001 transactions. There is a finite cost. If I post on HN, if I send an email. There is a very small but nevertheless real cost. But how can I pay $0.0001 to send my email? There is no cost effective way to do that. The cost of a single credit card transaction is much higher (Stripe says 2.9% + 30 cents).
So instead of people paying for a service, third parties pay to target customers. Why would you want to target a customer? While there is some legitimate interest, but targeting is easily used to exploit people. Even when there is some reason the effects can be deadly. The NYT is the source of news for many people. But the advertisers are most interested in one demographic - the very wealthy. So the NYT has a parade of articles about what kind of second vacation home $1 million will buy you in Portand, Maine. Or Edmonton, or Pais. But in Portland, Maine, there is an astonishing problem of homelessness. Does the NYT run articles about "The damage your $1 million second vacation home is doing to the people of Maine"? Nope. Because the target demographic does not want to read that, and the advertisers for $600 boots will not want their ad place near it. Etc.
I think the problem is real. I think the side effects are far more damaging that we can tolerate considering. Appreciate your thinking.
Like a lot of developers my age, the first programming book I read all the way through was the brilliant Learning Perl by Larry Wall. Likely the most quoted passage from that book isn't about programming, but about programmers: "The three chief virtues of a programmer are: Laziness, Impatience and Hubris." The book was funny, and that passage was intended to be humorous commentary on the bravado a little beneficial Dunning-Krueger can give us when approaching a problem in unfamiliar space. It's a joke about starting a projects and not letting daunting tasks kill your optimism: it's not a set of maxims that developers should model their life philosophy on.
One invaluable thing I got from my formal design education was not trusting my assumptions about the needs, perspectives, motivations, and capabilities of other people, or the complexities of the systems in which they operate. In many ways, this directly opposes Wall's Laziness, Impatience and Hubris. This is why interface designers make better interfaces than developers. It's all about pushing back against your own perspective and trying to untangle the messy human element to see what people really need-- in the case of software, what they need to most effectively and efficiently solve their problems-- and how best to provide that for them.
But it's a yin/yang thing. A whole lot of problems in this world have only been solved because someone didn't realize they were trying to solve an insolvable problem, until they did it. But there's a real danger in operating under the assumption that we've got this pan-topic expertise that allows us to slice through any subject with a few quick swipes of our super duper ultrabrains using a few mental calculations based on a couple assumptions and approximate a couple of things about human behavior based on the way we understand it, intuitively. That's lost on a lot of developers and engineers-- especially younger ones. (And after working with developers as a designer rather than as a developer for a while, I understood how infuriating that could be.) When it comes to things like advertising, where people are so heavily peppered with them, and quite possibly have worked on their technical underpinnings, they assume that they "understand advertising" instead of understanding their conscious experience with advertisements.
There are lots of terrible odious things that happen in marketing and advertising and you'll rarely find someone as critical of them as me. As a developer, I've come close to quitting jobs in protest of putting in some creepy telemetry in things I developed, and successfully skewered those initiatives. However, the pushback against advertisements generally is misguided. It's a huge topic that people paint with a broad brush based on their experience with ads. If you're interested in my thoughts, I was pushing back against someone that said we simply could do away with advertisements in this over-long comment:
https://news.ycombinator.com/item?id=43015751