This is something I’ve been wondering about for a long time. Programming is an activity that makes you face your own fallibility all the time. You write some code, compile it or run it, and then 80% of the time, it doesn’t work exactly the way you imagined. There’s an error message, or it just behaves incorrectly. Then you need to iterate on it and fix the issues until you get the desired result, and even then it’s subtly wrong, and causes an outage at 3am on Sunday.
I thought this experience would teach programmers to be the humblest people in the world.
I can’t believe how wrong I was. Programmers can be the most arrogant dickheads you will ever meet. Why is that?
This is a common opinion among programers but you don’t have to sacrifice frank feedback to be a little bit more polite. Like sure “this code is dumb” isn’t the same as “you are dumb”, but IMO still has a lot of emotion around it.
“This could be more efficient if we did y” is way more helpful and less needlessly confrontational. All of the truly great devs I’ve worked with have been really excited about code, and that always came through in their reviews. When they saw something that was wrong their feedback came across as excited to teach someone something than annoyed at it not being right.
Also the thing a lot of devs don’t want to admit is that a ton of stuff we argue about doesn’t really have a right answer, but is a matter of taste. Like, there’s no 100% answer to the classic performance vs readability thing, or where exactly the line is for effort vs payoff, and couching feedback around things like that a opinion often makes people way more receptive to it. “Hey I’d prefer if we did it this way” often goes a long way, IMO.