A thought on CONSTRUCTIVE CRITICISM

I feel that most often it is done in a wrong manner.
Seen people pointing out the faults first rather than being constructive.
I think being constructive at first can help you to acknowledge their efforts, which becomes an encouragement to them, and then pointing out their mistakes to make them aware of things that they need to improve/change.
I believe that if done that way, it will be more helpful.
Do share your thoughts, if you happen to come across this post.
Come and let’s make this world a better place together. :blush:

3 Likes

It’s difficult because there are different cultural values. And there are different personalities.

Obviously people shouldn’t be abusive, but also, people don’t always have the time to pussy foot around with, “Wow, you’ve learned so much, you are an amazing and valued person. Your code is like a perfect haiku on a spring day as the aroma of cherry blossoms waft through the air, but if you will please forgive this humble servant for the tiniest of criticisms…”

I worked with a guy that had very thin skin. If someone reviewed his code, he would fight for every single character. He would get all defensive, as if we were personally attacking him. He even complained to management - he was a big baby, he was always a whining victim - and they didn’t want to deal with it so they told us to lay off. So we just stopped reviewing his code. So he complained about that. Then we’d occasionally review his code, basically pass it and agree to later go and fix it. It was a mess.

When someone reviews my code, I don’t expect them to have to take on the burden of worrying about my feelings. They are doing me a favor. If someone volunteers to come over and clean out my garage, I’m not going to insist that they do it while smiling, whistling, and complimenting my mess.

When I review someone’s code, I am doing them a favor - especially if I’m not getting paid. If they don’t want criticism, they shouldn’t ask for a “code review”. They should ask for “code adulation”. My job as a reviewer is to find everything wrong that I can. That is my function.

Granted, this is FCC, so I try to temper my criticism. I’ll often start with, “Keep in mind that I am a picky code reviewer…” Especially if they are in the beginning stages, I’ll try to find some words of encouragement. If I see something I like, I’ll try to point it out.

People get defensive about their code. I get it. Each line of code is out baby and we love it so much. It hurts when people tell you it is bad. I’m not joking - I know that it hurts. It hurts when you’ve worked long and hard on something and someone tears it to shreds. A big step for me was to take a step back and try to be objective about it. I realized that I am a long way off from writing code that can’t be improved. And that’s what those people were trying to help me do - write better code.

Maybe it’s my background as a musician, we have to learn to take criticism. You learn a lot more from the criticisms from the compliments.

Just some thoughts.

3 Likes

On more reflexion, it’s kind of funny, but I’ve kind of gone the opposite direction…

I was known as a harsh code reviewer, so I made it a habit to thank people who reviewed my code, to thank them for the observations and suggestions, especially when it improved my code. It is always makes people a little nervous to review other people’s code - I wanted to make it as good of an experience as possible - both to encourage people to review my code and to understand the spirit with which I was reviewing theirs.

4 Likes

@rajtanuchakravarty I don’t mean to disrespect what you are feeling. You are entitled to feel the way you feel about it. I’m just trying to add a little perspective.

2 Likes

Yeah, I agree. I do try to temper my feedback so that it isn’t harsh, but I think that being direct helps clarity.

I try to remember to say something like “good work getting this running; that’s the first step”, but ultimately I have found that I am better understood when I use clear, direct language when giving feedback. Also, the more words I use, the higher time cost I pay myself and the higher time cost I make the original author pay.

3 Likes

I’m grateful for the senior devs that take unpaid time to share their experience with us.

Never saw a review that wasn’t constructive, yes, harsh sometimes and not talking around corners, but what is the alternative: Sending out dozens and hundreds of applications, never getting a reply and wondering what’s wrong with your work.

I don’t get op’s need to point constructive criticism out, I experience this as the norm here, unless they ran into some rude non-staff reviewers. These are the minority and the mods generally hold them accountable for what they post.

3 Likes

I always try to emphasise to new learners that you are not your code - for this very reason.

4 Likes

hard to do it online though?

1 Like

I come from a design background, and at university every week we had a group crit where we tore each others work apart. Not in a nasty way, but in a very direct way. The criticism was not personal, it was criticism with the aim of directly identifying problems in work: that was what was taught. And I just kind of take that as a given now: giving a pat on the head doesn’t really help, it has to be straightforward and direct. There is a problem with this thing, it needs to be fixed. This seems a bad way to do this thing. Why have you done it this way? Etc.

I guess criticism is quite hard for a lot of people who don’t have experience of anything similar. But it’s absolutely not personal, it’s the code, and the code is just some text on a screen. And the author may have laboured over that, may be proud of it. But one has to try to avoid the temptation of becoming precious over it.

2 Likes

I think an important distinction is to pay attention to what you are responding to.
If a user asks for help getting their code to work or asks for specific feedback on the effectiveness or conventional “fitness” of their code, then I think it’s fairly typical for people to respond by jumping straight to the advice. On the other hand, when someone is doing more of a “show and tell” post, responders tend (in general) to include more affirmations as well as advice.

But overall, this is going to vary by individual, by culture, and by context.
Because of my personality, my interpersonal experience, and what I perceive to be the purpose of this forum, I am likely to focus my comments on what I believe to be productive advice.

4 Likes

Hi @rajtanuchakravarty

I agree with others just sayed, but I understand you as well.

I just wanted to add that some of us like to help but we don’t know how to sound more polite for others, this is not my first language, still learning :sweat_smile:, and also be polite for you it doesn’t mean the same for me, difficult subject I guess, we all are learners. For example, I am from the north of Spain and around here sarcasm is most likely you are going to get, so I used to it, and also find it amousing how some people cannot aswered anything with a simple yes or no, lol. But I prefer and love that people and their culture are different that mine, it makes this world more interesting. Every culture is different, we all have had different parents and different backgrounds also.

Just try don’t feel bad about the answers you get and try to thinking on it this other way, other person have expended part of own time reading your code and trying to help you! That make me feel good. :smiley:

I only focus in that, also remember that it is not the same speak that write, so sometimes the message it doesn’t sound how it sounded in others head. It takes a lot amount of time learn to write correctly in english and put your thoughts in words no easy either and, at the same time, being both assertive and empathetic.

Also we should thinking it the other way too. It is also hard to spend time answering someone question and don’t get even a heart reaction. :rofl: So I feel you too. I like laugh about everything, it is healthier, but in a chat it can sound poorly some times. I hope not this time. :blush:

I also tend teaching others what I know and being verbose (a familly thing, sorry because I did it again :sweat_smile:).

I hope that seeing all those fantastic answers from experience developers (not me :upside_down_face:) cheer you up. Keep the good work and never give up with your goals!!

Have an awesome weekend!!! An everyone of course in this fantastic Forum @freeCodeCamp too!!

P.S. I will keep trying to help because I truly believe that education, and learn how to use empathy and assertiveness are the mos important things in a interconected world by wires only.

1 Like

let cricicism = {
type: “Constructive”,
numLegs: 2,
sayLegs: function() {return "This criticism is " + criticism.type }
};

Just playing here… I just need a constructor for constructive criticism…

:smile:

constructively, you have a typo…

2 Likes

I can’t give you a constructive middle finger with a smile… :rofl: :rofl: :rofl:

Peace out bro

1 Like

Places like stackoverflow are good because people cut the bs and get straight to the point. I mean it would be pretty frustrating if every answer started with niceties that needed to be combed through at least to me…

1 Like

I wouldn’t call StackOverflow ‘good’ exactly. They still can be rather toxic.

1 Like

Yeah, I was going to say… There is A LOT of good information on Stack Overflow, but sometimes they can be brutal. The number of times I’ve seen people mocked for even asking a certain question.

I guess it depends on how you define “constructive”. To me, that means providing useful information. There is also the supportive/abusive spectrum. Something can be constructive and not be polite. “You’re an idiot and here’s how you fix your code.” Something can be polite but not be constructive: “You worked so hard on this, clearly you’ve learned a lot, but your code is wrong.”

To me, the “encouragement” of which the OP speaks has nothing to do with whether the criticism is constructive. I try to throw a little encouragement in for beginners, but with the volume of posts to which some of us respond, there just isn’t time - we’d end up responding to fewer people. And some responses I give can be long and detailed, with made up code samples - if I have to hand hold through those, it would mean less time to provide actionable information.

It’s hard to tell without some specific examples from the OP.

2 Likes

Constructive criticism is to offer a solution to a problem instead of just complaining about it. The solution is the constructive part, not how you deliver it or how nice you are. Obviously, that doesn’t mean we can’t be civilized about it.

Telling people what they did right is not criticism, it’s praise. Sometimes people look for praise but wrap it in a question asking for criticism. Do I look fat in this? Is emphatically not a question asking for constructive criticism.

You need to make it very clear to yourself when asking for constructive feedback that you are not just looking for praise. Tell me what I did wrong, but don’t actually tell me, instead compliment me on what I did right, is not asking for constructive criticism.

It is very hard to learn from mistakes if you think you never make them.

3 Likes