Welcome to the Gallery

The gallery is where you can post work you’ve done so other people can see it. You can get feedback on your work, or just post for people to see. Every accomplishment, no matter how small and beginner, is worthy of praise and posting here, and anyone who says they do not want criticism shouldn’t be criticized. If you’re looking for critiques then let everyone know, and don’t take what they say personally.

How To Give Critiques

First off, are you qualified to critique someone else’s code? If you aren’t then just talk about things you are qualified to talk about. Installation, how well it worked, bugs you found, etc.

Next, the most important thing is to focus entirely on the code. Talk about their code, how they can improve it, what you like and don’t like about it, but don’t talk about them as a person. They are not their code so you can’t say they’re a terrible person if they write terrible code.

If you critique someone’s work, then stick to only the substance of the work and not personal personal things. It also helps to use the “Critique Sandwich”:

  1. Say something you like about it.
  2. Give a list of things they could change to make it better.
  3. Say a final thing you like about it.

An example of a good critique would be:

“Hey, this little game is really fun. I had a hard time installing it because you had the setup.py wrong in the package. I think if you add your email it’ll work better. Also, it looks like you have a bug on line 28 where you don’t return a value in that function. Other than that, good job on your first game.”

If the Critique Sandwich feels cheesy and disingenuous then adopt the style of “Not Good, Not Bad, Just Could Be Better”. In this style you reserve any opinion on whether the code is good or bad, and instead focus only on the substantive ways it can be improved. Don’t be mean, or overly kind, just give simple ways to improve the code, and demonstration is the best way to do that.

How Not To Critique

If you are coming here to make beginners feel bad to make up for your sadness then don’t bother. You can join any irc.freenode.org channel and get your fill of unsuspecting newbies to yell at. Usually bad critiques come from a position of arrogance and holding everyone to your exacting standards no matter how skilled they are. The interesting thing is people who enjoy slamming exacting standards on the unskilled are usually completely unqualified themselves and couldn’t meet their own standards.

How To Receive Critiques

If someone is being mean then just ignore them and notify @zedshaw. Let him deal with it.

If someone is telling you ways to improve your code, or that it’s wrong, then don’t take that personally. Take their criticisms and try them out, and if they don’t work then ignore them. If they do work then great.

You are not your code. If someone says your code style is terrible they are not saying you are terrible. If every comment on your code causes you to freak out and be sad then take a break, work on your code style, and come back to get critiques when you’re more skilled.

However, I feel it’s great practice to post code and constantly tell yourself, “I am not my code. I am not my code.” Get used to people looking at your code and saying it needs improvement now, in a safe environment, so that later you can handle it in a less collegial setting. I mean, you’re just learning so your code’s going to suck anyway right? Might as well get over your fear of criticism while you can tell yourself, “Well I’m just starting out so of course my code sucks…for now.”

Finally, don’t take bad criticism of one project to mean you are doomed to fail forever. Everyone has ups and downs when they’re learning to do something. Just take it as a sign you need to work on something and come up with a plan to improve. Or, maybe what they say is just stupid and you can ignore them.

A free service run by Zed A. Shaw for learncodethehardway.org.