Hacker Read top | best | new | newcomments | leaders | about | bookmarklet login

It's certainly bad to get angry - I mentioned that there. I should clarify the anger happens when it's repeated more than on a one-off. E.g. if you have the same sloppy signs for 6 months (where I can tell by reading the code that you didn't even try to run your code locally), then I'm not learning anything and I'm getting frustrated because you're clearly not taking feedback to heart.

I try to avoid letting this show, but it's frustrating.



sort by: page size:

If your project makes me angry, that is the best sign you will ever see. If I'm angry because of duplicate code, quick hacky fixes, stupid function signatures, outdated and harmful comments and workarounds, chances are I'm going to stay awake that night to sort it out.

Angry is good.


I see the same thing even from my close colleagues. With one in particular, the first I'll even know he's using my code is when he bitches about it on Twitter. Forget about usable information in a bug report about what he did to trigger it (usually turns out to be utterly insane hacked configs), sometimes we've been talking on IRC and then I switch windows to find he's slagging the code on Twitter.

I think it's a cultural thing. Righteous anger is addictive. In this case it's anger at bad code, and the craving for another hit precedes any attempt to find out if the anger is even justified - let alone to work constructively toward a resolution. Some people (lots here BTW) are just rage junkies, and should simply be ignored.


If the person you are criticising gives any kind of shit at all about doing a good job, they will supply their own 'feeling bad' when you demonstrate that they haven't done a good job. In this case, you adding vitriol is unnecessary.

If the person you are criticising doesn't give any kind of shit, then your vitriol will make them feel bad and dislike you, but it isn't going to improve their code quality, because they still don't care. (And if they answer to you directly, they are likely less motivated to do well next time now that you have acted like a prick)

If the person is not able to discern the difference between good and bad code, then it is useful to them if you can explain what it is that you are mad about when reviewing the code, but again in this case, vitriol without understanding just makes you seem like an arsehole to work with.


You sound really angry about it and you've hung onto it for quite some time. A good friend of mine used to tell me 'who cares?' when I would rant on about things just like you just did. It is honestly startling to hear that in response to a rant. If you answer 'i care!', then that is exactly the problem.

Let it go, it isn't worth it. At the end of the day, I'd say this is your problem to work on. You didn't step back, slow down, forget about the code, and mentor the other developer well enough when you were there. That is kind of exactly what the OP is saying in his post.

(Side note: I've been you many many times and it only hurt me in my career. I actively work against it now and things have been much better.)


As a programmer I feel that rage in general is a poorly managed emotion.

I have noticed a tendency of rage hinges around communication. If I can't understand wtf some code-monkey from 5 years ago was trying to do, I of course 'rage and re-write'. But as I get older it seems this isn't always the right thing to do .. to be honest, I find myself having respect for code I don't understand at all, more or less, because the author was an idiot. Respect for the borked!


I'm sure we've all had our 'Why did I code that so badly???' moments. ;) I stopped getting mad at people for bad code quite a while back. It doesn't help either of us. Instead, I just fix it. The bonus to me is the little rush from improving something. Thank goodness for that little rush.

in other words, it increases the chance that the programmer is in a specific locale (like the US?) such that the location has less bad programmers than other locations.

And probably, increases the chance that the person is fed up with fixing someone else's code - hence the anger


i've got to heavily agree with you on this. i feel more in control of what's going on in my code... and yeah, often confused by peoples massive opposition to it.

generally speaking if someone's angry about something, they probably don't understand it. otherwise... why not ignore it til it goes away?


It's a common thing I see with programmers. I know I've been guilty of it before. I see some poorly coded module and I'm just disgusted of how bad it is and then proceed to say some of the nastiest things about the developer who wrote it, sometimes just aloud to myself, other times to my peers.

These days I do my best to try to remember we all make mistakes, and that instead of flaming whoever is responsible for a mistake when it rears its ugly head, it's probably best to take it as an opportunity to discuss what I saw as shortcomings in the code with them and turn it into a learning experience if possible. Sometimes of course this isn't possible when you inherit code from devs who are long gone. Either way, I'm not sure any good is done throwing all that negative energy into the air.


I think if it's so frequent that you're sick to your back teeth of listening to people complain about your code, it's probably a really sure sign that something is very wrong with the code.

This is how most real world code is.

You might be the exception, but when you've been working on code for a while, your code is probably like this to an outsider too.

The difference is that you have a ton of insider knowledge in your head that makes the code understandable. The person who wrote the code you now hate probably does too.

I've learned to enjoy fixing up projects like these. You can learn an enormous amount from fixing bad code, and I truly have! Unfortunately it's probably something you have to learn for yourself. Just try to have a good attitude about it OK?


I'm not being hostile, I apologize if you took it that way. I'm just making a point about how so many dev's claim to have the right answer until you need to rely on them to get something done. Projects turn to a mess mostly due to things one single person cannot control. I don't know a single person, including myself, who've thought that their code didn't look like shit 6 months to a year down the road. I think we always get better and we'll always criticize what we don't know and understand. This includes mountains of other peoples code (garbage or not).

I agree that mean-spirited feedback is not helpful/constructive. I can see how that would discourage someone who is new to programming. In fact, "feedback" is probably not even the correct name for that... maybe "bullying".

However, I have to disagree with the notion of having to write a lot of shitty code to learn to write good code. Granted, that is one way to learn, but not nearly the most effective way to learn.

For years, when I started my career, I wrote lots of shitty code. I feel badly about having done this because I unwittingly caused quite a bit of havoc in the products I was working on, and even pissed off a few customers along the way. Writing shitty code can have really bad effects on a team and on a product.

Fortunately for me, I eventually ended up working in an extremely talented team. They were not only talented at programming, but also highly skilled at teaching others good programming. Their method was simple- they accepted nothing that failed to meet their high (and documented) standards of readability and testing, but were extremely thorough in spending time showing you what you did wrong. They were never demeaning and always constructive- they always had a high level optimism in every new-comer's potential. Given enough time, it was clear that some new team members weren't going to work out, but those who had it in them to patiently improve their skills flourished and enjoyed very successful stints with this team.

After a rough first few days on the team, I heeded their warnings and agreed to check my misplaced ego at the door. Then, and after a couple of months of embarrassing ineffectiveness, I gradually became a better programmer and went on to become a great team member. I'm really grateful for the patience these guys had with me and the other noobs. They really made a difference in my career and in the career of my peers!


Sure, people trying to use libraries and frameworks to make their living absolutely get frustrated for often legitimate reasons. But we're supposed to be professionals and as such we should have the self-control, skill, and empathy to channel our frustration into productive feedback instead of just venting our anger like an out-of-control toddler.

Honestly just don't be a jerk. That's half the battle.

As long as you listen when I tell you hey this is how we can fix this. I actually left a job because of exceptionally bad code , if your attitude is to get defensive when you obviously don't know what your doing , that's an issue.


If they're offended, they're performing ego driven development. Aim cursing at the code, not the person: "This code is complete horseshit" means exactly that and one's got room for improvement, not that one is worth complete horseshit.

I'd rather have people around me that have the courage to say "WTF is this shit" rather than the politically correct talk about how this code "will not work" and could be "improved". In my current situation the latter only leads to wishful thinking ("in an ideal world we'd fix that... later") and handwaving of my "academic" thought process. Yes it's my ass, the one ass that's sick of making up for people mistakes all the time, and the only thing that has a semblance of snap them out of their numbness is to shock them.

There is nothing less professional than shipping non-functional code to customers, nor imposing undue amount of work to your teammates by writing an unmaintainable mess, either of which being more equivalent to a giant implicit "fuck you" than colourful words.


Sometimes it can sting a little to know that I did a crappy job at something, but I see a lot of value in learning from it.

When my brother was in art school many years ago, he asked me to critique his work. After a few polite comments, he explained that I wasn't being helpful and the end result would be better if I didn't hold back on brutally ripping it apart. That mentality has stuck with me. I want people to tell me if my code is crap.


No, you have the bad attitude. You're getting some good advice and you are responding in a way that shows that you are not open to input.

Which is exactly why you should stop coding.


It might be a lack of experience. I've seen people reacting like this when they are still very new to programming and feel pressured by the need to learn/adapt to stricter rules. After some time once they become more comfortable they pay more attention to the way something is written.
next

Legal | privacy