Hacker News new | ask | show | jobs
by squeaky-clean 3529 days ago
If your friend was learning to code, and wrote a tetris clone, would you congratulate them on their first major project, or would you critique their sloppy code? They had to develop and live with that codebase, maybe for several days or more. They're probably aware of some things that suck about it, but had to stick with it (otherwise you never finish). Having someone criticize your code, variable names, lack of patterns without asking would be really demoralizing.

There's a difference between a well written function, and an entire application that's well organized and thought out. And there's a difference between playing in your garage and playing on stage.

Did the band suck because they couldn't play? Or did they suck because they were nervous? Well the only way to get over that is to play in front of people more.

I also think there should be a difference in expectations depending on where/what you're seeing. You have every right to criticize a group playing Madison Square Garden. But there's a reason the 14 year olds are playing O'Mallys Pub on a Tuesday, or the Ernie Ball stage at Warped Tour, and not the main stages or an arena.

What's particularly awesome and worth congratulating is watching a band of teenagers suck on stage, and then watching them a month later suck a little less. We should be striving for "better" rather than "great", in my opinion.

3 comments

There is a lot of assumption in this discussion like there is nothing between blind encouragement and stark criticism.

You want you son/friend to learn to code and his first project is copy-pasta from a book. Fantastic. Actually doing something is by far the number 1 challenge people never overcome.

Second project is also copy-pasta, that's only fantastic if you son/friend learn to be a typist. He and You both know he can do that. Does not mean you need to trash him, but showing the same enthusiasm as with the first project is counter productive, instead you should probably encourage him to tinker a bit with the program.

Challenge needs to grow. Sure you don't want to discourage a beginner showing how far he is from the mountain summit, but after climbing a step you need to show him the next one.

Exactly. Being supportive is not the same as putting everything they do on a pedestal and never have any constructive criticism ever. It's all about thr situation and how you frame it.
In reality it depends so much on the context. People are primed for learning right after finishing a task.

Is my friend just giving coding a go or are they trying to get a dev job?

Is my friend trying to show me what they have built or asking for help improving the quality of their code?

Etc etc.

Likewise is this a 14 year old athlete trying to compete at the state level? Or a 14 year old trying out football because his friends play?

Great points. I imagined the friend learning as a hobby, but didn't mention it in the post. If they were learning for a job or homework I would definitely be more eager to offer criticism and criticize more heavily.
There's definitely a difference between the result, and the way something was built or put together. I'd congratulate them on the result and tell them what they did right, code wise. I'd also perhaps point out some (major) areas where they could've done better, so they could take that knowledge and use it in the next app or game they decide to build.