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

What you have encountered is actually one of the necessary steps to really become "a senior developer". And congratulations, you have already passed the biggest part of that hurdle: becoming aware of the issue.

There are things that are fragile, things that break when they encounter a shock. Such as porcelain, when transported. There are things that are non-fragile, things that do not break when they encounter a similar shock. Like a teddy bear, when transported. And there are things that are anti-fragile, things that improve when they are exposed to a shock, like the immune system. If you are not exposed to series of smaller shocks as a child, your immune system does not develop properly.

So you need to develop an anti-fragile attitude towards criticism, in order to become a better developer from the criticism. If you do not learn that, you will be stuck at the level you are at the moment. You can do this at the meta-level as well at the same time: become anti-fragile towards handling criticism in general, and becoming a better human being from it.

The key to hacking yourself is to increase your awareness of your emotional state. When you become aware that you are angry, the anger is losing the grip it has over you. When you are angry, you are sometimes doing things you would not have done if you were not angry. (Sometimes anger is healthy, it may also be a signal to us that our boundaries have been violated.)



Uhm...I have to chime in here.

"Anti-fragile attitude" when it comes to criticism is not built by tolerance. Quite the opposite actually. It is a common misconception. While making yourself numb against criticism IS a solution but not by far the best one.

A high criticism tolerance is learned by understanding that ones self worth is not attached to output or delivery. (This is hard in our industry) It comes from self-acceptance and compassion. And these values are learned early on. You'll find that the people that break down at the slightest criticism the most are those that were criticised the most as children as well. Those that had no room for being anything other than perfect. Where value was obtained from performance.

To take it even further...why see it as criticism at all? You are not your lines of code.


I’ve heard similar statements from other people, and I have a disconnect that prevents me from understanding. Why would someone want to detach their self worth from what they do? If someone ought not feel a negative emotion in response to doing something “bad”, by what logic can they justify feeling something positive in response to doing something “good”? I cannot conceive of a world view that allows one to feel proud of their accomplishments but does not require their disappointment in their shortcomings.

Furthermore, the idea of separating one’s self-worth from “what one does” does not make sense to me either. If someone’s worth is not tied to what they do, then the criminals, liars, frauds, cheaters, etc., of the world are every bit as valuable as our loved ones, idols, great contributors, etc. That view doesn’t make any sense to me; I wouldn’t be disappointed one ounce if all the criminals on the Earth vanished tomorrow, but I would be greatly disappointed if all my friends disappeared. The only difference between those people is “what they do/have done”.


There’s a few things I see in your post.

One is an implied notion of objective rankings of worth of humans, and binary labels for people. Your post explicitly categorized “all criminals” and “all my friends” at disjoint sets. I can’t speak for your friends, but many of mine are “criminals” in the sense of disregard for drug laws. If you’re willing to sweep minor traffic violations under the heading “criminal” you’d probably sweep up most individuals with drivers licenses. Is the hypothetical person stealing so they (or their children) can eat irredeemable to you? There are certainly folks who on net do more harm than good, but rare are the people who truly only do bad to the world.

Second is a matter of perspective. If your friend started a new thing today, say learning the piano if they’ve never played an instrument, would you expect them to be good? If not, would you think less of them for trying? What if they’ve been playing for years, and one time when playing a song they’ve practiced many times they miss a few keys? Now replace the friend with yourself. Does your feelings about any of these change?

It’s not uncommon (especially in programmer types) to allow others more grace than we allow ourselves. You can be disappointed by your failures, and thrilled by your successes without impacting your sense of self worth.


I don’t think there is an objective ranking of worths of humans. What is valuable is inherently subjective. Everyone has a different value system. However, I believe there is a large amount of overlap, especially in the extremes. Most people find murder and rape deplorable, for instance. That is the group I was referring to when I said “criminals”. Personally, I believe members of that group to be below valueless, i.e., I would benefit from their not existing. Others can draw their lines differently, but I suspect most people have some similar group.

Looking at your piano examples, if I had a friend who took up piano, I would admire that, because I value learning. I wouldn’t expect them to be good, and I would not think any less of them, because it is the gumption to try something new and to learn a new skill that I find value in, not playing the piano. If they had been playing piano for years and made mistakes, I would not think any less of them, because I don’t value the ability to play the piano. Presumably, after many years of practice, playing the piano would hold a lot of value to them (or it held value to them so they practiced; the point still stands) and so it would make a lot of sense to me that they would feel worse when they made mistakes; those mistakes demonstrate to them that they have less of something that they value.

Like I said, we all have different value systems, but our self-worths should be tied to how well we live our values, i.e., our integrity. If our self-worth is not tied to how well we represent our values, then it is, IMO, baseless.


They are advocating for self-worth to be intrinsic to oneself. The reason for this is the acknowledgement of at least 2 things: that every human is a victim of their starting circumstances, and the potential in every human being to alter their course in life. All the criminals you would be content to see disappear still were victims of the circumstances that led them there, and they all had potential to alter their course in life. You never know what stimulus life will offer you that can change everything for you. From a more utilitarian view, even criminals can possess very valuable skills that can be directed to constructive uses.


> Personally I believe members of that group to be below valueless.

Well, this seems like an extreme attitude that doesn't account for a large swath of how the world actually works, and is often gotten to that point by personal bias and not questioning beliefs constructively.

Its flawed because its an overgeneralization.

To provide an example, are there people that have been wrongfully convicted. Have any of those people been put to death as a result of those convictions. Assume for a second that you are one of those persons, and 12 people based upon some judge or skewed evidence chose that. Are you valueless? Who chose that you would be convicted? Wrong place at the wrong time?

There's a movie with Russel Crowe called The Next Three Days. It covers this type of premise. We never have absolute information, we have interpretations which are just as malleable as a game of telephone.

As for your ideas on value systems and integrity and self-worth, there are contradictions and its a bit convoluted. It fails to make distinctions between things within and outside your control, and the ever present ability of others to deceive sometimes even without their knowledge.


You’ve missed the point, but also helped support their point. The comment was about criminals that rape and murder - as in people that perform those actions.

Whether society accurately captures and properly deals with those people is an entirely different subject. The fact society even has to do so is a net negative


What you say makes sense but misses a critical point i.e of self compassion. Looking at the piano example, if they are kind to themselves and based on the amount of compassion they have, a failure of screwing up a few keys might be nothing, missing a piece from a song might be a bad day and screwing up a live orchestra may be a learning experience. To another unkind to self piano play one or all of these are catastrophes and a hit to ones self esteem. Both of these folks are experienced piano players but the former is able to disconnect and review their mistakes without placing a judgement on self(i.e. being a harsh parent to self.)

Depending on how harshly one judges oneself is the reason for not handling criticism to ones failings. No one is perfect so one better be kind and try to learn from their mistakes and not take it on their ego.


Two questions. Can a slacker goodfornothing McDonald's-working college dropout that only live day to day, party to party, feel self-worth or should they feel worthless? Can I as a senior software developer base my selfworth on the same value system as that college dropout even though I finished college? Aka if I made an honest mistake in my pr, I wouldn't have to feel bad and decrease my selfworth even though I think I could have written better code.


> Can a slacker goodfornothing McDonald's-working college dropout that only live day to day, party to party, feel self-worth?

Do they throw good parties?

Do they help their friends celebrate their successes and provide succor in times of need? If so, why shouldn't they feel some self-worth?


Average parties, ok friend.


>Can a slacker goodfornothing McDonald's-working college dropout that only live day to day, party to party, feel self-worth or should they feel worthless?

The person you posited has more self-worth, by definition, than the self-doubting programmers in this thread. Precisely because they are getting by while doing something much less "meaningful" or "useful" (as evaluated by others) than a job in software engineering.

(Of course, I'm talking about the hypothetical person I imagined when I read your post; most such people that I've met in real life actually feel pretty bad about themselves, party to numb the pain, or because they have nothing better to do, and actually feel worse after they've had their "fun", et cetera. But let's roll with your scenario for a second, I think you're on to something important.)

Maybe this person doesn't have to suck up to a pointy-haired boss, or doesn't have to mentally model arcane concepts that are subject to planned obsolescence anyway, or doesn't participate in the violation of people's minds facilitated by the infotech industry.

Or maybe they still do the aforementioned things but on their own terms. Maybe they code for fun and write malware when hungover out of pure malice. Or they don't. Maybe they're a hooker on smack and just shat on your floor. It does not matter. What does matter is that this hypothetical person does not have the experiences that make you ascribe "negative" or "insufficient" self-worth to yourself.

In other words:

* You can be an absolutely awful horrible piece of shit person by anyone else's (or everyone else's) standards and still have a feeling of self-worth. This is by definition: self-worth is the worth that you ascribe to yourself. No matter how much you care (or not - it's a choice) about other people, self-worth is self-worth; worth to "civilized society", "a value system" or "an individual other" is not self-worth, by definition.

* On the other hand, the "need" to experience something that others call "self-worth" does not in fact originate from the self, but is a vague obligation imposed onto you by others: the obligation to have some sort of nebulous experience that others call "a feeling of self-worth".

* There is no such thing as "should feel worthless": nobody gets to tell anyone else how to feel. Imposing an obligation on someone to experience an emotional state is, technically, a violation of bodily integrity. Yeah I said it. Whatever real, physical neurochemical process lies behind the experience related to the concept of "self-worth", is a normal part of the body's homeostasis, serving to ensure the self-preservation of an animal that is able to kill itself for entirely abstract reasons (such as awareness of own mortality, and downhill from there).

In even fewer words: in my book, someone who is an "ok friend" and throws "average parties", is defined as "a waste of my time". But they still get to live on the same planet and breathe the same air as me with my silly book. I don't get to decide their self-worth for them, and nobody, and nothing, gets to decide that for you, either.

Therefore: you can feel perfectly good about your successes and failures without even entertaining the notion of there being a concept of "self-worth". According to nobody in particular, this is actually preferable, for Occam's razor reasons if nothing else.

In theory, you can be a very "successful" person and still feel worthless; in practice, the feeling of worthlessness usually prevents one from becoming "successful", and makes it look as if it's the other way around.

Ultimately, the matter can be put like this: do you see yourself as goods to be bought and sold? If yes, then go ahead and demonstrate your high "feeling of self-worth" as much as you have to. If no, then why even bother with pricing yourself?


You can feel whatever you want to feel. That doesn't mean it translate to anything in reality.


>That doesn't mean it translate to anything in reality.

Absolutely true and exactly my point: while you're feeling what others want you to feel, you're missing out on feeling things that do translate to actual, valid insights about your reality.

For example, this whole absurd notion of "self-worth" that we're discussing here. It's there to scam you into thinking about yourself what others think about you - even though they're not in your shoes, and may even have a vested interest in seeing you down.

Even the name of that concept is misleading (how is your self-worth dependent on your worth to others, unless you yourself make it so?). And here we are talking about "reality" as if human social reality is not predominantly a linguistic construct, and constantly subjected to these absolutely ridiculous abstract symbolic switcheroos, that people only fall for because they believe they have better things to do than get their thinking in order.

>You can feel whatever you want to feel.

But you can only want what you feel like wanting. So you're still trapped: desire is either intrinsic or mimetic, feelings are conditioned, yada yada.

And I'm pretty sure you can't actually "feel whatever you want to feel" - not without a Nozickian "experience machine" or years of advanced meditation practice, anyway.


The pro tip is to attach your self worth not to your skill, but to it's first derivative!

That way any criticism that helps you improve your game, no matter how unpleasantly delivered, is a power up.

I say it glibly, like it's easy, but it works if one can internalize it.


I do like this (and the way you phrased it!) but I do think it has a dark side - there will come a time in your life where your skills plateau, and another time in your life where your skills start to decrease. Actually both of these will probably happen many times in your life!

It's important to recognize the ebb and flow and to be kind to yourself.


Hmm, thanks for putting into words something I have been doing unknowingly my entire life.


This is such an insightful comment. Thanks!


This was an interesting point of view.


To give a slightly different answer than other commenters:

To detach emotions from work without throwing out the value of good work: attach your self-worth to something UPSTREAM "doing good work", a cause of good work, and not the work itself. You do this by realizing that the emotional attachment to your own work was never really about the work, it was what the work implied about you; the emotional brain jumps to conclusions. Good work, when you zoom in as if with a better telescope, that you are responsible, capable, well-intentioned, generous, intelligent. These can be ends in themselves—you'll disappoint yourself when you fail to live up to them, for their own sake. Those are better ends—they let you say "I DID address everything I could think of but I missed something, I'd better learn from that", rather than feeling something you missed as a vague attack against your whole being. And because, you often try to prove we are all those things—fearing you're not—but fool ourselves with things that don't really prove it—like material wealth, or attention, or good grades. And then even if you succeed you are left with some guilt: "I got the good grades but I feel like I could have done something more important..."

You can take it further: those attributes, when you zoom in further, resolve further, into a feeling that you are worthy of existing, and worthy of love. In my experience (I have felt this, but I haven't learned to live like it), feeling "worthy of love" gives you permission TO love, to be good—which again you can invert. It's the right reason to be responsible, capable, etc—all of those flow outward from something deeper rather than being ends in themselves.


I think these platitudes are just mental hacks people use to manage their emotions. Emotional responses are valuable information, but only up to a point. If you dwell on emotions and allow them to become the basis of narratives about yourself then you are becoming disconnected from reality. This applies to both good and bad things, you never want to get too high or too low. Ultimately what matters is your character and how you operate. If you put in the work, you’ll tend to get better outcomes, but nothing can insulate you from mistakes. Being able to learn from mistakes and be your best requires that you don’t let your sense of self-worth be tied to fragile narratives or heavy self-defense mechanisms that deny reality.


Is your intrinsic value as a person due to what someone else thinks of the quality of your work? If so, that is inherently dangerous and fragile. That is what is being warned against.

Sometimes people are having a bad day. Sometimes someone has a different view of 'good' than you. Sometimes someone just got served divorce papers that morning out of the blue. And none of that you can control, or even do much to influence many times.

However, being aware that having others value the output you produce gives you things that benefit you - like help pay the rent - in combination with other factors, and is therefore important to you. But it's different.

Looking at your work and being able to judge yourself if you did a good job, is healthier, and more productive. If you're seeing that others judge the value of it differently, it's worth investigating why.

There may be something you're missing (different values, or they don't like your face, or they hate the language it's in or the style, or they haven't been laid in years, whatever).

If it is something you can adjust, it may be worth doing so. If not (or not worth it), it may be worth finding somewhere else with different values. It may also be worth adjusting your judgement of your work based on those factors, IF you think they're valid and it will improve things in your favor. Sometimes, it's worth just writing off the feedback or defending yourself, because it's coming from a toxic place from them.

But if you do this, they won't be personal attacks, because it isn't about you (as in who you actually are), because they can't know the truth there anyway. People don't work that way.

It will be about their perception of the value of what you produce to them, or their perception of you. Which is not up to you (directly), but you can influence it, and often has little to do with who you actually are and more to do with specific things you can concretely do a bit differently and change.

Does that help?


> Is your intrinsic value as a person due to what someone else thinks of the quality of your work?

Absolutely, but:

1) not all of that value, just the value as someone who does that work. I mean, it would be crazy to think that you have no value as a dad to your three-year-old because you made some crap code design.

2) not for all possible values of "someone else". Just those someone else who have a clue about the work, and make specific, objective criticisms that are verifiably true, and who understand the context of the work: what are its requirements and non-requirements, including constraints.

3) I don't necessarily want someone else to think everything I make is of high quality; however, the right somebodies should more or less agree with me about the quality. If I make something and think it is of medium quality (for some justifiable economic reasons), then if someone thinks it is of great quality, I will regard him as a fool; but if someone thinks it is of garbage quality, I will wonder whether I might not be a fool. Ideally, we should be of one mind with everyone who understands the problem and the work. If the work is mediocre, everyone (including the author) should find it so based on some objective criteria. Everyone who understands the economic reasons for why it was made mediocre should ideally agree with that also. "Ah, I see; I would have done it the same with regard to that purpose and those requirements."


The challenge I think is rational analysis != emotional reality many (often most) times. And many times emotional reality is due to some physical element we’re just not noticing (didn’t eat lunch, or haven’t stretched in years, or whatever).

It’s easy to say ‘no, my value as a person is not due to if someone likes my work’, but emotionally we can still be in that place for many hard to address reasons.

And under stress (which we almost all are), balancing out all this to come up with ‘good enough’ and managing all the stakeholders understanding of ‘good enough’ to come to a successful outcome can be really hard and even more stressful.

So I guess what I’m saying is, if rationally someone understands, but they are still reacting that way, there is almost certainly a real reason, it just isn’t one they are able to see right now.

So maybe some yoga/excercise, or some meditation, or going outside for awhile and touching grass can help too.

Us engineer types tend to ignore emotional and physical health sometimes, especially when there is something scary or exciting going on. And we have a ton of that right now.


> I cannot conceive of a world view that allows one to feel proud of their accomplishments but does not require their disappointment in their shortcomings.

For me there's a big difference between being disappointed in what I've done and feeling bad for what I've done.

If I write some shitty code, which I still do after 30 years of programming, and my colleague points it out, I feel disappointed. But I don't feel bad. I fix it, try to learn from it and move on.


When I write shitty code, there is nothing to learn any more. I already know it's shitty and would have called it out if someone else wrote it. If that still happens by now, there is nothing that can be done; that's why we have that review process, thank you. Alone you and I will write shitty code and merge it into the trunk. With mutual cross-checking, far less so. That's the main content of the learning.


> Why would someone want to detach their self worth from what they do

What you are doing is a higher goal than a PR, and detaching yourself from the minor details allows you to achieve this with greater flexibility and skill in the long term.

You have to take steps back and see subsequent bigger pictures and see what you’re doing within the context of a product, a job, a pattern of self-improvement, a fulfilling life.


There's a difference between taking criticism of a section of code to be indicative of some kind of moral failing, and taking that criticism to mean that their understanding of that piece of code was not complete. The first is a direct hit to self worth, the second is a hit to one thing that is used to determine self worth along with lots of other things. The first way is taking it as some kind of attack, the second way is taking it as a learning experience and a chance to increase self-worth by becoming a better developer.

So I think what people mean when they suggest detaching their self worth from their code is that they shouldn't take criticism of their code as a personal attack but as a chance to learn and grow. Hence "you are not your code": the attack isn't a direct assault on you, it's a technical argument about the actual code itself.


Intrinsic motivation starts pulling someone into a whole person, whereas someone entirely reliant on extrinsic motivation does not really know who they are.

Take criminal behavior as an example. Someone reliant mainly on extrinsic motivation are also the same people who will not know what the right thing is when no one is looking — or worse, they are bad actors when no one is looking. Being intrinsically motivated for moral behavior requires you to really examine what is right or wrong.

This includes self-worth. I don’t think most people who are mostly extrinsically motivated realize the extent of social engineering and conditioning used so that society benefits the wealthy few .


Fundamentally, because we are still worth something even when our achievements are completely removed.

If you take the view that our achievements are necessarily integral to our self worth this logically isn't true.


But this isn't the point. The previous commenter was replying to someone who said that what we do has zero to do with our self worth. They were saying, no, it does have quite a lot to do with it.

Saying "well it's not all about what we do!" is not in keeping with the conversation.


> we are still worth something even when our achievements are completely removed.

You can’t logically derive this from anything. It’s just a choice of how to see the world. “Worth” is inherently a subjective value judgement.


Who ever said it has to be logically derived?

Most of what we do and how we think is not “logically derived” and is extremely subjective; we’re human, not Vulcan.


The GP claimed that "this logically isn't true", implying that the question is one of logical reasoning.


> I cannot conceive of a world view that allows one to feel proud of their accomplishments but does not require their disappointment in their shortcomings.

That is a great point... but the answer is that you should also take your accomplishments with a grain of salt.

Basically, yes, your outcomes are a function of your inputs (talent, work, etc.), but it is a very noisy function and people usually underestimate that part. Sometimes you do the right thing and fail anyway, in the sense that "the right thing" is a strategy that succeeds with probability 95%, but today just happened to be that remaining 5%. And if the next day you apply the same strategy to another task and succeed, it doesn't mean that you have improved.

If you want to base your self worth on your outcomes, at least choose the long-term trends over the short-term noise. If you usually do a good work, then the bug you made yesterday should be interpreted as an accident, rather than you being bad at what you do. And vice versa, the successfully completed project is a combination of your skills plus the good luck of not having one of those accidents today; both of them were necessary together.

> If someone’s worth is not tied to what they do, then the criminals, liars, frauds, cheaters, etc., of the world are every bit as valuable as our loved ones, idols, great contributors, etc.

Let's not judge moral character the same way we judge talent. To be a great contributor is a combination of character and talent. To be a criminal is a failure of character, but there are both talented and talentless criminals.


The distance allows risks.

If failing at a project means your a failure then you’re too close.

Failure and mistakes are how you learn.

If failure and criticism are about you then you will always be defensive about and flaws, perceived or real.

So yes be proud or disappointed, but have the distance and self confidence to believe it is expected and normal to make mistakes/fail at things on the path.

As the other commenter said care about the trends and 1st derivative not the individual data points.


I think you should attach your self-worth to your design; but not to some minor mistakes in implementation. Not your entire self-worth, just that of it which has to do with being a designer.

A great novelist would be foolish to let some editor's remarks about spelling errors and run-on commas destroy their self-worth as a writer.

If a knowledgeable critic points out problems like the plot being a series of unoriginal tropes, and the characters being paper-thin stereotypes, that has to strike at the author's self-worth as a writer. I don't see how you can get around that.


> The only difference between those people is “what they do/have done”.

This is a very consequentialist framing of values. There are other ways of conceptualizing values, like virtue ethics and deontology, so if you're actually interested in understanding a different modality, those are keywords you can Google.


Because your self worth shouldn’t be tied to how successful you are, but how willing you are to learn and grow. Nobody’s perfect nor can they be, so it’s a bad target. But everyone can be better.


It's even totally reasonable not to tie your self-worth to anything related to growth or learning or improvement or whatever. Plenty of people feel high self-worth by simply loving the people around them.


There is another, way more important, difference. You know your friends for who they are. You know the criminals only for what they do.


It's very dangerous to not also take into account what your friends do (or who the criminals are).

Words and emotions are easy to fake, deeds are much harder.


Even if your philosophical foundation is not western liberalism (which is derived from Christianity), you can appreciate that many western people view all people as having inherent dignity…

Being a person gives you value which cannot be take away.

It’s a philosophy, so one may reject it, but a lot of people separate their personness from their work because of the idea that each person is valuable in their own right.


> Why would someone want to detach their self worth from what they do?

If you derive self worth from results, then you could be disappointed by circumstances outside of your control.

Suppose you set a goal to make $1 million by age 30. At age 27 you're doing great and (through no fault of your own) you are struck by lightning. Because we're playing pretend let's just say your insurance doesn't cover lightning strikes and so medical bills drain a lot of your savings and you cannot continue your career and you do not become a millionare by 30.

If your goal is just the million, then you are a failure. You did not make it. If instead you derive self worth from your values, then you can still be a hard worker (or maybe your value is being self-starting, or entrepreneurial, or something else), even if you are struck by lightning.

> If someone ought not feel a negative emotion in response to doing something “bad”, by what logic can they justify feeling something positive in response to doing something “good”?

I think this section is pretty close to what I'm advocating here. "Good" and "bad" are doing a lot of legwork. What is good and what is bad? I'd wager if you asked people of different religions or ideologies or backgrounds you'd get a whole swath of answers here.

> I cannot conceive of a world view that allows one to feel proud of their accomplishments but does not require their disappointment in their shortcomings.

You might find that you attribute too much to yourself here. It can feel good when you are succeeding and sometimes the system at large is a major contributor to your accomplishments and your shortcomings. As an extreme example, I don't think that someone accomplishing little and suffering under Apartheid is worth less than someone benefiting from that system that accomplishes a lot.

> If someone’s worth is not tied to what they do, then the criminals, liars, frauds, cheaters, etc., of the world are every bit as valuable as our loved ones, idols, great contributors, etc.

To me it would depend why they commit crimes, why they lie, cheat, etc. Someone is stealing bread to feed their family that is very different from someone stealing taxes for a public project. Going back to the Apartheid example, an interracial couple would be breaking the law, and although they are criminals I would not want them to disappear for that. They could have even done horrible things to protest Apartheid and I would still not want them to disappear. If they had rotten values then sure.


>I cannot conceive of a world view that allows one to feel proud of their accomplishments but does not require their disappointment in their shortcomings.

First one's free: your accomplishments contribute towards your own well-being; your shortcomings are towards everyone else's disappointment. If you feel that your failures have disappointed others, you don't actually need to disappoint one more person (yourself) before you are allowed to do better. In practice, experiencing that emotional state is usually counterproductive (unless your goal is to make the others feel sorry for you). Just become aware of the failure and start looking for actionable root causes; no beating yourself up necessary.

You know, you did not even choose to be here in the first place: this world brought you forth into itself, by way of your ancestry, and imprinted its ways into the clean slate of your nervous system, by way of your formative experiences. "Perception of self" is just one of those imprints; "selfhood" is simply learned behavior.

(Even though it's next to impossible not to learn some form of selfhood, is it surprising in the slightest to say that different people's demonstrated perceptions of self can vary considerably?)

While "success" and "failure" are eminently useful notions for categorizing perceptions of feedback from the outside world, the only thing that makes these notions have any bearing at all on your perception of self is... force of habit. You have the option, and the moral right, to unlearn that habit. Nobody even asked you whether you want to be a "self"! You did not even exist when that choice was made! So, why feel responsible for whether you end up perceiving yourself as a "good enough" self? Don't you already have enough things to be responsible about, that are not entirely in your head through no fault of your own?

Expecting people to have internally consistent worldviews, or even an objective and logical perception of their own selves, is very, very idealistic. In my experience, people who are disappointed in themselves actually learned that from their parents and peers (and, increasingly, media) during the early years of their lives; it's this attitude of self-deprecation which sets them up to fail and guides them into a vicious cycle. While people who somehow avoided being taught this mentality in the first place, tend to be more resilient, not afraid to try, fail, then learn from failure and try again.

(Most people who don't kill themselves kinda-sorta end up unlearning self-deprecation and learning how to bounce back even from tremendous self-violations; but you have limited neuroplasticity, limited access to experiences, and limited time on this planet, so the sooner you start, the better. Don't wait until you can only learn internal resilience at the Pyrrhic cost of becoming an incorrigible narcissist, they're making too many of those already!)

>Furthermore, the idea of separating one’s self-worth from “what one does” does not make sense to me either. If someone’s worth is not tied to what they do, then the criminals, liars, frauds, cheaters, etc., of the world are every bit as valuable as our loved ones, idols, great contributors, etc.

You are confusing "their self-worth" with "their worth to you". Now, how could you? I think this is a really horrible, egregious, evil mistake for someone to casually make in the span of a couple sentences; I honestly can't fucking even. YET... you are still valuable to me, since you are the reason I am writing this message, you might even be receptive to my worldview, and I definitely do give a damn whether you get my point! No more, no less.

(Of course, for some reason people feel their self-worth diminished when someone points out what's basically a "syntax error" in their thinking. I think they teach 'em that in school through Pavlovian conditioning or something.)

You know, even horrible people are valuable to someone! Besides, it takes a great deal of self-worth to be a successful criminal, or even a petty liar! Especially because things can get overwhelmingly complicated really quickly, and advanced opponents can smell you doubting yourself. Narcissistic character is another case where one's self-worth and one's worth to others are grossly mismatched, to comic and often tragic effect.

What I would advise you to do (and yes, I am crazy, but I am not fucking with you), is to try listening attentively to some gangsta rap and try to put yourself in the shoes of... no, not an impoverished, radicalized African American youth; but of a well-to-do entertainer who successfully confuses the audience into believing that they are an impoverished, radicalized African American youth. And has the sheer audacity to accept more money for their controversial burlesque act, than you'll ever see for all your real hard work, that has actual, objective value for others, that everyone agrees on!

It's truly the eye-opening experience.


A low self esteem from constant insults (aka non-constructive or overly harshly presented critique) or lack of encouragement will kill anybody's ability to accept useful feedback, and people can certainly become numb to that.

However, that numbness is different than being unaccustomed to taking useful critique without getting defensive. Which is absolutely a learned skill– one of the most important you learn early in art school. Someone unaccustomed to any critique, or only used to complimentary feedback will bristle at any criticism.

Someone used to constructive critique will still bristle at insults, intentional or not, so the EQ of the critic in delivering the message is also critical. The biggest enemy here are people who think that their criticism can be as rude, pedantic, or imperious as they want if the core point is valid. That might provide comparable results for the issue at hand, a) but human beings don't deserve to be treated like that, and b) it kills morale, which kills productivity, quality, retention, etc. It blows my mind how many fully-grown adults can't see that they're only quieting their own insecurities with unnecessary harshness, and that they're essentially stealing self-esteem from the team by indulging that urge.

Having people on your team with poor enough mental hygiene that they need to position themselves above someone else to feel good is a serious problem. I think it's one of the things people really mean when they talk about overly macho bro types or neckbeards.


> low self esteem from ... non-constructive or overly harshly presented critique

ok firstly Comments about the individual in a CR is way out of line.

There is a massive difference between "This code will fail in <a certain way>" and "You failed <, again, like you always do>" ... The latter is out of line and should be addressed head on with a manager present or a person who will enforce it's toxicity.

Now that said, criticism of code should always been allowed. It either has certain properties or it does not. A discussion of economics (scope/timelines/applicability) are a middle ground. But either the code has a race condition or it doesnt. It's easily read (which is best judged by the reader, not the writer)... It's missing some property that is desirable.

If one takes a criticism of code as a criticism of self, that is ego crossing over to where it doesn't belong. I like to remember The bridge will either hold the load or not regardless of how one feels about it. "This wont hold 1 ton" is better information than "Have you considered what happens if you put 1 ton on this?" .. The former informs you of something that must change, the latter leaves uncertainty and obscurity where infact the answer is already known.


Conversations aren't pure textual exchanges and people aren't robots. Things like subtext, tone, word usage, appropriateness of timing, (like interrupting a presentation,) the volume of your voice, who else is present, the examples that you give and analogies you make to explain yourself, and plenty of other factors weigh into how something lands. If someone wants to conversationally bully someone or make them look unprepared or incompetent in front of people who need to think highly of them, it might not even require criticism. TV journalists do it all the time without making statements at all– they just ask questions.

Being direct and being polite aren't mutually exclusive, and direct criticism doesn't have to leave out any information at all. Saying "This approach won't work under peak load because" in a code review conveys the same exact message as "Your code will collapse like a popsicle stick bridge the second we hit peak load because" during a meeting.


Part of the issue is that "Polite" in american has trended towards indirection. "I'm not sure that was the best choice" is American for "That absolutely was not the best choice and must be reverted immediately" .


A) That's not an American thing. US confrontation etiquette is still far more direct than British, for example, even if less direct than in, say, scandanavian countries. B) If the message ends up being the same, what is the actual negative effect? I'm not saying you have to like it, but it seems to be an entirely aesthetic "get off my lawn" sort of complaint. Giving shitty, incomplete feedback is just as possible using direct language. C) Since we're talking anecdotally, the people I've met that gave great, frank, direct feedback just did it because they out obligated to, and even in art school with young students, I've seen few people get defensive. It was calm, well-reasoned, and completely no bullshit. Then there are people who might have said very little, or maybe even a lot, but did it in a shitty arrogant tone and that got everybody's hackles up. Everyone I've met aggrieved about not feeling free to give direct feedback was the second type. C) Directness is just a slice of a much larger topic.


> The biggest enemy here are people who think that their criticism can be as rude, pedantic, or imperious as they want if the core point is valid. That might provide comparable results for the issue at hand, a) but human beings don't deserve to be treated like that, and b) it kills morale, which kills productivity, quality, retention, etc.

These types of people are so difficult to deal with and crop up in every community. The problem is that when you find a person like this in a position of power, particularly if you are new to the community, there is really not a lot you can do about it so you are either forced to a) tolerate their behavior (which will likely require setting some difficult boundaries) or b) leave. I just want to emphasize that leaving is not necessarily a sign of weakness. If the dynamics in the community are sufficiently toxic that this kind of behavior is tolerated -- or even worse, glorified -- there is very little you can do besides maybe giving an honest exit interview. But you need to have the self confidence to not let unreasonable personal attacks bring you down to the same level or make you feel as though you somehow deserve to be treated that way when you make mistakes, which we all do.


Agreed. The constructive vs insults is the important piece. My senior gives me useful feedback now a regular basis. I explicitly asked him to be as direct with me as he feels is necessary and it did open my eyes to the perception of my presentations among other things. To your point, I still bristle at a random unnecessary insult.


Can you give an example of "insults"? I have to say this line of thinking really bewilders me... perhaps I've never worked in an environment with this kind of toxicity.

Typically the sensitivity level of feedback in my experience has encroached into things like "Don't give 10 comments on a PR, its too many and people feel bad" (regardless of the number of faults in the code).


There was a guy in a senior tech role I once encountered in a consulting gig who never let an opportunity to put someone down publicly go by. One time, a young researcher came and gave a (remote) presentation. At the end of the presentation during the Q&A, this guy basically says, "don't you think that your project is a complete waste of time in light of factors x, y, z?"

For my project, I was building some tools that were helping me understand the problem space (which was new to me and that he fundamentally did not understand himself). In a team stand-up, which included the CTO, I shared that I had built a useful tool that was helping me and he chimes in: "I think that you just spend all of your time making tools and don't do any real work." Even if there was a conversation to be had about how I was spending my time, it was ridiculous that he was bringing this up for the first time not 1:1 but with the whole group. I resigned a few days after that interaction (which was probably at least the fourth or fifth time he'd pulled something similar in the two months I worked with them). BTW, he would never just say "you are a moron" but it was very clearly the subtext of almost all of the feedback he gave, except to the most junior people who didn't threaten him in any way.


ugh, that senior engineer sounds like they bastardized radical candor


I think your quotes around "insults" are a pretty good example of how you can use an otherwise normal question to cast doubt on someone without even changing the wording. That technique isn't limited to fairly benign examples like this, face-to-face communication has subtleties that are even harder to pinpoint, and especially if someone has social anxiety or trouble speaking in front of groups, something like that can materially damage someone without even having real criticism. If there's real criticism mixed in, especially if the person speaking has clout in that context, that person can either inform someone or totally harpoon them with the same exact criticism. That is a foundational skill among lawyers who take depositions or cross examine people during a trial.


abusive parents lead me to reading through this. truly can scar someone for life not having a good study environment as they develop, im still trying my best to be better at studying given the help of my s/o but some days it feels actually impossible to absorb and internalize things since its truly mental anguish I'm fighting through. it would certainly help if my s/o would be understanding instead of flat out disappointed in me for doing anything but study while he works (from home, in line of site from me, but i guess he doesnt see when i get paralyzed and completely lose track of time as im in my head beating myself up for not knowing what to do.. sorry.. this is a lot rn and im supposed to be studying as i type ;v; made an account tho just to reply here)


Recommendation you didn't ask for (just skip if not open to it).

Seven principles for making marriage work[1] - has great advice for many sorts of committed romantic relationships.

Also if he's criticizing you as you described he may want to consider talk therapy/CBT to come to an understanding of the nature of his frustrations and his inability to productively communicate them to you.

[1:] https://www.goodreads.com/book/show/849380.The_Seven_Princip...


From the limited information in your comment, I feel he doesn't have your best interests in heart if he judges and criticizes you for not studying, rather than taking your goals and life difficulties in mind.


>"Anti-fragile attitude" when it comes to criticism is not built by tolerance. Quite the opposite actually.

I agree with your overall statement, but I think the specific point above could be misinterpreted in a nonconstructive way. What it seems like you're trying to say is that we shouldn't just be learning how to deal with criticism by tuning it out or building up defense mechanisms against it. That I agree with. However, another interpretation that could be implied from your statement is that one should not be seeking out criticism, which is not good.

What I think OP is getting at is that learning to process criticism comes by experiencing criticism over and over again. Some of the worst responses I've seen to criticism have come from those who constantly make concerted efforts to avoid it. Understanding that you are not the sum of your output is important, but it's really hard to remember that when you're right in the thick of it. Being able to control your emotions and thoughts within that moment come from having experiencing those moments over and over again.

The point of criticism is to learn and improve, but in order for that to happen one has to be able to actually hear and process the criticism being offered. One needs to get past the emotional response to criticism in order for that to happen. The two big pieces of that are decoupling the value of what we're being criticized on from our inherent self worth, AND being able to control our emotions in the moment. The latter is really only done by having enough exposure to it, and that's the "anti-fragility" component.


Exposure - but with appropriate processing in a productive way. Otherwise it just produces PTSD.


I had a comment thread experience recently, not here but on Reddit, that made me think about criticism again and how we experience it.

The opening was that comment A was saying something about how they did <programming subject> and comment B was asking probing questions. I recognized that B was leading A towards a certain framing she had in mind(a very Uncle Bob, OO patterns are the answer kind of answer), so I injected a flat "there's nowhere else that code needs to be except one of these two places, classes have nothing to do with it."

B responded with "but surely they have to be in a manager class right?" And seeing the resistance to taking any other framing, I got more assertive and instructive in my reply, giving specific recommendations to try dispensing with OO and experiment with writing more primitive code. This was the offense, and it became an argument, which was basically a stomping because I was very prepared with sources and a rationale for why I am making that recommendation, and B fell into defenses from experience and authority, talking about numbers of lines of code and systems she had made and accusing me of speculating about her ability.

And then I said, "that's nice, but I'm the comments section." Apologized for the offense, and pointed out that she started replying to A by speculating, and had admitted as much. Finished with encouraging words for B continue writing the code that she felt works best.

She wasn't happy with this, and said I "hijacked" the thread and used a "condescending tone", but also allowed that I said interesting things.

And it's like, was it worth getting into another "arguing with strangers on the Internet" cycle? Part of why I engaged in the way I did was because I was coming off a period of answering other people's questions, so it was, at first, just one more of those.

But afterwards I realized that what I had disturbed was the belief system. The original thread was an attempt to confirm B's belief to herself: that's why it was done in a leading manner. A lot of comment threads proceed along those lines. When I just wander in and negate that, defensiveness is immediate. Saying "it can only be these two things" is only condescension if you're certain that your other way is already right. B wanted to brush it off. What I was doing was starting the "put on the glasses" fight scene in They Live.

And I think part of why I've gotten better at navigating those threads and critique generally, even if I might be overbearing or "condescending" at times, is because I can recognize when a principled defense is taking place. Good technical discussions start from a place of philosophical credibility. They don't start from norms("this way is best") and then question-beg their way into justifications. They lay out the assumptions of what's true and what's being achieved, like "eliminating a form of error"(one of the goals I outlined in that thread, and the one which ultimately made B concede) and then find conclusions inductively, deductively or abductively. Once you get away from the philosophical goal and only aim for winning the argument, you start crafting harmful rhetoric.

So the answer for me lies in philosophical training: you do have to intentionally "turn it on" to think in those terms, but it lets you be more effective around criticism, to "dance" with it and see it as a process, not a prelude to violence.

And it is much harder to deal with open comments than any one specific critic, because those are subject to mob mentality. Offend a belief the mob holds in high regard, and regardless of the principles involved, you'll just get dehumanized right away. I try not to find myself involved with that stuff anymore, but it's like, yeah, of course I have beliefs.


Agreed.

Another adjacent PoV is improvement, not complete, is the steady state.

What I mean is, throughout our entire schooling career we did work and turned in assignments that got graded. They were done. The work was over.

Our professions aren’t like that. There’s no done. There’s always improvement.

Therefore every piece of criticism, critique, or feedback has some data in it (sometimes layered in poorly worded phrases that can feel mean) on how to get better.

Your goal is to figure out what that data is and whether it’s valid, then act on it.


> Therefore every piece of criticism, critique, or feedback has some data in it

Extreme Ownership teaches a mind shift of looking at criticism and thinking of it as 'GOOD'. Criticism is an opportunity to improve.


It can be manipulated by bad actors however, keeping someone constantly 'doing' for the other parties benefit and not noticing they never seem to actually get paid for it. It tends to attract NPD folks in particular.

Like anything, it's about balance. Sometimes, it really isn't anything you should be doing to fix (or anything you should change).


it can be helpful, for some, to give up on the notion of retirement altogether.

exist to exist the whole way through. do what you gotta do.

many SV people have probably also seen anecdotal evidence the $B crowd has this mindset. it's the $M crowd sweatin the small stuff.


> it can be helpful, for some, to give up on the notion of retirement altogether.

Yeah, perfect and ready to be exploited with no end in sight.

What are $B and $M crowds? Billionares and millionares? Do you have any personal insight into those or just read about it?


$B crowd doesnt think about it because 1) they pay people to do the micro level things (and in a hierarchy of concerns down to the micro) and 2) the micro doesnt move the needle for them.

To use an analogy if you're poor disputing a $2 charge is meaningful because it might double your disposable money. But if you're rich you could absorb 1000x $2 charges per day without even seeing a difference in your first 4 digits of your wealth. (eg 4522188456 squints to the same number as 4522180456)


> A high criticism tolerance is learned by understanding that ones self worth is not attached to output or delivery.

> You are not your lines of code.

These statements are sage advice. And while I believe them both to be correct, I personally struggle with remembering these things when it matters most.


The older I get, the more I'm convinced the secrets of life come in contradictory tuples, and the application of all elements at appropriate time and in appropriate ways. Zen koans were onto something.

{"You are not your lines of code", "You should feel proud when your code is good and embarrassed when your code is bad"}

Both of these things are true.

To the matter at hand, how to take criticism constructively, the key for me is bifurcating my emotional response from my logical one.

Emotional response is noted, thought about, but routed inward. Logical one is routed outward.

E.g. "This is the dumbest application of a bad sorting algorithm I've ever seen."

Emotional/inward: "That hurts. Am I a bad programmer? How did I not know this? Will I ever be a person who does know things like this? I respect the person who's telling me this: do they still respect me?"

Logical/outward: "Fair. What algorithm would you have used in this application? If you have time, can you walk me through how you would have picked it?"

People usually screw things up when they don't hold space for their own emotional response and commingle it with the logical one (e.g. manufacturing a logical justification for what is really an emotional feeling).


> the secrets of life come in contradictory tuples

A great phrase for what I've been noticing about my life as well.

{"You should be okay with who you are", "You should always strive to be better"}, or {"Desire is the root of suffering", "Being passionate about a goal is the only way to fulfillment"}

Finding the nuances in these phrases and living in the bubbles where they are not actually contradictory has given me a lot of peace.


I disagree with the second slightly, because we have a very limited amount of time in which to produce things that matter, and we spend the majority of that time producing code as developers. It better be important to us, or we should be doing something else.

Now, what we should realize about the code isn't the thing of value. It's what the code does and how it does it, that is the runtime output and the ability to express the intent to produce that output to a programmer who hasn't seen the output or the code before or in a long time.

Criticism is the best opportunity to improve those aspects of the code you write. So it should be of equal value to you as the lines of code the criticism is addressing.

Not all criticism is valid, even well-intentioned constructive criticism. Experience teaches you which critiques to accept and which to reject.

The only way to gain that experience is to solicit criticism from others, and give it to others.

No, we are not just our code, but our artifacts are a part of us, as we are a part of them. So we should be kind when giving criticism and gracious when receiving it. Because what we choose to do with our time matters.


Anecdotally, I had the opposite experience!

> You'll find that the people that break down at the slightest criticism the most are those that were criticised the most as children as well. Those that had no room for being anything other than perfect. Where value was obtained from performance.

My childhood fits this.

> "Anti-fragile attitude" when it comes to criticism is not built by tolerance

I DID learn these by tolerance!

> self-acceptance and compassion. And these values are learned early on.

I learned these LATE on, in college. I feel like it's typical for a kid, but I was insecure and very much afraid of failure. But when I encountered sustained failure despite my best efforts, it pushed my "attached to performance" ego to the breaking point. That ego broken, I was forced to decoupled my sense of self worth from my performance. I didn't do it consciously, either; it sort of just happened one day. And I literally mean on a day. I felt it the day it happened. It felt like a weight had been lifted, and I found myself unable to care as much, just all of a sudden. I wondered if it was depression, but I felt happier than I ever felt before.

That nerfed my performance somewhat, since it's no longer driven by a frantic self-flagellatory imperative to prove my self-worth, but it also made my quality of life much higher, which I consider an easy trade.

I still care about what I do, and I very much still try to do a good job. I'm just not terrorized when I don't. I feel bad when I don't, but not "I'M A PIECE OF SHIT" bad. It's a more impersonal bad. It also allows me to sincerely welcome criticism; there's no sting to it at all unless I did something colossally stupid and/or the criticism is, like, downright verbally abusive or something (which it's never been so far :p).


I find this to be an incredibly well-balanced and mature measure of one's self. You should be proud that you were able to reach this level of self-reflection and clarity. Many people never get there, so kudos to you.


College is not late to learn this. Many people never learn at all.


To add to this.

Self-acceptance and compassion can only develop when you have a place where you feel physically, socially and emotionally safe as a base you can return to when you need to re-center.

Safety gives you permission to take risks (financially, emotionally, physically, socially) by having a place to regroup.


> Self-acceptance and compassion can only develop when you have a place where you feel physically, socially and emotionally safe as a base you can return to when you need to re-center.

This is something many teams misunderstand or are completely unaware of. Demonstrating understanding and compassion to one's colleague's will increase their abilities to communicate and work collaboratively.


well said :3


Agreed. Right now a lot of very unsafe behaviors are ramping up (predatory and at work and in many of our some of our personal lives), and recognizing when it's actually time to withdraw and when it may be because we're not actually safe is important.

Additionally, physical health issues and pain can take away our feeling of safety, and sitting on our butts all day is REALLY not healthy. But it's hard to notice when it creeps up on us.


> You are not your lines of code.

I think you actually are, in a very real sense. Someone else would have written different lines of codes. The lines of code are a function of yourself, an inherent part of you. Criticizing the lines of code criticizes that part of you. You can’t criticize a novel without implicitly criticizing its author. When we criticize an LLM’s output, we are typically criticizing the LLM. Perceiving criticism of one’s own work as something personal is only natural, and logical.

Now, if the criticism is of a honest mistake, you can learn from that, and own the mistake – show responsibility for it by acknowledging it and correcting it. Of course, that presupposes that you agree that it was a mistake.

Often things aren’t that clear-cut. There can be genuine differences of opinion and of judgement. Of course, one is biased towards one’s own work. It helps to be aware of that bias. It also helps to think in terms of picking your battles.

If you don’t quite agree with a criticism, it can also help to give yourself a chance to change your mind a bit. Maybe later you’ll actually mostly agree with it. And that later changed you isn’t the former you that was criticized. Win-win!


> I think you actually are, in a very real sense. Someone else would have written different lines of codes. The lines of code are a function of yourself, an inherent part of you. Criticizing the lines of code criticizes that part of you. You can’t criticize a novel without implicitly criticizing its author. When we criticize an LMM’s output, we are typically criticizing the LLM. Perceiving criticism of one’s own work as something personal is only natural, and logical.

I disagree on the strongest terms. You need to work with a mindset to your own growth an evolution. It was me who wrote these lines of code an hour ago, but I would not have known to write them a year ago and I will know better than to write them like this in another year's time. Possibly I wouldn't even write them like that now, having thought about them for an hour.

I am not a perfect coder, some Omnipotent god. Everything I write is a tradeoff of my current set of knowledge and the pressures I'm under and is therefore inherently flawed.

If someone criticise my code it's because they either know more than me, in which case I have learned why I shouldn't have done that and will adapt for the future, or it's because they know less than me and I haven't clearly explained the tradeoffs in which case I have learned that I need to express myself more clearly and will adapt that for the future.

(Of course it might just be because they didn't bother to read my commit message but that's a different problem)


Part of this reads as if you're not allowed to be criticized for some reason. How is "I am not a perfect coder" really different from "I'm inherently flawed"? Being flawed just means you're not perfect. People are flawed. Everyone is. One doesn't have to feel bad about it. One only needs to take responsibility for it. And then one can actually feel good about having acted responsibly.


> How is "I am not a perfect coder" really different from "I'm inherently flawed"? Being flawed just means you're not perfect.

If you believe that your coding ability is an inherent part of you, then they are not different. If you believe that your coding ability is an ever-changing attribute of you but not core to who you are, then they are very different.

If x is 5, then x + 5 and 10 are the same thing. If x is 3, then x + 5 and 10 are not the same thing.

A good question to ask is which model is more useful, or which model is more likely to lead to various outcomes you might want. "Me=my code" is pretty good for producing top coders and winning competitive situations. It also tends to produce burnout and assholes. You aren't stuck with always using one or the other, either. A lot of people start with "me=my code" when younger, then switch partially or fully to "my code=my code" later when their initial model starts leading to conflict and inefficiencies in a system larger than just one or a few developers. (Or they start finding value in non-coding pursuits.)


> Part of this reads as if you're not allowed to be criticized for some reason.

That was definitely not my intent, and I'll take that on board as an area to improve on :)


By god, that's Deleuze's music!

I disagree that the code I write is "part of me." It expresses a series of ideas that I had. And every therapeutic modality I have tried would have failed if I didn't have the implicit understanding that I have something like a soul or an essence that stands apart from my thoughts and feelings. My thoughts are just random noise in the grand scheme of things, including this sentence.

I can't stand the way that some people write, but that doesn't amount to a criticism of them as a person, unless I choose to make it about that.


Sure you're not criticizing them as a person, but let's say they really like what they wrote. It's their masterpiece. Then someone comes in and says it's garbage that shouldn't have been written (intentionally using strong language because people do that).

I don't understand not feeling bummed out by that type of critique. Sure it's not about you as a person or your values, but dang that sucks.


"Garbage that shouldn't have been written" is verging on a personal insult. That's not the kind of criticism I had in mind.


Got it, I agree that's a harsh example I wrote.

When I read "I can't stand the way some people write", I get a similar sort of feeling. The intention is not that it is a harsh statement, but to me it's very harsh (although not on the same level as the example I wrote).

To me, this highlights the problem with criticism and why the thread is a bit divisive. It's a gap between intention and perception with different end results based on how feedback is perceived.


You are not the worst picture of yourself ever taken. The picture does reflect a subset of you: at a particular place, at a particular time, taken from a particular angle. You are in the photo but the photo is not you. You can just take a better photo. People do this all the time, it's not a big deal. While it's normal to be embarrassed by a bad picture, it's also normal to chalk it off as bad lighting, bad timing, whatever.

That's what your code is. It's a picture of your thoughts at a particular time, constrained by the process of translation onto the medium on which it is being viewed. Some part of you is in there, but the thing itself is not you and it doesn't make sense to view it as a completely accurate representation of yourself. You got caught thinking with your mouth open, oops. Just try again.


People are saying this isn't how it should be, but I want to share that this is closer to how I experience the world than not.

The attitude of desiring to learn is what keeps me sane, but I've learned that feedback like "X is bad" often comes from someone's subjective experiences in a particular situation. They then take that and apply it globally. It's hard to have conversation with such strong opinions.

Having a trusted coworker who has a disagreement, followed by a healthy conversation will result in either the change they want, the original staying, or a new solution that's better. Growth can come from all 3, depending on the mindset going in.


Getting stronger through stress is not the solution, but a common initial path to the larger solution.

I think you're closest when you say "A high criticism tolerance is learned by understanding that ones self worth is not attached to output or delivery"

The compassion part is unnecessary.

Any criticism you take personally is ultimately a fictitious story you're choosing to accept about your identity. We are the ones choosing to take an event like a comment, apply a label of snarky, and allow it to set our emotions in the moment.

The snarky comment itself has no objective meaning. It only takes on meaning when we decide to interpret it negatively. We could just as easily screen the comment for actual valuable feedback, and if there is, implement it. And now you have a win. How smart of you, you should feel good about that.

The real approach is rising above and seeing things for what they really are, and seizing opportunities to look at things differently for an optimal outcome.


My experience has been that people who say “you are not your code” use it as an excuse to be brash in PRs, and as someone who sees code as a sort of art, the adage is even less-appealing. Surely there is a way to be considerate enough in the code review process such that “you are not your code” need never be said at an organization.


Yes I agree. Some people are just rude or mean and they want to absolve themselves of behaving respectfully by claiming that it’s the other party at fault. But there are two people involved in any conversation and both are responsible for keeping it respectful.


Good comment and I agree. I am in no way advocating becoming numb to criticism. The point is to create enough emotional distance to it so you are able to "swallow" it.

I think it is parents job to introduce small disappointments for children. This way they learn to handle larger disappointments. I think we need to teach ourselves to handle criticism in the same way, in small doses.

About not seeing it as criticism, I am not completely sure what you suggest. But I have analogy with improvisation theatre. There people celebrate mistakes, because fear of mistakes is what blocks you from improvising.

So instead of changing the name (to something else from "mistake") to overcome the fear, the fear is met head-first by celebrating mistakes. Similarly, I think the name "criticism" is not important, and if you can overcome the negative connotation for the word for you personally, there is no reason to change the word.


> You'll find that the people that break down at the slightest criticism the most are those that were criticised the most as children as well. Those that had no room for being anything other than perfect. Where value was obtained from performance.

It took me a long time to realize this applied to me. I don't ever remember explicitly being criticised as a child but I reached adulthood with a wicked need for perfection and "achievement" and a subconscious aversion to criticism. I still find it hard to feel valid and valuable in the world other than through work. But all of these behaviors have undoubtedly held me back in work and relationships.


I nearly 100% agree with you accept on one point. "You are not your lines of code." is putting your head in the sand, but there's a way you can frame PR feedback (and other feedback) which re-associates your identity with your output (because disassociating is a terrible idea) but brings joy back: these people are coaching you and giving you a gift. Your skill level is absolutely included in criticism, but only such that you may grow.

This only works if you truly believe that you are accepted by your team at all stages of your development, and if the feedback is delivered with the intention of helping you grow.


Make your code (or other engineering deliverables) beyond criticism. This state is achieved when every decision in the code is either due to a hard external requirement that we all agreed on (it has to be done that way) or else is made according to externally documented and referenced best practices.

If someone disagrees with anything in the code, you can point them either to a requirement that would have to change if it were done differently, or else some documented best practice (whether in-house or some famous external one) would be violated.

Have a reason for everything. Why is there a linear search in that function? Because the number of items is at most ten, and not expected to ever exceed around fifteen; moreover, the function is called only a dozen times, on first boot after a firmware upgrade.

Also, be the most stern critic you can be, of your own code, criticize it yourself and fix everything, so you don't leave much for anyone else.


Right. Consider whether this really impacts you as a person.

1) Who will see it? What will be the consequences? If no one, then look past the delivery and consider just the content.

2) Use it as useful feedback and information that you otherwise might have never gotten. Consider how many people may have thought similar things but were too nice to say anything. Finally someone spoke up and told you what others were thinking. Then you will come to regard the (private) exposing of a flaw with appreciation!

3) Treat it as you would any focus group, it is just one data point. Sometimes the frustrating thing is when the criticism is wrong and is just a product of how things are done locally. If you are un a full-time job, just embrace how things are done. If your solution serves many other clients, you may have to file it among other priorities.

When you start to focus on the work and the outcome, you don’t focus on criticism as a personal attack, even if it was meant as one you extract the actual usefulness from it.


> To take it even further...why see it as criticism at all? You are not your lines of code.

You are not your work. You can write incredibly crappy code and still be a fine person. You can write beautiful, elegant code and be a terrible person. Separating your work/code from your self-worth is hugely important.


The lines of code are not even your lines of code!

They are lines of code until you reveal them to the world. Then they are part of the world. When someone else improves them (or tries to improve them) you must rejoice that the ideas you have given the world have attracted enough attention to be criticized and improved!

Only by keeping the code private would the criticism be criticism against you. Once you distribute the code, the only truly negative thing someone can do, from your point of view, is to ignore the code.

That’s my point of view anyway. Elsewhere in the thread someone commented positively on your self awareness and in parting I must echo them.


"You are not your lines of code."

Agreed. And nobody's lines of code are perfect.


Just want to point out that being "numb" is NOT THE SAME as just not taking something personally.

As I mentioned in my other post - I make things that I find enjoyable, and while I am not 'numb' to criticism, I just dont let criticism to affect my personal Mortar in the foundations of who I feel I am.


Too much criticism destroys self-esteem. Coaching is a better alternative. Also, pushing children to be perfect is a recipe for disaster. Carol Dweck's Mindset comes to mind.


Read this in Adam Grant voice.


On the other hand, in this industry often what one engineer identifies as a mistake another might be neutral toward or identify as a best practice/correct.

Our industry doesn't have many standards, and it's not nearly as objective as some think. And often criticism isn't intended to improve an outcome: it's intended to bring others' in line with the critic's view of how it should be done.

All this to say, I'd just add to your comment that one must also develop the ability to discern when a critic is identifying a true mistake and when they are simply parroting a fad or injecting their subjective beliefs into the review.


Excellent response. By and large the field is a cargo cult where the members are particularly adept at constructing straw man and false equivalency arguments to support specific preferences which are not rooted in anything resembling objectivity. See "Clean Code".


While it is hard to hear criticism directed at you personally, or at something you have put your heart and soul into developing; discerning between constructive criticism and 'knee-jerk responses' is critical.

Maturity means that you can accept criticism that is intended to help you improve. Making you aware of an issue or directing you towards a better solution can make your code or product a better one.

Simple insults thrown from the 'peanut gallery' should just be ignored. If you have built something using a particular language or framework on a particular platform; you should expect those who don't like those things to throw in their two cents without even trying to understand the problem you are trying to solve.


I feel like I'm constantly fighting this with my manager at my current company. I receive a lot of feedback along the lines of, "well every other company I've worked for did it X way." For example deployments: company policy is that anyone can deploy any service from master at anytime, so if you merge your code into master, you're saying "this code is ready for production." My manager kept telling "we" should fix that because every other company he worked for deployed from staging into production.

I've found managing situations like this to be the hallmark of a good architect / high-level engineer. I really admire people who are able to think quickly on their feet and push back against people who push for ignorant or unnecessary changes. And it is something I am not good at.

I've taken to silently fixing peoples' mistakes as to avoid these kinds of discussions. While I'd really like to say, our architecture did not force you to push broken code into master hours before you went on vacation, my (agreeable) personality prevents that.


As an engineering leader I always insist that everyone follows the "ice cream" rule in any debate or discussion about how something should be done. Only technical merit counts. Never personal taste.

Whether it is a design pattern, deployment strategy, or choice of language, if your argument has no technical advantage then you are just expressing your taste preference. This is where someone will likely call you out by asking, "are we discussing technology or ice cream flavors?"


> This is where someone will likely call you out by asking, "are we discussing technology or ice cream flavors?"

I'll steal this and see how it turns out.


> (Sometimes anger is healthy, it may also be a signal to us that our boundaries have been violated.)

Exactly. And if that boundaries get violated repeatedly in the same situation (especially by the same people), it is fine to release that anger in a controlled way. I've come to the conclusion that some folks haven't left the state where they sometimes need a (vocal) pat on their hand to realize they crossed boundaries they shouldn't cross. If you can play that game, congrats.

Also, do not swallow your anger. Find a non-destructive, non-harmful way to release it. As anger is a physical reaction, the easiest way is to go for a walk, ride your bike or whatever. Whatever floats your boat should be fine.


As much as i like the concept in general in life, in this case its just "you are not your lines of code".

Also people who criticize people make a mistake kind of.

Always criticize the code, not the person.


Well it is not unlike criticising an artist's paintings. The things you make are a mirror of who you are because you use your life experiences, knowledge, and preferences to make them. By criticizing what you make, they are also criticizing you by proxy.

Now sure it depends on the type of criticism in question. Finding a bug or other practical problems obviously isn't, but talking shit about a way something is arbitrarily set up that the author thought was really neat would absolutely be.

This line of thinking also reminds me of how every time some actor or director or whatever is implicated in some scandal, their work is also tainted forever instead of being taken at face value for what it is. Can we separate the artist from their art? Is it even possible? I doubt it.


You had better believe that when artists get a commission, the patron gets a say in how the work looks. When you are in a band or ensemble with other people, they also get a say in how "your" part of the music sounds. This is the same for code. Code you create with and for other people isn't really your creation in that way: all of it is a collaborative effort.


I don't think that really changes anything, just restricts the effective criticism to that specific part that you did. Though I suppose the more it's intertwined the less it matters. I don't think anyone really cares about that one function in the company codebase that's been rewritten 20 times by different people, and far more about that part of the game they coded themselves at a gamejam.

There's always external influence, but if you're involved you obviously added something and in most cases it can be scrutinized on its own merits.


To rephrase, criticism/review of your code doesn't reflect a value judgment of you as an individual any more than an artist's patron asking for more blue-ish tones reflects a value judgment of the artist. The patron doesn't think that you have any moral faults because they want more blue, they just want more blue. The same goes with criticisms of code.


The problem is that it's just unprofessional.

Code is made to be efficient in a compagny, it's not "personal" or here to make you have feelings. So if you can't discuss efficiency because you'll hurt people it's just bad. If you do art, you create art with respect to your own sensibility emotions so yeah be weary of criticizing someone's art.


For those who are passionate about their work, some of them they put their person in their code. As someone else pointed out in a comment in this thread, it is about acceptance that none of us is perfect, we don't/can't write perfect code and that is totally ok as long as you did what you could (both in terms of the output and the effort to improve the quality of the output). Unfortunately this is largely conditioned by upbringing so easier said than done. But awareness of this itself can be a helping factor in coping with criticism.


But really thats what "you are not your code" means.

As much effort and ego you put in it, it will still suck in some way.


There's also this non intuitive fact that the critics you'll hear about are usually judgment free, at review time. Whereas you'll be judged harshly on your committed code and will probably never hear about it. We could summarize it with something like "hard critics prevents hard judgments".


This is like the fundamental attribution error but applied to the self.

You wrote some bad code. You are not a bad code writer.


I once worked with an absolutely horrendous programmer named "Sam" who enjoyed the smell of his own farts so much that he he always smurfed his own name or possessive prefixes like "sams_" and "my_" in variable and function and file and form field and database column names.

And he loved to get "artistically creative" with "elegant variation" of variable names and naming conventions, permuting and mutating them at every level, and making up cute unique abbreviations by randomly dropping characters to save a few keystrokes of typing, then spicing it up with whimsical nonsense like "aardvark" and "pancake", instead of boringly predictable consistent correctly spelled descriptive big-endian names like I prefer. (He claimed that made it easy to grep the code.)

He would even alternate between CamelCase and lowerCamelCase and snake_case and Snake_That_Ate_A_Camel_Case and UPPER_CASE and runtogetherlowercase in the same fucking variable name, occasionally throwing in the random "sam_" and "_SAM" prefixes and suffixes for good measure!

He also liked hard wiring the path of his home directory into code, of course. He was like a territorially possessive dog pissing on all the trees and fire hydrants he could find, and all the code he wrote sucked.

That made it extremely hard to separate the "arteest" from their "work", and not to criticize the person as well as the code. But at least it was easy to tell at a glance which code needed to be tossed out and rewritten.

Please don't be a Sam! There are some people who do deserved to be criticized as much as their code.

Elegant Variation (which is a terrible idea despite its fancy sounding name):

https://en.wikipedia.org/wiki/Elegant_variation

>Elegant variation is a writer's substitution of "one word for another for the sake of variety". The term was introduced in 1906 by H. W. Fowler and F. G. Fowler in The King's English. In their meaning of the term, they focus particularly on instances when the word being avoided is a noun or its pronoun. Pronouns are themselves variations intended to avoid awkward repetition, and variations are so often necessary, that they should be used only when needed. The Fowlers recommend that "variations should take place only when there is some awkwardness, such as ambiguity or noticeable monotony, in the word avoided".

Big-Endian Naming Molds, Code Smells, Smurfing:

Felienne Hermans: How patterns in variable names can make code easier to read

https://www.youtube.com/watch?v=z7w2lKG8zWM

>Name molds let you structure variable names to maximize the chance of different programmers guessing the same name.

https://news.ycombinator.com/item?id=31472523

DonHopkins on May 22, 2022 | parent | context | favorite | on: Felienne Hermans: How patterns in variable names c...

I like to use "big-endian" naming molds (love that term!) to define sets of names that when you alphabetize them place related variables next to each other. (i.e. in a completion menu or browser.)

For example, left_foo and right_foo are little-endian, since the least significant word comes first, so they'll be a long distance away from each other in an alphabetized list.

But foo_left and foo_right are big-endian, since foo is more significant than left or right. So they will appear one after the other in an alphabetized list.

Common suffix words are _x _y _z or _min _max, or _left _right _top _bottom, of even singletons like _enabled _loaded _error etc.

But when you combine multiple dimensions together in names, you need to think of which dimensions are more significant, based on how the variables are used, so use foo_x_min foo_x_max, if the positions are important, or foo_min_x foo_min_y, if the ranges are more important.

Sometimes it's hard to decide or ambiguous, so just try to be predictable and the same as all the other code. Think of which variables should appear closest to each other in an alphabetical list.

And avoid middle-endian or random-endian (or sentence-grammar-order-endian) like the plague. A variable name should probably not be a grammatically correct sentence.

Another really annoying linguistic naming smell is "smurfing," where all of class Smurf's instance variables have smurf_ prefixes. Or where all the classes, methods, or instance variables have an "xyz_" prefix where "xyz" is the name of the project or library. Arrgh!!!

SnowHill9902 on May 22, 2022 | prev [–]

Agreed. When dealing with real values, it’s favorable to explicit the units: weight_lb, length_cm.

DonHopkins on May 22, 2022 | parent | next [–]

Yes, explicit unit suffixes are good smurfs!

Also: eschew Bill and Ted's Excellent Postfix "_not", which inverts the meaning of the variable name. That's a most totally bogus code smell, dude.


Could "Sam" even pull that stuff anymore with PR review processes? I would just comment on every variable name in the PR to "remove sams" or "make clearer".


https://twitter.com/secondmentions is a collection of instances of said "elegant variations".


you should make it a post of its own ><


This assumes all criticism is made with good intentions. However that is not always the case.


The criticism can be useful even if it does not have good intentions. Usually those who want to hurt you, know just what to say to hurt you. If the criticism is completely baseless, it often does not make you angry, as you can trivially say why it is baseless. So it often such criticism also has an element of truth.

If you are angry, it is difficult to discern what are the truths. So it is useful to approach criticism both from good and bad intentions both in the same way. In other words, by default, if you get angry, try to figure out what in the criticism makes you angry.


I’ve been in this relationship. If someone knows what to say to hurt you, and uses it with precision to cause that hurt, they’re not on your team, even if their criticism isn’t “baseless”.

In the professional world, giving feedback with tact and respect for the contributor is what we get paid for and enables a team to contribute to the company’s success.

If someone on the team doesn’t feel like they’re treated with respect, even when their work needs improvement, it doesn’t matter whether the feedback was given with good or bad intentions.


Nothing you say is wrong, but it's somewhat tangential to what the parent is saying. If someone is saying things to you with the intention of hurting you, you should do whatever you can to minimize interactions with that person; break up with them, try to get them fired, try to switch teams, get a new job yourself, or whatever. This does not contradict the idea that you can learn from people who aren't trying to help you, though.

Of course, the dangerous part is that you may learn the wrong thing. Extracting constructive feedback from criticism that was not intended to be constructive requires a certain level of self-confidence and psychological safety that's only possible when it's an unusual event rather than a continuous drag on your self-worth.


Fully agree.

If there is a person consistently giving hurtful feedback and I would be in a position to get the person fired, I would do it. (And I have done it.) And I would not work in such a work environment. At least 50% of programming work in typical organizarions is about getting along with people.

But I have found myself in environments where I needed to tolerate this to a degree. And the only thing you can ultimately change is your own attitude. If you can see that hurtful criticism may be even more truthful than other criticism, it helps to develop the right attitude.


But that's not under your control. Whereas your reaction to the criticism is under your control.


That probably flies straight in the face of neuroscience.


Not the internal reaction, but what you do externally -- what you say, what you write -- that's generally in your control.

AIUI, CBT's primary method is to convince you to pause between feeling and acting, so that you can ask yourself if you have made an accurate assessment of reality and can plan an appropriate response.


If you truly have no control over what you think and feel, then you are lucky. You can satisfy yourself with enjoying the ride, free from the burden of being responsible for yourself. If you have so little control that you cannot even take solace in the knowledge that you have no control, then obviously this philosophy will only bring misery to you. In which case, why adhere to it? If you have so little control that you cannot even free yourself from a philosophy that makes you miserable, then try hitting your head with rocks or hard drugs. With enough brain damage, anything can be forgotten. Even unproductive philosophies.


Criticism made will ill intent can be disregarded. Shame on the critic.

(Easier to say than to embrace, of course.)


> What you have encountered is actually one of the necessary steps to really become "a senior developer". And congratulations, you have already passed the biggest part of that hurdle: becoming aware of the issue.

Fully agree. I tell people, if you cannot be humble about your code, you're going to deter yourself and others. It's okay to admit you may have "screwed up" (mistakes happen to everyone, even in production) the big thing to do is learn what was wrong, and if there's any steps you could take moving forward to avoid that mistake, the person commenting on your mistake probably made the same mistake, and worse it made it into production and now its ingrained in them.

Developers become adamant to prevent issues they or fellow team mates have ran into, even seasoned developers run into issues. Hell, even architects, and I've seen CTO's do the dumbest decision making.


+1 on the above. Your code is not you, and everyone makes mistakes. Literally the only singular person I couldn't work with was with the most blindly arrogant person I ever interacted with, and I left that job because of it. That's over several decades as a developer. In the end, your code isn't perfect and there will be better alternatives on how to do things discovered over time. Most of what you write won't live more than a decade, and if it does, feel sorry for anyone that has to deal with it.

It's about doing the best you can, and helping others to do the same. Critique on your code isn't critique about you as a person. Sometimes personal statements can leak in and that's different. I find that for the most part, critiques are only about the code, and it's the author that turns things personal which is where any argument is already lost.

This doesn't mean you have to agree with a given assessment, and they don't have to agree with your approach. As opposed to some other comments on this post, I will say that I think the best way to learn how to deal with it is to just keep working, and when you do feel yourself getting emotional, take a step back and review. You rarely are on the spot to respond at that moment, especially for typical PR processes and feedback. Try to put yourself in the mindset to assume at first you are wrong, and second that you are not interpreting the message as intended. Interpret the best possible view of the person and the message sent.

It's really hard to put yourself in that mindset, and it definitely takes practice, time and experience. The best thing that you can do from the start, is stay quiet, step away for a moment, and re-evaluate before responding if you feel emotional.


Thank you, it sound to me like meditation could be a way of developing an anti-fragile attitude?


Strong yes^ I can point to several instances where my meditation practice helped me to slow down enough to respond to a situation constructively rather than react to it destructively.

I’ll also add that journaling is an absolute game changer in terms of actually debugging/thinking through problems.

Meditation = “give this a minute or day to simmer”

Journaling = “now that I’ve cooled down, what are my actual thoughts on this matter”

I’ve been astounded on dozens of occasions to learn what my own thoughts really are, for the first time, by seeing them on paper. I.e. it subjectively feels like I don’t think the thought then write it, but instead I write it, read it, then think it.


I would recommend "Focusing in Clinical Practice: The Essence of Change"[1] if you're into reading books. I once took a semester-long course on emotional-based therapy taught by one of its practitioners and it really helped in processing and engaging with my own emotions.

One of the core techniques is to visualize the emotion as another person as you try to talk to it and discover more about what it is you're feeling, eventually coming to a strong connection with the feeling. It's been an epiphany trying to process emotions this way for me.

[1] https://www.amazon.com/Focusing-Clinical-Practice-Essence-Ch...


Yes, I believe meditation would be useful for you. There are many kinds of meditation, and I have experience only on very basic "sitting". Others have suggested developing compassion, and I know some have found compassion meditation helpful in developing that, but I don't have the first-hand experience.

I have found meditation to help me to stay calm in situations, and even if I am about to get angry, to become aware of it in situations, so I can remove myself from situation before acting. And also to calm down more quickly. When you can process the criticism from a better place in yourself.

Also, I have found tai chi to be have similar effect on me.


On that topic, I would love to hear from folks who introduced/did meditation to/with their children (say about 11-12 years old)? Is it a good idea? How did it turn out for you?


You can introduce them to meditation from early age on, they just usually lack the patience to do it for longer or intense, when they are small.

I myself started meditating on my own, when I was 11/12 so that is definitely an age, when you can do it serious.

My own kids (< 5) are too small yet, that I would do serious meditating with them, but some sort of pre exercises, like just sitting still in nature and observing, do work since the beginning.

Don't push them obviously. Rather give them a chance, to explore mindfulness and consciousness with you. I can also recommend Tai Chi/Qui Gong as an more active path towards it.


The paradox here is that I don't want to make others anti-fragile with my own feedback. If I have time and patience, I try to have a conversation with them about what they were trying to accomplish and why they have not considered other alternatives. In a sizable fraction of cases, I come away convinced that what they are doing is reasonable, or at least the effort of making changes is not worth the payoff. Otherwise, I hope that the process is of us coming to a conclusion together rather than me pulling my rank/seniority.

I am also not a fan of working with "you are an idiot and you are doing it all wrong" people. Even if they are technically 100% correct, they should have shown me some respect by having a conversation to double check their assumptions. I maybe physically robust, but I still enjoy being transported by a bus with well working suspension.

However, an out here is "time and patience". There is no way to know what all other people have on their plate, if they are tired or preoccupied with personal matters and so on. If they are being unreasonable, it's certainly worth keeping in mind that it may not be because of you.


https://www.academia.edu/6037370/Some_Observations_on_Robust...

> We can think of a tree as a dynamic system in equilibrium with respect to the forces of gravity. Tree growth takes advantage of horizontal symmetry around a vertical axis as a way to distribute gravitational forces so that the downward force due to gravity on one side of the tree is balanced by the downward force of gravity on the other side of the tree. When the wind blows, the new force acting on the dynamic system of a tree responding to gravity temporarily shifts its current state, as mea-sured by the tree’s position in three-space, to a nonequilibrium configur-ation, and when the wind dies down the tree returns to its equilibrium configuration, just as models of linear systems with stable equilibrium points indicate how a dynamic system responds to a transient impulse. Let us imagine the tree as being represented by a vertical, straight line ..


Emotions are good. I disagree with everyone telling you to ignore your emotions. We're wired to remember emotional moments and to forget when we're indifferent. Most of the criticism I didn't fix wasn't because it was too emotional, it was because I couldn't care. If something sucks, at least there's a better chance you'll learn the lesson. Stay angry but make sure you learn the lesson.

You need to instead translate the criticism into something actionable. Always have in the back of your mind the question what to do different and when. And when responding to people, remember to respond in a way that they will want to criticize you again (it's ok to argue, but not ok to turn it back into something personal).

I don't try to control my anger at all. You're missing out on all the evolutionary benefits of sharpened memory in important situations. Stay nice and be angry with people instead of at people. Make sure they don't take it personally.


> So you need to develop an anti-fragile attitude towards criticism

The most common way I've seen this done is by becoming numb and not caring at all or thinking others are worth less than you so you shouldn't listen to them. Not options I'd choose for myself.


I think it's OK to numb yourself from certain types of feedback like insults, general toxicity, passive-aggressiveness, and so on. But I think reacting to those things should come from a place of empathy: for example I don't know what's going on in someone's life that might make them so toxic in their feedback, the toxicity is probably an outlet after many months of pent up frustrations that are the actual root of the issue they're venting about, etc.

I used to work in a customer facing support job, so I learned some strategies to keep cool from that.


Numbing and acceptance that shittyness happen are different.

I will strongly disagree that numbing is useful. I grew up extremely emotionally numb and distant. Looking back it never simplified things.


The knack is in detachment from your own views.

Numbing to me implies not caring, while detachment from your views can be born from caring about improving.

If you want to improve, this likely involves shedding some convictions you hold too close.


I understand that, just sharing what I see most commonly.


Bad example - Porcelain is constantly being shit upon!

-

To the OP - "Dont give a F"

I make quirky and weird shit that pleases ME. (physical things, like weird bike products, stuff out of leather, etc...)

Some people find them odd, or "why are you doing that?" -- BECAUSE I ENJOY IT, I dont give AF how you feel about it.


On the "anti-fragile" aspect of things, I studied Architecture in college and grad school (buildings, not software/system architecture) before transitioning to programming and the entire education model is built around dozens of critiques over the course of the semester. We don't have final presentations, they're Juries. Each semester culminated in working your ass off for weeks, pulling all nighters for days on end, then presenting whatever drawings and models you had to a panel of jurors who were assuredly going to rip you a new one. They weren't intentionally being mean, but you're a student, and there's plenty to pick apart as there's never enough time to think and do everything. Regardless of how good my projects were, after those final juries were done, I always felt like I'd gotten a heavy dose of criticism.

Going through that process over and over again has been incredibly helpful in my professional life, even though most of the criticism I receive is rarely structured like those juries. The first thing I learned is that it's rarely useful to try and refute or respond to the criticism directly in the moment. If that's your instinct, then chances are you aren't fully thinking through the criticism and responding from a more emotional state, which is not good. The key is to try and actually listen (rather than "shutting down"), remember the key points to process later, and to let the person offering the criticism know that you've acknowledged it.

Second is to realize that nothing is perfect. There is always room for improvement, things that you couldn't foresee, and things you simply didn't have time for. Obviously, the bigger those things are the more concerned you should be, but as your work becomes more and more refined, the criticisms become about smaller and smaller aspects of whatever you've done. The goal is not to get zero criticisms of your work, but to have the criticism that you do receive be about less and less important elements.

Third is that someone will always have something to say. Interpret that in a number of ways. If you're getting a code review, you're soliciting someone's opinion or your development process is dictating it. People will come up with criticism because that's what's being asked of them, and even if it's "perfect", responding with nothing makes it seem like they're not doing what they should. People like to offer criticism because it makes them feel important; they see a "flaw" you didn't, even if they don't really understand the totality of what you did. And while its disappointing to say, some people will criticize you for personal reasons, be it against you directly or because they think they stand to gain something by doing it.

Ultimately, you have to decide what is worth listening to and what is not. If nothing is ever worth listening to, then that's something that's likely more on you than the criticism you're receiving. It's also very tempting to discount criticism from certain sources because of past issues with that source. Process each criticism from them in the same way, regardless of the past, because you never know when they actually might have something worth listening to.


>Going through that process over and over again has been incredibly helpful in my professional life

I agree 100% with this. Art majors (depending on the school) go through much the same process, with the added bonus that artists can be even more capricious. E.g., "blue is totally the wrong color for that."

Filing the burrs off of your ego is often a good thing. There is an issue with some people who are just not structurally fit for that sort of thing, where the slightest criticism can make them collapse into a heap of self-loathing and depression. Discretion and discernment are important so that you don't break a fellow human. So the flip side is that being a part of critique juries is also training in how to give criticism, which is an important skill in and of itself.

Programming, especially in the open source world, tends to be a very solitary endeavor. It's quite akin to art in that way. And programmers tend to spend a lot of time up in their heads. And they tend to be rather blunt about their opinions. Getting some time in the reviewer and reviewee seat is useful.


> E.g., "blue is totally the wrong color for that."

That's a little of what I was getting at with some of the points above. Tons of criticism is just plain subjective. How do you evaluate the validity of someone else's subjective decision? The ultimate answer is that you can't if your response to it is to flip the table and leave the room.

>There is an issue with some people who are just not structurally fit for that sort of thing, where the slightest criticism can make them collapse into a heap of self-loathing and depression.

I agree, but I think that in and of itself is a bit of a different problem. A key aspect of the modern human condition is being able to deal with criticism. If the slightest bit of it will "make you collapse" then that's a strong indication that you need some professional help to learn how to deal and process things.

>Discretion and discernment are important so that you don't break a fellow human. So the flip side is that being a part of critique juries is also training in how to give criticism, which is an important skill in and of itself.

I don't disagree that teaching people how to criticize will help have that criticism be better structured, less aggressive, and more constructive overall, but the reality is that we can't expect everyone to have "the proper training". There absolutely were jurors that I had that were more about tearing you down than trying to help improve. Dealing with those people was a learning process in and of themselves.

>And programmers tend to spend a lot of time up in their heads. And they tend to be rather blunt about their opinions. Getting some time in the reviewer and reviewee seat is useful.

This points to the social nature of giving and receiving criticism. There needs to be emotional awareness from both perspectives. Programmers, as a generalization, tend to be more anti-social than other professions. A key aspect of social interactions is empathy; being able to see things from others' perspectives. When I look back at some of poorest delivered criticisms or responses to criticisms I've experienced in my professional career, they've come from the most anti-social developers.

Bluntness can have two interpretations, being straight to the point and/or not going into details. "This is poorly structured" is blunt, but doesn't attack or make things personal. "This is crap" is just as blunt, but has a far more negative connotation and interpretation to it. Neither is all that great of a criticism if they're not expanded on or explained.


The immune system metaphor is complicated because, while it is true that you build resistance, it's often not without some permanent damage, even if mild and neglectable. There may be an analogy for vaccines and constructive criticism somewhere.

Even muscle strengthening seems to require minor injuries to the tissue. Tougher but demaged.


> Tougher but damaged.

You're thinking scar tissue, which analogously would be a maladaptive response to criticism (inflating ego, projecting fault).

Muscle strengthening doesn't cause permanent damage unless you overdo it.


I've read that one of the ways that exercise increases muscle mass is through micro-lesions that your body goes on to repair. Not my expertise at all, but it's a thing, it seems. Googling now only shows content farm generated ads for fitness, unfortunately.


I've also heard that the growth mechanism is muscle tissue responding to damage caused by strength training / use. However, the result is not scar tissue that is "tougher". The result is more muscle tissue, of the same toughness that was there before, just capable of doing more work by virtue of a larger amount present.

Compare this to true trauma to the tissue, which results in scarring. Scar tissue may be "tougher" (less pliable) but it's not contributing to additional work. A better analogy might have been that broken bones grow back stronger, though even that requires that they are set right and have an appropriate amount of recovery time, which to continue the analogy, might be therapy needed to not be so brittle in the first place.


This comment is golden.


Without humility, growth is limited


A defect of being solo developer.


I don't want people to get the wrong idea from your immune system analogy.

From what I recall, exposure to environmental antigens as a child helps train the immune system to not go off on them later (as allergies).

Exposure to any particular disease is only a positive in your adaptive immune system response to that particular disease (and may cause problems such as antibody-dependent enhancement of related diseases, as seen in Dengue, and some Flu infections). For particular diseases such as chicken pox it's better to get them as a child as they have worse symptoms if first caught as an adult. For other diseases I don't know that it matters much. It's probably best to just never catch them at all. And then for diseases such as measles, you don't want to catch them ever (at least before vaccination); definitely not after you've caught other diseases.

https://msutoday.msu.edu/news/2020/Covid19-immunity-Yasser

> Does our immune system get stronger with every infection we fight off?

> To answer this question, let’s first discuss the two types of the immune system. Our immune system is composed of two arms, the innate and adaptive immune systems. The innate immune system acts fast (in minutes) after it recognizes a pathogen and, in most cases, eradicates the invading pathogens. During this process, the cells of the innate immune system, and their derived immune mediators/proteins, also activate the cells of the adaptive immune system which then develop memory immune responses toward these pathogens. Therefore, upon reinfection, the intensity of the innate immune system remains the same. In contrast, the adaptive immune response is much stronger than the initial exposure to these pathogens.

> So, to answer this question, our immune system doesn’t get stronger with every infection but the response of the adaptive immune system is much faster and stronger upon reinfection.

https://news.harvard.edu/gazette/story/2019/10/how-measles-w...

> Reporting today in Science, the researchers show that the measles virus wipes out 11 percent to 73 percent of the different antibodies that protect against viral and bacterial strains a person was previously immune to — anything from influenza to herpesvirus to bacteria that cause pneumonia and skin infections.

> So, if a person had 100 different antibodies against chicken pox before contracting measles, they might emerge from a case of measles with only 50, cutting their chicken pox protection in half. That protection could dip even lower if some of the antibodies lost are potent defenses known as neutralizing antibodies.


No. This is false. Even senior engineers can have this problem. It's not a differentiator for success.

This is counterintuitive but actually there is raw science to back the opposite fact up. I'm not joking.

The more delusional you are as in the less ability you have to take and accept criticism the more likely you are to be successful. There is a positive correlation for this verified by science.

It gels with my anecdotal experience too. At the top end of success those guys are the most delusional and least accepting of criticism, for example Elon musk or Steve jobs, etc. Etc.

But even on the lower end of the spectrum, senior engineers it's there too. For example people who claim they are able to unbiasedly accept criticism are often the people who are worst at it.

The reason for this is not any sort of deliberate emotional reaction or anything like that. But rather because the brain actively deludes you from seeing the complete truth. It pushes people to construct artificial scaffolds of logic to uphold their existing beliefs.

Senior engineers are not immune to it nor are they better. What determines the senior role has a lot of factors and definitely not all the factors are related to the actual formal senior rank. A lot of it is luck, time, politics and other bullshit that gets people that rank.

Everyone builds these ideals about their identity, their rank, and their engineering ability. The reality is that a lot of it is delusional. By deluding yourself it becomes easy to include other people in your delusion as well and that's how a lot of hierarchies work.

Not saying their aren't competent people out there, but don't fall for the false belief that a rank like "senior engineer" conveys a certain level of emotional maturity to accept criticism.


If the 'delusion' stops useful output, they won't be very successful.

If the 'delusion' is useful and produces better output, then is it really a delusion?


>The more delusional you are as in the less ability you have to take and accept criticism the more likely you are to be successful. There is a positive correlation for this verified by science.

Perhaps you could share this verifiable science?




Consider applying for YC's Summer 2026 batch! Applications are open till May 4

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

Search: